@@ -163,10 +163,12 @@ isValidMessageId : Text -> Bool
163163isValidMessageId = isValidBoundedHex maxMessageIdLen
164164type MessageIdHex = Text where isValidMessageId
165165type OptionalMessageId = Text where \s -> s == "" || isValidMessageId s
166+isAnyServerName : Text -> Bool
167+isAnyServerName = \s -> not (tooLong s maxServerNameLen) && s == normalizeServerName s
166168isValidServerName : Text -> Bool
167−isValidServerName = \s -> not (tooLong s maxServerNameLen) && s == normalizeServerName s && not (isBadServerName s)
169+isValidServerName = \s -> isAnyServerName s && not (isBadServerName s)
168170type ServerName = Text where isValidServerName
169−type AnyServerName = Text where \s -> not (tooLong s maxServerNameLen) && s == normalizeServerName s
171+type AnyServerName = Text where isAnyServerName
170172
171173type Timestamp = Int<Ms>
172174
@@ -549,8 +551,7 @@ tooLong : Text -> Int -> Bool
549551tooLong = \s maxLen -> count (chars s) > maxLen
550552
551553isValidHex : Text -> Bool
552−isValidHex = \s ->
553− count (chars s) > 0 && mod (count (chars s)) 2 == 0 && all (chars s) (\c -> contains c "0123456789abcdef")
554+isValidHex = \s -> let cs = chars s in count cs > 0 && mod (count cs) 2 == 0 && all cs (\c -> contains c "0123456789abcdef")
554555
555556normalizeHex : Text -> Text
556557normalizeHex = \s -> bytesToHex (bytesFromHex s)