@@ -115,7 +115,7 @@ route Api = AuthApi | ClientApi | FederationApi | MaintenanceApi
115115-- ============================================
116116
117117hexDigit = \n ->
118− let n = if n < 0 then 0 else if n > 15 then 15 else n
118+ let n = if n < 0 then 0 else if n > 15 then 15 else n in
119119 if n == 0 then "0" else if n == 1 then "1" else if n == 2 then "2" else if n == 3 then "3"
120120 else if n == 4 then "4" else if n == 5 then "5" else if n == 6 then "6" else if n == 7 then "7"
121121 else if n == 8 then "8" else if n == 9 then "9" else if n == 10 then "a" else if n == 11 then "b"
@@ -124,10 +124,10 @@ hexDigit = \n ->
124124byteToHex = \n -> hexDigit (n / 16) ++ hexDigit (n - (n / 16) * 16)
125125
126126intTo3Hex = \n ->
127− let b0 = n / 65536
128− let r0 = n - b0 * 65536
129− let b1 = r0 / 256
130− let b2 = r0 - b1 * 256
127+ let b0 = n / 65536 in
128+ let r0 = n - b0 * 65536 in
129+ let b1 = r0 / 256 in
130+ let b2 = r0 - b1 * 256 in
131131 byteToHex b0 ++ byteToHex b1 ++ byteToHex b2
132132
133133genToken = do
@@ -278,7 +278,7 @@ containsInternalSuffix = \s ->
278278 else containsInternalSuffix (drop 1 s)
279279
280280isBadServerName = \s ->
281− let sn = toLower (stripTrailingDot s)
281+ let sn = toLower (stripTrailingDot s) in
282282 sn == ""
283283 || take 1 sn == "."
284284 || take 1 sn == ":"
@@ -337,19 +337,19 @@ extractToken = \authHeader ->
337337 else ""
338338
339339verifyFederationAuth = \authorization ->
340− let token = extractToken authorization
341− let result = safeCompare token (if federationSecret == "" then "x" else federationSecret)
342− let secretSet = if federationSecret == "" then 0 else 1
340+ let token = extractToken authorization in
341+ let result = safeCompare token (if federationSecret == "" then "x" else federationSecret) in
342+ let secretSet = if federationSecret == "" then 0 else 1 in
343343 (if result then 1 else 0) * secretSet > 0
344344
345345verifyMaintenanceAuth = \authorization ->
346− let token = extractToken authorization
347− let fedResult = safeCompare token (if federationSecret == "" then "x" else federationSecret)
348− let maintResult = safeCompare token (if maintenanceSecret == "" then "x" else maintenanceSecret)
349− let fedN = if fedResult then 1 else 0
350− let maintN = if maintResult then 1 else 0
351− let fedSecretSet = if federationSecret == "" then 0 else 1
352− let maintSecretSet = if maintenanceSecret == "" then 0 else 1
346+ let token = extractToken authorization in
347+ let fedResult = safeCompare token (if federationSecret == "" then "x" else federationSecret) in
348+ let maintResult = safeCompare token (if maintenanceSecret == "" then "x" else maintenanceSecret) in
349+ let fedN = if fedResult then 1 else 0 in
350+ let maintN = if maintResult then 1 else 0 in
351+ let fedSecretSet = if federationSecret == "" then 0 else 1 in
352+ let maintSecretSet = if maintenanceSecret == "" then 0 else 1 in
353353 fedN * fedSecretSet + maintN * maintSecretSet > 0
354354
355355clampTtl = \ttl -> if ttl < 1 then 1 else if ttl > maxPresenceTtl then maxPresenceTtl else ttl
@@ -360,8 +360,8 @@ evictOldestAckedIds = \items n ->
360360 let toEvict = (fold (\acc a ->
361361 if acc.size < n
362362 then
363− let newHeap = union acc.heap [a]
364− let newSize = count newHeap
363+ let newHeap = union acc.heap [a] in
364+ let newSize = count newHeap in
365365 if newSize > acc.size
366366 then {size: newSize, heap: newHeap, heapMax: if a.ackedAt > acc.heapMax then a.ackedAt else acc.heapMax}
367367 else acc
@@ -370,9 +370,9 @@ evictOldestAckedIds = \items n ->
370370 let removed = fold (\r x ->
371371 if not r.done && x.ackedAt == acc.heapMax
372372 then {done: True {}, items: r.items}
373− else {done: r.done, items: union r.items [x]}) {done: False {}, items: []} acc.heap
374− let newHeap = union removed.items [a]
375− let newMax = fold (\best x -> if x.ackedAt > best then x.ackedAt else best) -1 newHeap
373+ else {done: r.done, items: union r.items [x]}) {done: False {}, items: []} acc.heap in
374+ let newHeap = union removed.items [a] in
375+ let newMax = fold (\best x -> if x.ackedAt > best then x.ackedAt else best) (-1) newHeap in
376376 {size: acc.size, heap: newHeap, heapMax: newMax}
377377 else acc) {size: 0, heap: [], heapMax: -1} items).heap
378378 in diff items toEvict
@@ -554,8 +554,8 @@ pollOnce = \token cursor ->
554554 let limitedMsgs = (fold (\acc m ->
555555 if acc.size < maxPollEvents
556556 then
557− let newHeap = union acc.heap [m]
558− let newSize = count newHeap
557+ let newHeap = union acc.heap [m] in
558+ let newSize = count newHeap in
559559 if newSize > acc.size
560560 then {size: newSize, heap: newHeap, heapMax: if m.receivedAt > acc.heapMax then m.receivedAt else acc.heapMax}
561561 else acc
@@ -564,9 +564,9 @@ pollOnce = \token cursor ->
564564 let removed = fold (\r x ->
565565 if not r.done && x.receivedAt == acc.heapMax
566566 then {done: True {}, items: r.items}
567− else {done: r.done, items: union r.items [x]}) {done: False {}, items: []} acc.heap
568− let newHeap = union removed.items [m]
569− let newMax = fold (\best x -> if x.receivedAt > best then x.receivedAt else best) -1 newHeap
567+ else {done: r.done, items: union r.items [x]}) {done: False {}, items: []} acc.heap in
568+ let newHeap = union removed.items [m] in
569+ let newMax = fold (\best x -> if x.receivedAt > best then x.receivedAt else best) (-1) newHeap in
570570 {size: acc.size, heap: newHeap, heapMax: newMax}
571571 else acc) {size: 0, heap: [], heapMax: -1} matchingMsgs).heap
572572 let authorized = case session of
@@ -612,7 +612,7 @@ serve = \req -> case req of
612612 pr <- maybePrune t
613613 challenges <- *challenges
614614 let existingCount = count (do c <- challenges; where c.pubkey == pubkey; where c.expiresAt > t; yield c)
615− let oldestChallengeExpiry = fold (\acc c2 -> if c2.pubkey == pubkey && c2.expiresAt > t && (acc == -1 || c2.expiresAt < acc) then c2.expiresAt else acc) -1 challenges
615+ let oldestChallengeExpiry = fold (\acc c2 -> if c2.pubkey == pubkey && c2.expiresAt > t && (acc == -1 || c2.expiresAt < acc) then c2.expiresAt else acc) (-1) challenges
616616 let cappedChallenges = if existingCount >= maxChallengesPerKey && oldestChallengeExpiry >= 0
617617 then fold (\acc c ->
618618 if not acc.removed && c.pubkey == pubkey && c.expiresAt == oldestChallengeExpiry
@@ -623,7 +623,7 @@ serve = \req -> case req of
623623 then do c <- cappedChallenges.items; where c.expiresAt > t; yield c
624624 else cappedChallenges.items
625625 let globalOldestExpiry = if count withoutExpired >= maxChallenges
626− then fold (\acc c -> if acc == -1 || c.expiresAt < acc then c.expiresAt else acc) -1 withoutExpired
626+ then fold (\acc c -> if acc == -1 || c.expiresAt < acc then c.expiresAt else acc) (-1) withoutExpired
627627 else -1
628628 let globalCapped = if globalOldestExpiry >= 0
629629 then (fold (\acc c ->
@@ -663,19 +663,19 @@ serve = \req -> case req of
663663 then False {}
664664 else verify (bytesFromHex pubkey) (textToBytes challenge) (bytesFromHex signature)
665665 set *challenges = if sigValid
666− then (case matched of
666+ then case matched of
667667 Just {value: _} -> do
668668 c <- challenges
669669 where not (c.pubkey == pubkey && c.challenge == challenge)
670670 yield c
671− Nothing {} -> challenges)
671+ Nothing {} -> challenges
672672 else challenges
673673 let existingForKey = do
674674 s <- sessions
675675 where s.pubkey == pubkey
676676 where s.expiresAt > t
677677 yield s
678− let oldestExpiry = fold (\acc s -> if acc == -1 || s.expiresAt < acc then s.expiresAt else acc) -1 existingForKey
678+ let oldestExpiry = fold (\acc s -> if acc == -1 || s.expiresAt < acc then s.expiresAt else acc) (-1) existingForKey
679679 let cappedFold = fold (\acc s ->
680680 if not acc.removed && s.pubkey == pubkey && s.expiresAt == oldestExpiry
681681 then {removed: True {}, sessions: acc.sessions}
@@ -685,7 +685,7 @@ serve = \req -> case req of
685685 else sessions
686686 let activeSessionsCapped = do s <- sessionsCapped; where s.expiresAt > t; yield s
687687 let globalOldestSessionExpiry = if count activeSessionsCapped >= maxSessions
688− then fold (\acc s -> if acc == -1 || s.expiresAt < acc then s.expiresAt else acc) -1 activeSessionsCapped
688+ then fold (\acc s -> if acc == -1 || s.expiresAt < acc then s.expiresAt else acc) (-1) activeSessionsCapped
689689 else -1
690690 let globalSessionsCapped = if globalOldestSessionExpiry >= 0
691691 then (fold (\acc s ->
@@ -700,7 +700,7 @@ serve = \req -> case req of
700700 p <- presence
701701 where not (p.pubkey == pubkey && p.server == serverHostN)
702702 yield p
703− let oldestPresenceExp = fold (\acc p -> if acc == -1 || p.expiresAt < acc then p.expiresAt else acc) -1 presenceWithout
703+ let oldestPresenceExp = fold (\acc p -> if acc == -1 || p.expiresAt < acc then p.expiresAt else acc) (-1) presenceWithout
704704 let presenceEvicted = if count presenceWithout >= maxPresenceEntries && oldestPresenceExp >= 0
705705 then (fold (\acc p ->
706706 if not acc.removed && p.expiresAt == oldestPresenceExp