diff --git a/parser-typechecker/src/Unison/Builtin/Decls.hs b/parser-typechecker/src/Unison/Builtin/Decls.hs index f4eacba9b6..3fc2a3e537 100644 --- a/parser-typechecker/src/Unison/Builtin/Decls.hs +++ b/parser-typechecker/src/Unison/Builtin/Decls.hs @@ -125,6 +125,19 @@ mapBin = Maybe.fromJust $ constructorId mapRef "Map.Bin" setWrap :: ConstructorId setWrap = Maybe.fromJust $ constructorId setRef "Set.Set" +jsonNull, jsonBool, jsonObj, jsonNum, jsonText, jsonArr :: ConstructorId +jsonNull = Maybe.fromJust $ constructorId jsonRef "Json.Null" +jsonBool = Maybe.fromJust $ constructorId jsonRef "Json.Boolean" +jsonObj = Maybe.fromJust $ constructorId jsonRef "Json.Object" +jsonNum = Maybe.fromJust $ constructorId jsonRef "Json.Number.Unparsed" +jsonText = Maybe.fromJust $ constructorId jsonRef "Json.Text" +jsonArr = Maybe.fromJust $ constructorId jsonRef "Json.Array" + +jsonParseError :: ConstructorId +jsonParseError = + Maybe.fromJust $ + constructorId parseErrorRef "Json.ParseError.ParseError" + isPropagatedConstructorId = Maybe.fromJust $ constructorId isPropagatedRef "IsPropagated.IsPropagated" isTestConstructorId = Maybe.fromJust $ constructorId isTestRef "IsTest.IsTest" @@ -260,6 +273,12 @@ mapRef = lookupDeclRef "Map" setRef :: Reference setRef = lookupDeclRef "Set" +jsonRef :: Reference +jsonRef = lookupDeclRef "Json" + +parseErrorRef :: Reference +parseErrorRef = lookupDeclRef "Json.ParseError" + pattern Rewrites' :: [Term2 vt at ap v a] -> Term2 vt at ap v a pattern Rewrites' ts <- (unRewrites -> Just ts) @@ -316,7 +335,9 @@ builtinDataDecls = rs1 ++ rs (v "RewriteCase", rewriteCase), (v "Rewrites", rewrites), (v "Map", map), - (v "Set", set) + (v "Set", set), + (v "Json", json), + (v "Json.ParseError", jsonParseError) ] of Right a -> a Left e -> error $ "builtinDataDecls: " <> show e @@ -649,6 +670,40 @@ builtinDataDecls = rs1 ++ rs ) ] + json = + DataDeclaration + (Unique "oml0j9g6bb2tij2s75k4v7n1nftj199i") + () + [] + let json = var "Json" + tup x y = Type.apps' (var "Tuple") [x, y] + pair x y = tup x (tup y (var "Unit")) + in [ ((), v "Json.Null", var "Json"), + ((), v "Json.Boolean", Type.boolean () `arr` json), + ( (), + v "Json.Object", + Type.app () (Type.list ()) (pair (Type.text ()) json) + `arr` json + ), + ((), v "Json.Number.Unparsed", Type.text () `arr` json), + ((), v "Json.Text", Type.text () `arr` json), + ( (), + v "Json.Array", + Type.app () (Type.list ()) json `arr` json + ) + ] + jsonParseError = + DataDeclaration + (Unique "u3j6g9j6daejijc5e0rcujjj3sd6j3gq") + () + [] + let jpe = var "Json.ParseError" + in [ ( (), + v "Json.ParseError.ParseError", + Type.text () `arr` Type.nat () `arr` Type.text () `arr` jpe + ) + ] + builtinEffectDecls :: [(Symbol, Reference.Id, DD.EffectDeclaration Symbol ())] builtinEffectDecls = case hashDataDecls $ Map.fromList [(v "Exception", exception)] of diff --git a/parser-typechecker/src/Unison/Util/Text.hs b/parser-typechecker/src/Unison/Util/Text.hs index c588e35743..34bdbc7792 100644 --- a/parser-typechecker/src/Unison/Util/Text.hs +++ b/parser-typechecker/src/Unison/Util/Text.hs @@ -48,6 +48,10 @@ replicate n t = toLazyText :: Text -> TL.Text toLazyText (Text t) = TL.fromChunks (chunkToText <$> toList t) +fromLazyText :: TL.Text -> Text +fromLazyText = + Text . foldl' (\t -> R.snoc t . chunk) mempty . TL.toChunks + chunkToText :: Chunk -> T.Text chunkToText (Chunk _ t) = t diff --git a/unison-runtime/src/Unison/Runtime/Builtin.hs b/unison-runtime/src/Unison/Runtime/Builtin.hs index 0049e98f10..072101c120 100644 --- a/unison-runtime/src/Unison/Runtime/Builtin.hs +++ b/unison-runtime/src/Unison/Runtime/Builtin.hs @@ -1296,6 +1296,9 @@ declareForeigns = do declareForeign Untracked 2 Set_union declareForeign Untracked 2 Set_intersect declareForeign Untracked 1 Set_toList + declareForeign Untracked 1 Json_toText + declareForeign Untracked 1 Json_unconsText + declareForeign Untracked 1 Json_tryUnconsText foreignDeclResults :: (Map ForeignFunc (Sandbox, SuperNormal Symbol)) foreignDeclResults = diff --git a/unison-runtime/src/Unison/Runtime/Foreign/Function.hs b/unison-runtime/src/Unison/Runtime/Foreign/Function.hs index 564dd3e2c9..1a1f4e249c 100644 --- a/unison-runtime/src/Unison/Runtime/Foreign/Function.hs +++ b/unison-runtime/src/Unison/Runtime/Foreign/Function.hs @@ -36,6 +36,7 @@ import Data.Bits (shiftL, shiftR, (.|.)) import Data.ByteArray qualified as BA import Data.ByteString (hGet, hGetSome, hPut) import Data.ByteString.Lazy qualified as L +import Data.Char (chr, digitToInt, isDigit, ord) import Data.Default (def) import Data.Digest.Murmur64 (asWord64, hash64) import Data.IP (IP) @@ -46,6 +47,7 @@ import Data.Sequence qualified as Sq import Data.Tagged (Tagged (..)) import Data.Text qualified import Data.Text.IO qualified as Text.IO +import Data.Text.Lazy qualified as TL import Data.Time.Clock.POSIX (POSIXTime) import Data.Time.Clock.POSIX as SYS ( getPOSIXTime, @@ -89,6 +91,7 @@ import Network.UDP as UDP serverSocket, stop, ) +import Numeric (showHex) import System.Clock (Clock (..), getTime, nsec, sec) import System.Directory as SYS ( createDirectoryIfMissing, @@ -177,7 +180,7 @@ import Unison.Util.RefPromise tryReadPromise, writePromise, ) -import Unison.Util.Text (Text, pack, unpack) +import Unison.Util.Text (Text, fromLazyText, pack, toLazyText, unpack) import Unison.Util.Text qualified as Util.Text import Unison.Util.Text.Pattern qualified as TPat import UnliftIO qualified @@ -926,6 +929,17 @@ foreignCallHelper = \case (s :: Map Val Val) <- decodeVal vs evaluate . forceListSpine $ Map.keys s _ -> die "Set.toList: bad closure" + Json_toText -> mkForeign $ \(clo :: Closure) -> do + evaluate =<< emitJson clo + Json_unconsText -> mkForeignExn $ \(txt :: Text) -> + pure . bimap mkErr (second encodeVal) $ parseJson txt + where + mkErr err = F.Failure Ty.parseErrorRef msg errv + where + msg = renderJsonParseError err + errv = encodeJsonParseError err + Json_tryUnconsText -> mkForeign $ \(txt :: Text) -> + pure . bimap encodeJsonParseError (second encodeVal) $ parseJson txt where forceListSpine xs = foldl (\u x -> x `seq` u) xs xs chop = reverse . dropWhile isPathSeparator . reverse @@ -1382,6 +1396,261 @@ checkedIndex64 name (arr, i) = (PA.indexByteArray arr (j + 6)) (PA.indexByteArray arr (j + 7)) +-- JSON replacement implementations +jsonNull, jsonTrue, jsonFalse :: Val +jsonNull = BoxedVal $ Enum Ty.jsonRef TT.jsonNullTag +jsonTrue = BoxedVal . Data1 Ty.jsonRef TT.jsonBoolTag $ BoolVal True +jsonFalse = BoxedVal . Data1 Ty.jsonRef TT.jsonBoolTag $ BoolVal False + +jsonArr, jsonObj :: Seq Val -> Val +jsonArr sq = BoxedVal . Data1 Ty.jsonRef TT.jsonArrTag $ encodeVal sq +jsonObj sq = BoxedVal . Data1 Ty.jsonRef TT.jsonObjTag $ encodeVal sq + +jsonNum :: TL.Text -> Val +jsonNum n = BoxedVal . Data1 Ty.jsonRef TT.jsonNumTag $ encodeVal n + +jsonText :: Val -> Val +jsonText v = BoxedVal $ Data1 Ty.jsonRef TT.jsonTextTag v + +data JsonParseError = JPErr Text Int TL.Text + +renderJsonParseError :: JsonParseError -> Text +renderJsonParseError (JPErr msg pos rem) = + "JSON parsing error at position " + <> pack (show pos) + <> ": " + <> msg + <> "\n Remainder of line: " + <> fromLazyText line + where + line = TL.takeWhile (not . (== '\n')) rem + +encodeJsonParseError :: JsonParseError -> Val +encodeJsonParseError (JPErr msg pos rem) = + BoxedVal $ + DataC + Ty.parseErrorRef + TT.jsonParseErrorTag + [encodeVal msg, NatVal n, encodeVal rem] + where + n + | pos < 0 = 0 + | otherwise = fromIntegral pos + +parseJson :: Text -> Either JsonParseError (Val, Text) +parseJson initial = + fmap fromLazyText <$> root (toLazyText initial) + where + err :: Text -> TL.Text -> Either JsonParseError a + err msg rest = Left $ JPErr msg pos rest + where + pos = Util.Text.size initial - fromIntegral (TL.length rest) + + root = main . TL.stripStart + + numberStart '-' = True + numberStart c = isDigit c + + number txt = case sign txt of + 0 -> Nothing + n -> Just (TL.splitAt n txt) + + sign txt = case TL.uncons txt of + Just ('-', txt) -> firstDigit 1 txt + _ -> firstDigit 0 txt + + firstDigit !n txt = case TL.uncons txt of + Just ('0', txt) -> decimal (n + 1) txt + Just (c, txt) + | '1' <= c, c <= '9' -> whole (n + 1) txt + _ -> 0 + + whole !n (TL.span isDigit -> (pre, txt)) = + decimal (n + TL.length pre) txt + + decimal !n txt = case TL.uncons txt of + Just ('.', txt) + | (pre, txt) <- TL.span isDigit txt, + not (TL.null pre) -> + exponent (n + 1 + TL.length pre) txt + _ -> exponent n txt + + exponent !n txt = case TL.uncons txt of + Just (c, txt) | c == 'e' || c == 'E' -> case TL.uncons txt of + Just (c, txt) | c == '-' || c == '+' -> digits (n + 2) txt + _ -> digits (n + 1) txt + _ -> n + + digits !n (TL.takeWhile isDigit -> pre) = n + TL.length pre + + main txt0 = case TL.uncons txt0 of + Nothing -> err "unexpected end of file" txt0 + Just ('{', txt) -> obj Sq.empty txt + Just ('[', txt) -> array Sq.empty txt + Just ('"', _) -> first jsonText <$> textLit txt0 + Just ('n', txt) + | (pre, post) <- TL.splitAt 3 txt -> + if pre == "ull" + then pure (jsonNull, post) + else err "expected null" txt0 + Just ('t', txt) + | (pre, post) <- TL.splitAt 3 txt -> + if pre == "rue" + then pure (jsonTrue, post) + else err "expected true" txt0 + Just ('f', txt) + | (pre, post) <- TL.splitAt 4 txt -> + if pre == "alse" + then pure (jsonFalse, post) + else err "expected false" txt0 + Just (c, _) + | numberStart c, + Just (n, rest) <- number txt0 -> + pure (jsonNum n, rest) + _ -> err ("unknown token: " <> tok) txt0 + where + tok = fromLazyText (TL.take 10 txt0) + + array :: Sq.Seq Val -> TL.Text -> Either JsonParseError (Val, TL.Text) + array acc (TL.stripStart -> txt) = case TL.uncons txt of + Nothing -> + err "unexpected end of file while parsing an array" txt + Just (']', rest) -> + pure (jsonArr acc, rest) + _ -> + main txt >>= \case + (el, TL.stripStart -> rest) -> case TL.uncons rest of + Just (',', rest) -> array (acc Sq.|> el) rest + Just (']', rest) -> pure (jsonArr $ acc Sq.|> el, rest) + _ -> + err "expected ',' or ']'" rest + + obj :: Sq.Seq Val -> TL.Text -> Either JsonParseError (Val, TL.Text) + obj acc (TL.stripStart -> txt) = case TL.uncons txt of + Nothing -> + err "unexpected end of file while parsing an object" txt + Just ('}', rest) -> + pure (jsonObj acc, rest) + _ -> + entry txt >>= \case + (el, TL.stripStart -> rest) -> case TL.uncons rest of + Just (',', rest) -> obj (acc Sq.|> el) rest + Just ('}', rest) -> pure (jsonObj $ acc Sq.|> el, rest) + _ -> err "expected ',' or '}'" rest + + entry txt = + textLit txt >>= \case + (key, TL.stripStart -> txt) -> case TL.uncons txt of + Just (':', txt) -> + first (Tup2V key) <$> root txt + _ -> err "expected ':'" txt + + textLit :: TL.Text -> Either JsonParseError (Val, TL.Text) + textLit txt = case TL.uncons txt of + Just ('"', rest) -> textBody txt [] rest + _ -> err "expected text literal" txt + + hexDig txt = + TL.uncons txt >>= \case + (c, rest) + | '0' <= c, c <= '9' -> Just (digitToInt c, rest) + | 'a' <= c, c <= 'f' -> Just (10 + (ord c - ord 'a'), rest) + | 'A' <= c, c <= 'F' -> Just (10 + (ord c - ord 'A'), rest) + | otherwise -> Nothing + + uescape txt = do + (a, txt) <- hexDig txt + (b, txt) <- hexDig txt + (c, txt) <- hexDig txt + (d, txt) <- hexDig txt + pure (((((a * 16) + b) * 16) + c) * 16 + d, txt) + + special c = c == '"' || c == '\\' + + textBody :: TL.Text -> [TL.Text] -> TL.Text -> Either JsonParseError (Val, TL.Text) + textBody txt0 acc txt + | (pre, txt) <- TL.break special txt, + acc <- pre : acc = + case TL.uncons txt of + Just ('"', txt) -> + pure (encodeVal @TL.Text . TL.concat $ reverse acc, txt) + Just ('\\', txt) -> case TL.uncons txt of + Just ('f', txt) -> textBody txt0 ("\f" : acc) txt + Just ('n', txt) -> textBody txt0 ("\n" : acc) txt + Just ('r', txt) -> textBody txt0 ("\r" : acc) txt + Just ('t', txt) -> textBody txt0 ("\t" : acc) txt + Just ('b', txt) -> textBody txt0 ("\b" : acc) txt + Just ('/', txt) -> textBody txt0 ("/" : acc) txt + Just ('\\', txt) -> textBody txt0 ("\\" : acc) txt + Just ('"', txt) -> textBody txt0 ("\"" : acc) txt + Just ('u', txt) + | Just (n, txt) <- uescape txt -> + textBody txt0 (TL.singleton (chr n) : acc) txt + _ -> err "expected text literal" txt0 + _ -> err "expected text literal" txt0 + +emitJson :: Closure -> IO Text +emitJson = \case + Enum _ t + | TT.jsonNullTag == t -> pure "null" + Data1 _ t v + | TT.jsonBoolTag == t, + BoolVal b <- v -> + pure $ if b then "true" else "false" + | TT.jsonNumTag == t -> + decodeVal @Text v + | TT.jsonObjTag == t -> + fmap renderObject . traverse emitPair =<< decodeVal @(Seq Val) v + | TT.jsonTextTag == t -> + literalForm <$> decodeVal @Text v + | TT.jsonArrTag == t -> + fmap renderArray . traverse emitJsonVal =<< decodeVal @(Seq Val) v + c -> die $ "Json.toText: unrecognized Json value: " ++ show c + where + emitJsonVal (BoxedVal c) = emitJson c + emitJsonVal v = + die $ "Json.toText: unrecognized Json value: " ++ show v + + commaSep = fold . Sq.intersperse "," + renderArray s = "[" <> commaSep s <> "]" + renderObject s = "{" <> commaSep s <> "}" + + emitPair (Tup2V x y) = + mapping <$> decodeVal @Text x <*> emitJsonVal y + emitPair v = + die $ "Json.toText: unrecognized Json object pair: " ++ show v + + mapping key val = literalForm key <> ":" <> val + + special c = TL.any (== c) "\"\\/\b\f\n\r\t" || ord c <= 31 + + literalForm tx = + "\"" <> fromLazyText (escape [] (toLazyText tx)) <> "\"" + + escape acc tx + | TL.null tx = TL.concat (reverse acc) + | (pre, rest) <- TL.break special tx = + escape1 (pre : acc) rest + + hexCode c = TL.pack $ replicate (2 - length s) '0' ++ s + where + s = showHex (ord c) "" + + escape1 acc tx = case TL.uncons tx of + Nothing -> TL.concat (reverse acc) + Just (c, rest) -> escape (chs : acc) rest + where + chs + | '"' <- c = "\\\"" + | '\\' <- c = "\\\\" + | '\b' <- c = "\\b" + | '\f' <- c = "\\f" + | '\n' <- c = "\\n" + | '\r' <- c = "\\r" + | '\t' <- c = "\\t" + | ord c <= 31 = "\\u00" <> hexCode c + | otherwise = TL.singleton c + -- A ForeignConvention explains how to encode foreign values as -- unison types. Depending on the situation, this can take three -- forms. @@ -1950,6 +2219,13 @@ instance ForeignConvention Bool where readAtIndex = peekOffBool writeBack = pokeBool +instance ForeignConvention TL.Text where + decodeVal = decodeAsBuiltin toLazyText + encodeVal = encodeAsBuiltin fromLazyText + + readAtIndex = readAsBuiltin toLazyText + writeBack = writeAsBuiltin fromLazyText + instance ForeignConvention Double where decodeVal (DoubleVal d) = pure d decodeVal v = foreignConventionError "Double" v @@ -1987,7 +2263,8 @@ instance ForeignConvention Foreign where writeBack stk f = bpoke stk (Foreign f) instance ForeignConvention (Seq Val) where - decodeVal (BoxedVal (Foreign f)) = unwrapForeign f + decodeVal (BoxedVal (Foreign f)) = + pure $ unwrapForeign @(Seq Val) f decodeVal v = foreignConventionError "Seq" v encodeVal = BoxedVal . Foreign . Wrap listRef @@ -2113,49 +2390,75 @@ pseudoConstructors = (fromIntegral Ty.mapBin, Map_bin) ] -functionReplacementList :: [(Data.Text.Text, ForeignFunc)] +functionReplacementList :: [(Data.Text.Text, Pos, ForeignFunc)] functionReplacementList = [ ( "03hqp8knrcgdc733mitcunjlug4cpi9headkggu8h9d87nfgneo6e", + 0, Map_insert ), ( "03g44bb2bp3g5eld8eh07g6e8iq7oiqiplapeb6jerbs7ee3icq9s", + 0, Map_lookup ), ( "005mc1fq7ojq72c238qlm2rspjgqo2furjodf28icruv316odu6du", + 0, Map_fromList ), ( "01qqpul0ttlgjhr5i2gtmdr2uarns2hbtnjpipmk1575ipkrlug42", + 0, Map_union ), ( "00c363e340il8q0fai6peiv3586o931nojj98qfek09hg1tjkm9ma", + 0, Map_intersect ), ( "03pjq0jijrr7ebf6s3tuqi4d5hi5mrv19nagp7ql2j9ltm55c32ek", + 0, Map_toList ), ( "03putoun7i5n0lhf8iu990u9p08laklnp668i170dka2itckmadlq", + 0, Multimap_fromList ), ( "03q6giac0qlva6u4mja29tr7mv0jqnsugk8paibatdrns8lhqqb92", + 0, Set_fromList ), ( "03362vaalqq28lcrmmsjhha637is312j01jme3juj980ugd93up28", + 0, Set_union ), ( "01lm6ejo31na1ti6u85bv0klliefll7q0c0da2qnefvcrq1l8rlqe", + 0, Set_intersect ), ( "01p7ot36tg62na408mnk1psve6rc7fog30gv6n7thkrv6t3na2gdm", + 0, Set_toList ), ( "03c559iihi2vj0qps6cln48nv31ajup2srhas4pd05b9k46ds8jvk", + 0, Map_eq ), ( "01f446li3b0j5gcnj7fa99jfqir43shs0jqu779oo0npb7v8d3v22", + 0, List_range ), ( "00jh7o3l67okqqalho1sqgl4ei9n2sdhrpqobgkf7j390v4e938km", + 0, List_sort + ), + ( "02n2eflppo81c4ako71f2ji347ljf1qoiij08q8tbid1p4k3n62k0", + 1, + Json_toText + ), + ( "02d659vubpd4m2cqbupec8qg3jpdfkgotpqtera3hh72bc3b9o6m6", + 0, + Json_unconsText + ), + ( "01pl56v6v0n2labp71cp6darcbftlj7d4h9t718mkfpj6lc905ro4", + 0, + Json_tryUnconsText ) ] @@ -2171,8 +2474,8 @@ functionUnreplacements = -- Note: using index 0 right now. Generalize if ever replacing -- part of a mutually recursive group. -process :: (Data.Text.Text, ForeignFunc) -> (Reference, Reference) -process (str, ff) = case derivedBase32Hex str 0 of +process :: (Data.Text.Text, Pos, ForeignFunc) -> (Reference, Reference) +process (str, pos, ff) = case derivedBase32Hex str pos of Nothing -> error $ "Could not create reference for " ++ sname Just r -> (r, Builtin name) where diff --git a/unison-runtime/src/Unison/Runtime/Foreign/Function/Type.hs b/unison-runtime/src/Unison/Runtime/Foreign/Function/Type.hs index d46e11b001..a5699b9504 100644 --- a/unison-runtime/src/Unison/Runtime/Foreign/Function/Type.hs +++ b/unison-runtime/src/Unison/Runtime/Foreign/Function/Type.hs @@ -274,6 +274,9 @@ data ForeignFunc | Set_union | Set_intersect | Set_toList + | Json_toText + | Json_unconsText + | Json_tryUnconsText deriving (Show, Eq, Ord, Enum, Bounded) foreignFuncBuiltinName :: ForeignFunc -> Text @@ -544,3 +547,6 @@ foreignFuncBuiltinName = \case Set_union -> "Set.union" Set_intersect -> "Set.intersect" Set_toList -> "Set.toList" + Json_toText -> "Json.toText" + Json_unconsText -> "Json.unconsText" + Json_tryUnconsText -> "Json.tryUnconsText" diff --git a/unison-runtime/src/Unison/Runtime/Stack.hs b/unison-runtime/src/Unison/Runtime/Stack.hs index f8b3713aac..8836001ddf 100644 --- a/unison-runtime/src/Unison/Runtime/Stack.hs +++ b/unison-runtime/src/Unison/Runtime/Stack.hs @@ -581,7 +581,7 @@ pattern IntVal i <- (matchIntVal -> Just i) matchBoolVal :: Val -> Maybe Bool matchBoolVal = \case - (BoxedVal (Enum r t)) | r == Ty.booleanRef -> Just (t == TT.falseTag) + (BoxedVal (Enum r t)) | r == Ty.booleanRef -> Just (t == TT.trueTag) _ -> Nothing pattern BoolVal :: Bool -> Val diff --git a/unison-runtime/src/Unison/Runtime/TypeTags.hs b/unison-runtime/src/Unison/Runtime/TypeTags.hs index 7d974fb510..7964b7b32e 100644 --- a/unison-runtime/src/Unison/Runtime/TypeTags.hs +++ b/unison-runtime/src/Unison/Runtime/TypeTags.hs @@ -42,6 +42,13 @@ module Unison.Runtime.TypeTags mapTipTag, mapBinTag, setWrapTag, + jsonNullTag, + jsonBoolTag, + jsonObjTag, + jsonNumTag, + jsonTextTag, + jsonArrTag, + jsonParseErrorTag, ) where @@ -291,6 +298,33 @@ setWrapTag swt | otherwise = error "internal error: set tag" +jsonNullTag, jsonBoolTag, jsonObjTag, jsonNumTag :: PackedTag +jsonTextTag, jsonArrTag :: PackedTag +(jsonNullTag, jsonBoolTag, jsonObjTag, jsonNumTag, jsonTextTag, jsonArrTag) + | [nlt, bot, obt, nut, txt, art] <- + mkTags + "json tags" + Ty.jsonRef + [ Ty.jsonNull, + Ty.jsonBool, + Ty.jsonObj, + Ty.jsonNum, + Ty.jsonText, + Ty.jsonArr + ] = + (nlt, bot, obt, nut, txt, art) + | otherwise = error "internal error: json tags" + +jsonParseErrorTag :: PackedTag +jsonParseErrorTag + | [pet] <- + mkTags + "json parse error tag" + Ty.parseErrorRef + [Ty.jsonParseError] = + pet + | otherwise = error "internal error: json parse error tag" + -- | A tag we use to represent the 'pure' effect case. pureEffectTag :: PackedTag pureEffectTag = PackedTag 0 diff --git a/unison-src/transcripts-using-base/all-base-hashes.output.md b/unison-src/transcripts-using-base/all-base-hashes.output.md index af827087d7..1d760736a6 100644 --- a/unison-src/transcripts-using-base/all-base-hashes.output.md +++ b/unison-src/transcripts-using-base/all-base-hashes.output.md @@ -1753,123 +1753,153 @@ scratch/main> find.verbose 498. -- #q6snodsh7i7u6k7gtqj73tt7nv6htjofs5f37vg2v3dsfk6hau71fs5mcv0hq3lqg111fsvoi92mngm08850aftfgh65uka9mhqvft0#0 builtin.IsTest.IsTest : IsTest - 499. -- #68haromionghg6cvojngjrgc7t0ob658nkk8b20fpho6k6ltjtf6rfmr4ia1omige97hk34lu21qsj933vl1dkpbna7evbjfkh71r9g + 499. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo + type builtin.Json + + 500. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo#5 + builtin.Json.Array : [Json] -> Json + + 501. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo#1 + builtin.Json.Boolean : Boolean -> Json + + 502. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo#0 + builtin.Json.Null : Json + + 503. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo#3 + builtin.Json.Number.Unparsed : Text -> Json + + 504. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo#2 + builtin.Json.Object : [(Text, Json)] -> Json + + 505. -- #7ndh8qr2jn3b0b4ps8pa85hm0ts3kmuvrmhne87ka0q61i4u3pvafjoetjel4s66s2sji1hp81jnbih5812hbfe3if6fc4ndnouitl8 + type builtin.Json.ParseError + + 506. -- #7ndh8qr2jn3b0b4ps8pa85hm0ts3kmuvrmhne87ka0q61i4u3pvafjoetjel4s66s2sji1hp81jnbih5812hbfe3if6fc4ndnouitl8#0 + builtin.Json.ParseError.ParseError : Text + -> Nat + -> Text + -> ParseError + + 507. -- #j0uel16uheg3tdbj87msfh1isek2ml1262o562sjqpup6uh4gncgpg588u3nmdclbv8tu0c7e0943t0paud4f28dr4a9scfq2v12fpo#4 + builtin.Json.Text : Text -> Json + + 508. -- #68haromionghg6cvojngjrgc7t0ob658nkk8b20fpho6k6ltjtf6rfmr4ia1omige97hk34lu21qsj933vl1dkpbna7evbjfkh71r9g type builtin.License - 500. -- #knhl4mlkqf0mt877flahlbas2ufb7bub8f11vi9ihh9uf7r6jqaglk7rm6912q1vml50866ddl0qfa4o6d7o0gomchaoae24m0u2nk8 + 509. -- #knhl4mlkqf0mt877flahlbas2ufb7bub8f11vi9ihh9uf7r6jqaglk7rm6912q1vml50866ddl0qfa4o6d7o0gomchaoae24m0u2nk8 builtin.License.copyrightHolders : License -> [CopyrightHolder] - 501. -- #ucpi54l843bf1osaejl1cnn0jt3o89fak5c0120k8256in3m80ik836hnite0osl12m91utnpnt5n7pgm3oe1rv4r1hk8ai4033agvo + 510. -- #ucpi54l843bf1osaejl1cnn0jt3o89fak5c0120k8256in3m80ik836hnite0osl12m91utnpnt5n7pgm3oe1rv4r1hk8ai4033agvo builtin.License.copyrightHolders.modify : ([CopyrightHolder] ->{g} [CopyrightHolder]) -> License ->{g} License - 502. -- #9hbbfn61d2odn8jvtj5da9n1e9decsrheg6chg73uf94oituv3750b9hd6vp3ljhi54dkp5uqfg57j66i39bstfd8ivgav4p3si39ro + 511. -- #9hbbfn61d2odn8jvtj5da9n1e9decsrheg6chg73uf94oituv3750b9hd6vp3ljhi54dkp5uqfg57j66i39bstfd8ivgav4p3si39ro builtin.License.copyrightHolders.set : [CopyrightHolder] -> License -> License - 503. -- #68haromionghg6cvojngjrgc7t0ob658nkk8b20fpho6k6ltjtf6rfmr4ia1omige97hk34lu21qsj933vl1dkpbna7evbjfkh71r9g#0 + 512. -- #68haromionghg6cvojngjrgc7t0ob658nkk8b20fpho6k6ltjtf6rfmr4ia1omige97hk34lu21qsj933vl1dkpbna7evbjfkh71r9g#0 builtin.License.License : [CopyrightHolder] -> [Year] -> LicenseType -> License - 504. -- #aqi4h1bfq2rjnrrfanf4nut8jd1elkkc00u1tn0rmt9ocsrds8i8pha7q9cihvbiq7edpg21iqnfornimae2gad0ab8ih0bksjnoi4g + 513. -- #aqi4h1bfq2rjnrrfanf4nut8jd1elkkc00u1tn0rmt9ocsrds8i8pha7q9cihvbiq7edpg21iqnfornimae2gad0ab8ih0bksjnoi4g builtin.License.licenseType : License -> LicenseType - 505. -- #1rm8kpbv278t9tqj4jfssl8q3cn4hgu1mti7bp8lhcr5h7qmojujmt9de4c31p42to8mtav61u98oad3oen8q9im20sacs69psjpugo + 514. -- #1rm8kpbv278t9tqj4jfssl8q3cn4hgu1mti7bp8lhcr5h7qmojujmt9de4c31p42to8mtav61u98oad3oen8q9im20sacs69psjpugo builtin.License.licenseType.modify : (LicenseType ->{g} LicenseType) -> License ->{g} License - 506. -- #dv9jsg0ksrlp3g0uftvkutpa8matt039o7dhat9airnkto2b703mgoi5t412hdi95pdhp9g01luga13ihmp52nk6bgh788gts6elv2o + 515. -- #dv9jsg0ksrlp3g0uftvkutpa8matt039o7dhat9airnkto2b703mgoi5t412hdi95pdhp9g01luga13ihmp52nk6bgh788gts6elv2o builtin.License.licenseType.set : LicenseType -> License -> License - 507. -- #fh5qbeba2hg5c5k9uppi71rfghj8df37p4cg3hk23b9pv0hpm67ok807f05t368rn6v99v7kvf7cp984v8ipkjr1j1h095g6nd9jtig + 516. -- #fh5qbeba2hg5c5k9uppi71rfghj8df37p4cg3hk23b9pv0hpm67ok807f05t368rn6v99v7kvf7cp984v8ipkjr1j1h095g6nd9jtig builtin.License.years : License -> [Year] - 508. -- #2samr066hti71pf0fkvb4niemm7j3amvaap3sk1dqpihqp9g8f8lknhhmjq9atai6j5kcs4huvfokvpm15ebefmfggr4hd2cetf7co0 + 517. -- #2samr066hti71pf0fkvb4niemm7j3amvaap3sk1dqpihqp9g8f8lknhhmjq9atai6j5kcs4huvfokvpm15ebefmfggr4hd2cetf7co0 builtin.License.years.modify : ([Year] ->{g} [Year]) -> License ->{g} License - 509. -- #g3ap8lg6974au4meb2hl49k1k6f048det9uckmics3bkt9s571921ksqfdsch63k2pk3fij8pn697svniakkrueddh8nkflnmjk9ffo + 518. -- #g3ap8lg6974au4meb2hl49k1k6f048det9uckmics3bkt9s571921ksqfdsch63k2pk3fij8pn697svniakkrueddh8nkflnmjk9ffo builtin.License.years.set : [Year] -> License -> License - 510. -- #uj652rrb45urfnojgt1ssqoji7iiibu27uhrc1sfl68lm54hbr7r1dpgppsv0pvf0oile2uk2h2gn1h4vgng30fga66idihhen14qc0 + 519. -- #uj652rrb45urfnojgt1ssqoji7iiibu27uhrc1sfl68lm54hbr7r1dpgppsv0pvf0oile2uk2h2gn1h4vgng30fga66idihhen14qc0 type builtin.LicenseType - 511. -- #uj652rrb45urfnojgt1ssqoji7iiibu27uhrc1sfl68lm54hbr7r1dpgppsv0pvf0oile2uk2h2gn1h4vgng30fga66idihhen14qc0#0 + 520. -- #uj652rrb45urfnojgt1ssqoji7iiibu27uhrc1sfl68lm54hbr7r1dpgppsv0pvf0oile2uk2h2gn1h4vgng30fga66idihhen14qc0#0 builtin.LicenseType.LicenseType : Doc -> LicenseType - 512. -- #f4b37niu61dc517c32h3os36ig34fgnt7inaaoqdbecmscchthi14gdo0vj3eee1ru746ibvl9vnmm1pglrv3125qnhsbc0i1tqtic0 + 521. -- #f4b37niu61dc517c32h3os36ig34fgnt7inaaoqdbecmscchthi14gdo0vj3eee1ru746ibvl9vnmm1pglrv3125qnhsbc0i1tqtic0 type builtin.Link - 513. -- ##Link.Term + 522. -- ##Link.Term builtin type builtin.Link.Term - 514. -- #f4b37niu61dc517c32h3os36ig34fgnt7inaaoqdbecmscchthi14gdo0vj3eee1ru746ibvl9vnmm1pglrv3125qnhsbc0i1tqtic0#0 + 523. -- #f4b37niu61dc517c32h3os36ig34fgnt7inaaoqdbecmscchthi14gdo0vj3eee1ru746ibvl9vnmm1pglrv3125qnhsbc0i1tqtic0#0 builtin.Link.Term : Link.Term -> Link - 515. -- ##Link.Term.toText + 524. -- ##Link.Term.toText builtin.Link.Term.toText : Link.Term -> Text - 516. -- ##Link.Type + 525. -- ##Link.Type builtin type builtin.Link.Type - 517. -- #f4b37niu61dc517c32h3os36ig34fgnt7inaaoqdbecmscchthi14gdo0vj3eee1ru746ibvl9vnmm1pglrv3125qnhsbc0i1tqtic0#1 + 526. -- #f4b37niu61dc517c32h3os36ig34fgnt7inaaoqdbecmscchthi14gdo0vj3eee1ru746ibvl9vnmm1pglrv3125qnhsbc0i1tqtic0#1 builtin.Link.Type : Type -> Link - 518. -- ##Sequence + 527. -- ##Sequence builtin type builtin.List - 519. -- ##List.++ + 528. -- ##List.++ builtin.List.++ : [a] -> [a] -> [a] - 520. -- ##List.cons + 529. -- ##List.cons builtin.List.+:, builtin.List.cons : a -> [a] -> [a] - 521. -- ##List.snoc + 530. -- ##List.snoc builtin.List.:+, builtin.List.snoc : [a] -> a -> [a] - 522. -- ##List.at + 531. -- ##List.at builtin.List.at : Nat -> [a] -> Optional a - 523. -- ##List.cons + 532. -- ##List.cons builtin.List.cons, builtin.List.+: : a -> [a] -> [a] - 524. -- ##List.drop + 533. -- ##List.drop builtin.List.drop : Nat -> [a] -> [a] - 525. -- ##List.empty + 534. -- ##List.empty builtin.List.empty : [a] - 526. -- #6frvp5jfjtt7odi9769i0p5phuuuij1fi1d9l5ncpelh416ab3vceaphhaijh0ct0v9n793j7e4h78687oij6ai97085u63m264gj5o + 535. -- #6frvp5jfjtt7odi9769i0p5phuuuij1fi1d9l5ncpelh416ab3vceaphhaijh0ct0v9n793j7e4h78687oij6ai97085u63m264gj5o builtin.List.map : (a ->{e} b) -> [a] ->{e} [b] - 527. -- ##List.size + 536. -- ##List.size builtin.List.size : [a] -> Nat - 528. -- ##List.snoc + 537. -- ##List.snoc builtin.List.snoc, builtin.List.:+ : [a] -> a -> [a] - 529. -- ##List.take + 538. -- ##List.take builtin.List.take : Nat -> [a] -> [a] - 530. -- ##ListenSocket + 539. -- ##ListenSocket builtin type builtin.ListenSocket - 531. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg + 540. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg type builtin.Map k v type Map k v - 532. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#0 + 541. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#0 builtin.Map.Bin, Map.Bin : Nat -> k @@ -1878,19 +1908,19 @@ scratch/main> find.verbose -> Map k v -> Map k v - 533. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#1 + 542. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#1 builtin.Map.Tip, Map.Tip : Map k v - 534. -- #cb9e3iosob3e4q0v96ifmserg27samv1lvi4dh0l0l19phvct4vbbvv19abngneb77b02h8cefr1o3ad8gnm3cn6mjgsub97gjlte8g + 543. -- #cb9e3iosob3e4q0v96ifmserg27samv1lvi4dh0l0l19phvct4vbbvv19abngneb77b02h8cefr1o3ad8gnm3cn6mjgsub97gjlte8g builtin.metadata.isPropagated : IsPropagated - 535. -- #lkpne3jg56pmqegv4jba6b5nnjg86qtfllnlmtvijql5lsf89rfu6tgb1s9ic0gsqs5si0v9agmj90lk0bhihbovd5o5ve023g4ocko + 544. -- #lkpne3jg56pmqegv4jba6b5nnjg86qtfllnlmtvijql5lsf89rfu6tgb1s9ic0gsqs5si0v9agmj90lk0bhihbovd5o5ve023g4ocko builtin.metadata.isTest : IsTest - 536. -- ##MutableArray + 545. -- ##MutableArray builtin type builtin.MutableArray - 537. -- ##MutableArray.copyTo! + 546. -- ##MutableArray.copyTo! builtin.MutableArray.copyTo! : MutableArray g a -> Nat -> MutableArray g a @@ -1898,34 +1928,34 @@ scratch/main> find.verbose -> Nat ->{g, Exception} () - 538. -- ##MutableArray.freeze + 547. -- ##MutableArray.freeze builtin.MutableArray.freeze : MutableArray g a -> Nat -> Nat ->{g} ImmutableArray a - 539. -- ##MutableArray.freeze! + 548. -- ##MutableArray.freeze! builtin.MutableArray.freeze! : MutableArray g a ->{g} ImmutableArray a - 540. -- ##MutableArray.read + 549. -- ##MutableArray.read builtin.MutableArray.read : MutableArray g a -> Nat ->{g, Exception} a - 541. -- ##MutableArray.size + 550. -- ##MutableArray.size builtin.MutableArray.size : MutableArray g a -> Nat - 542. -- ##MutableArray.write + 551. -- ##MutableArray.write builtin.MutableArray.write : MutableArray g a -> Nat -> a ->{g, Exception} () - 543. -- ##MutableByteArray + 552. -- ##MutableByteArray builtin type builtin.MutableByteArray - 544. -- ##MutableByteArray.copyTo! + 553. -- ##MutableByteArray.copyTo! builtin.MutableByteArray.copyTo! : MutableByteArray g -> Nat -> MutableByteArray g @@ -1933,755 +1963,755 @@ scratch/main> find.verbose -> Nat ->{g, Exception} () - 545. -- ##MutableByteArray.freeze + 554. -- ##MutableByteArray.freeze builtin.MutableByteArray.freeze : MutableByteArray g -> Nat -> Nat ->{g} ImmutableByteArray - 546. -- ##MutableByteArray.freeze! + 555. -- ##MutableByteArray.freeze! builtin.MutableByteArray.freeze! : MutableByteArray g ->{g} ImmutableByteArray - 547. -- ##MutableByteArray.read16be + 556. -- ##MutableByteArray.read16be builtin.MutableByteArray.read16be : MutableByteArray g -> Nat ->{g, Exception} Nat - 548. -- ##MutableByteArray.read24be + 557. -- ##MutableByteArray.read24be builtin.MutableByteArray.read24be : MutableByteArray g -> Nat ->{g, Exception} Nat - 549. -- ##MutableByteArray.read32be + 558. -- ##MutableByteArray.read32be builtin.MutableByteArray.read32be : MutableByteArray g -> Nat ->{g, Exception} Nat - 550. -- ##MutableByteArray.read40be + 559. -- ##MutableByteArray.read40be builtin.MutableByteArray.read40be : MutableByteArray g -> Nat ->{g, Exception} Nat - 551. -- ##MutableByteArray.read64be + 560. -- ##MutableByteArray.read64be builtin.MutableByteArray.read64be : MutableByteArray g -> Nat ->{g, Exception} Nat - 552. -- ##MutableByteArray.read8 + 561. -- ##MutableByteArray.read8 builtin.MutableByteArray.read8 : MutableByteArray g -> Nat ->{g, Exception} Nat - 553. -- ##MutableByteArray.size + 562. -- ##MutableByteArray.size builtin.MutableByteArray.size : MutableByteArray g -> Nat - 554. -- ##MutableByteArray.write16be + 563. -- ##MutableByteArray.write16be builtin.MutableByteArray.write16be : MutableByteArray g -> Nat -> Nat ->{g, Exception} () - 555. -- ##MutableByteArray.write32be + 564. -- ##MutableByteArray.write32be builtin.MutableByteArray.write32be : MutableByteArray g -> Nat -> Nat ->{g, Exception} () - 556. -- ##MutableByteArray.write64be + 565. -- ##MutableByteArray.write64be builtin.MutableByteArray.write64be : MutableByteArray g -> Nat -> Nat ->{g, Exception} () - 557. -- ##MutableByteArray.write8 + 566. -- ##MutableByteArray.write8 builtin.MutableByteArray.write8 : MutableByteArray g -> Nat -> Nat ->{g, Exception} () - 558. -- ##Nat + 567. -- ##Nat builtin type builtin.Nat - 559. -- ##Nat.* + 568. -- ##Nat.* builtin.Nat.* : Nat -> Nat -> Nat - 560. -- ##Nat.+ + 569. -- ##Nat.+ builtin.Nat.+ : Nat -> Nat -> Nat - 561. -- ##Nat./ + 570. -- ##Nat./ builtin.Nat./ : Nat -> Nat -> Nat - 562. -- ##Nat.and + 571. -- ##Nat.and builtin.Nat.and : Nat -> Nat -> Nat - 563. -- ##Nat.complement + 572. -- ##Nat.complement builtin.Nat.complement : Nat -> Nat - 564. -- ##Nat.drop + 573. -- ##Nat.drop builtin.Nat.drop : Nat -> Nat -> Nat - 565. -- ##Nat.== + 574. -- ##Nat.== builtin.Nat.eq : Nat -> Nat -> Boolean - 566. -- ##Nat.fromText + 575. -- ##Nat.fromText builtin.Nat.fromText : Text -> Optional Nat - 567. -- ##Nat.> + 576. -- ##Nat.> builtin.Nat.gt : Nat -> Nat -> Boolean - 568. -- ##Nat.>= + 577. -- ##Nat.>= builtin.Nat.gteq : Nat -> Nat -> Boolean - 569. -- ##Nat.increment + 578. -- ##Nat.increment builtin.Nat.increment : Nat -> Nat - 570. -- ##Nat.isEven + 579. -- ##Nat.isEven builtin.Nat.isEven : Nat -> Boolean - 571. -- ##Nat.isOdd + 580. -- ##Nat.isOdd builtin.Nat.isOdd : Nat -> Boolean - 572. -- ##Nat.leadingZeros + 581. -- ##Nat.leadingZeros builtin.Nat.leadingZeros : Nat -> Nat - 573. -- ##Nat.< + 582. -- ##Nat.< builtin.Nat.lt : Nat -> Nat -> Boolean - 574. -- ##Nat.<= + 583. -- ##Nat.<= builtin.Nat.lteq : Nat -> Nat -> Boolean - 575. -- ##Nat.mod + 584. -- ##Nat.mod builtin.Nat.mod : Nat -> Nat -> Nat - 576. -- ##Nat.or + 585. -- ##Nat.or builtin.Nat.or : Nat -> Nat -> Nat - 577. -- ##Nat.popCount + 586. -- ##Nat.popCount builtin.Nat.popCount : Nat -> Nat - 578. -- ##Nat.pow + 587. -- ##Nat.pow builtin.Nat.pow : Nat -> Nat -> Nat - 579. -- ##Nat.shiftLeft + 588. -- ##Nat.shiftLeft builtin.Nat.shiftLeft : Nat -> Nat -> Nat - 580. -- ##Nat.shiftRight + 589. -- ##Nat.shiftRight builtin.Nat.shiftRight : Nat -> Nat -> Nat - 581. -- ##Nat.sub + 590. -- ##Nat.sub builtin.Nat.sub : Nat -> Nat -> Int - 582. -- ##Nat.toFloat + 591. -- ##Nat.toFloat builtin.Nat.toFloat : Nat -> Float - 583. -- ##Nat.toInt + 592. -- ##Nat.toInt builtin.Nat.toInt : Nat -> Int - 584. -- ##Nat.toText + 593. -- ##Nat.toText builtin.Nat.toText : Nat -> Text - 585. -- ##Nat.trailingZeros + 594. -- ##Nat.trailingZeros builtin.Nat.trailingZeros : Nat -> Nat - 586. -- ##Nat.xor + 595. -- ##Nat.xor builtin.Nat.xor : Nat -> Nat -> Nat - 587. -- #nirp5os0q69o4e1u9p3t6mmq6l6otluefi3ksm7dhm0diidjvkkgl8o9bvnflbj0sanuvdusf34f1qrins3ktcaglpcqv9oums2slsg + 596. -- #nirp5os0q69o4e1u9p3t6mmq6l6otluefi3ksm7dhm0diidjvkkgl8o9bvnflbj0sanuvdusf34f1qrins3ktcaglpcqv9oums2slsg structural type builtin.Optional a - 588. -- #nirp5os0q69o4e1u9p3t6mmq6l6otluefi3ksm7dhm0diidjvkkgl8o9bvnflbj0sanuvdusf34f1qrins3ktcaglpcqv9oums2slsg#1 + 597. -- #nirp5os0q69o4e1u9p3t6mmq6l6otluefi3ksm7dhm0diidjvkkgl8o9bvnflbj0sanuvdusf34f1qrins3ktcaglpcqv9oums2slsg#1 builtin.Optional.None : Optional a - 589. -- #nirp5os0q69o4e1u9p3t6mmq6l6otluefi3ksm7dhm0diidjvkkgl8o9bvnflbj0sanuvdusf34f1qrins3ktcaglpcqv9oums2slsg#0 + 598. -- #nirp5os0q69o4e1u9p3t6mmq6l6otluefi3ksm7dhm0diidjvkkgl8o9bvnflbj0sanuvdusf34f1qrins3ktcaglpcqv9oums2slsg#0 builtin.Optional.Some : a -> Optional a - 590. -- ##Pattern + 599. -- ##Pattern builtin type builtin.Pattern - 591. -- ##Pattern.capture + 600. -- ##Pattern.capture builtin.Pattern.capture : Pattern a -> Pattern a - 592. -- ##Pattern.captureAs + 601. -- ##Pattern.captureAs builtin.Pattern.captureAs : a -> Pattern a -> Pattern a - 593. -- ##Pattern.isMatch + 602. -- ##Pattern.isMatch builtin.Pattern.isMatch : Pattern a -> a -> Boolean - 594. -- ##Pattern.join + 603. -- ##Pattern.join builtin.Pattern.join : [Pattern a] -> Pattern a - 595. -- ##Pattern.lookahead + 604. -- ##Pattern.lookahead builtin.Pattern.lookahead : Pattern a -> Pattern a - 596. -- ##Pattern.many + 605. -- ##Pattern.many builtin.Pattern.many : Pattern a -> Pattern a - 597. -- ##Pattern.many.corrected + 606. -- ##Pattern.many.corrected builtin.Pattern.many.corrected : Pattern a -> Pattern a - 598. -- ##Pattern.negativeLookahead + 607. -- ##Pattern.negativeLookahead builtin.Pattern.negativeLookahead : Pattern a -> Pattern a - 599. -- ##Pattern.or + 608. -- ##Pattern.or builtin.Pattern.or : Pattern a -> Pattern a -> Pattern a - 600. -- ##Pattern.replicate + 609. -- ##Pattern.replicate builtin.Pattern.replicate : Nat -> Nat -> Pattern a -> Pattern a - 601. -- ##Pattern.run + 610. -- ##Pattern.run builtin.Pattern.run : Pattern a -> a -> Optional ([a], a) - 602. -- #cbo8de57n17pgc5iic1741jeiunhvhfcfd7gt79vd6516u64aplasdodqoouejbgovhge2le5jb6rje923fcrllhtu01t29cdrssgbg + 611. -- #cbo8de57n17pgc5iic1741jeiunhvhfcfd7gt79vd6516u64aplasdodqoouejbgovhge2le5jb6rje923fcrllhtu01t29cdrssgbg structural type builtin.Pretty txt - 603. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8 + 612. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8 type builtin.Pretty.Annotated w txt - 604. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#1 + 613. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#1 builtin.Pretty.Annotated.Append : w -> [Annotated w txt] -> Annotated w txt - 605. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#6 + 614. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#6 builtin.Pretty.Annotated.Empty : Annotated w txt - 606. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#4 + 615. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#4 builtin.Pretty.Annotated.Group : w -> Annotated w txt -> Annotated w txt - 607. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#3 + 616. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#3 builtin.Pretty.Annotated.Indent : w -> Annotated w txt -> Annotated w txt -> Annotated w txt -> Annotated w txt - 608. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#7 + 617. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#7 builtin.Pretty.Annotated.Lit : w -> txt -> Annotated w txt - 609. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#2 + 618. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#2 builtin.Pretty.Annotated.OrElse : w -> Annotated w txt -> Annotated w txt -> Annotated w txt - 610. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#0 + 619. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#0 builtin.Pretty.Annotated.Table : w -> [[Annotated w txt]] -> Annotated w txt - 611. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#5 + 620. -- #fqfaur9v9v4fks5d0c74ouitpjp121c3fbu2l9t05km8otjcj43gk453vu668pg54rte6qmh4v3uao6vbfpntrtaq057jgni1jk8fj8#5 builtin.Pretty.Annotated.Wrap : w -> Annotated w txt -> Annotated w txt - 612. -- #loh4epguhqj73ut43b287p1272ko7ackkr544k9scurlsf6m6smpifp5ghdcscvqdofpf79req1pl4e7qni0hvo4m0gsi3f1jhn9nvo + 621. -- #loh4epguhqj73ut43b287p1272ko7ackkr544k9scurlsf6m6smpifp5ghdcscvqdofpf79req1pl4e7qni0hvo4m0gsi3f1jhn9nvo builtin.Pretty.append : Pretty txt -> Pretty txt -> Pretty txt - 613. -- #sonptakf85a3uklev4rq0pub00k56jdpaop4tcd9bmk0gmjjij5t16sf1knspku2hbp0uikiflbo0dtjv1i6r3t2rpjh86vo1rlaer8 + 622. -- #sonptakf85a3uklev4rq0pub00k56jdpaop4tcd9bmk0gmjjij5t16sf1knspku2hbp0uikiflbo0dtjv1i6r3t2rpjh86vo1rlaer8 builtin.Pretty.empty : Pretty txt - 614. -- #mlpplm1bhqkcif5j09204uuvfll7qte95msb0skjfd30nmei005kiich1ao39gm2j8687s14qvf5llu6i1a6fvt4vdmbp99jlfundfo + 623. -- #mlpplm1bhqkcif5j09204uuvfll7qte95msb0skjfd30nmei005kiich1ao39gm2j8687s14qvf5llu6i1a6fvt4vdmbp99jlfundfo builtin.Pretty.get : Pretty txt -> Annotated () txt - 615. -- #303bqopo0ditms2abmf35ikbgbb7gkcmqcd5g5eie85lvvmkpd89mi8v0etgm2508bejlgj9e7ffvpufj3v94mlks3ugvr3sjkbttq0 + 624. -- #303bqopo0ditms2abmf35ikbgbb7gkcmqcd5g5eie85lvvmkpd89mi8v0etgm2508bejlgj9e7ffvpufj3v94mlks3ugvr3sjkbttq0 builtin.Pretty.group : Pretty txt -> Pretty txt - 616. -- #o5dik2fg10998uep20m3du4iqqjbtap0apq4452g9emve8g3m655392u97iunphh90opvg92riaabbjsofc02bhr0qkcousvqgg2a78 + 625. -- #o5dik2fg10998uep20m3du4iqqjbtap0apq4452g9emve8g3m655392u97iunphh90opvg92riaabbjsofc02bhr0qkcousvqgg2a78 builtin.Pretty.indent : Pretty txt -> Pretty txt -> Pretty txt - 617. -- #evbq94p3dn4l8ugge1o2f8dk072gcfho082lm7j02ejjsnctb5inkfsasuplmu8a529jh4v0h6v8ti7koff23e58cceda0nlh98m530 + 626. -- #evbq94p3dn4l8ugge1o2f8dk072gcfho082lm7j02ejjsnctb5inkfsasuplmu8a529jh4v0h6v8ti7koff23e58cceda0nlh98m530 builtin.Pretty.indent' : Pretty txt -> Pretty txt -> Pretty txt -> Pretty txt - 618. -- #u5s76jh01asd7hbqaq466dp48v217o7tclphuk7gepc99vbv0fbfv5j2uq8o3n7lsvpiri5925o02j22a6tq7koc9t8tbcps4naetbg + 627. -- #u5s76jh01asd7hbqaq466dp48v217o7tclphuk7gepc99vbv0fbfv5j2uq8o3n7lsvpiri5925o02j22a6tq7koc9t8tbcps4naetbg builtin.Pretty.join : [Pretty txt] -> Pretty txt - 619. -- #uoti2ppnfp1l11obl8tto1m2h4r6n1i14cc3i45bjpjrhogh52cuoch1n6b1q0n3jf6blr9585stb1i155jjq17b4c2hvd4d3abmrpo + 628. -- #uoti2ppnfp1l11obl8tto1m2h4r6n1i14cc3i45bjpjrhogh52cuoch1n6b1q0n3jf6blr9585stb1i155jjq17b4c2hvd4d3abmrpo builtin.Pretty.lit : txt -> Pretty txt - 620. -- #mabh3q4gsoiao223a03t7voj937b3sefb7e1j5r33su5o5tqrkmenl2aeboq909vs3bh2snltuqrfcsd3liic1vma0f976h1eo63upg + 629. -- #mabh3q4gsoiao223a03t7voj937b3sefb7e1j5r33su5o5tqrkmenl2aeboq909vs3bh2snltuqrfcsd3liic1vma0f976h1eo63upg builtin.Pretty.map : (txt ->{g} txt2) -> Pretty txt ->{g} Pretty txt2 - 621. -- #i260pi6le5cdptpo78mbbi4r6qfc76kvb1g9r9d210b1altjtmoqi8b6psu3ag5hb8gq7crhgei406arn999c1dfrqt67j8vnls4gg8 + 630. -- #i260pi6le5cdptpo78mbbi4r6qfc76kvb1g9r9d210b1altjtmoqi8b6psu3ag5hb8gq7crhgei406arn999c1dfrqt67j8vnls4gg8 builtin.Pretty.orElse : Pretty txt -> Pretty txt -> Pretty txt - 622. -- #cbo8de57n17pgc5iic1741jeiunhvhfcfd7gt79vd6516u64aplasdodqoouejbgovhge2le5jb6rje923fcrllhtu01t29cdrssgbg#0 + 631. -- #cbo8de57n17pgc5iic1741jeiunhvhfcfd7gt79vd6516u64aplasdodqoouejbgovhge2le5jb6rje923fcrllhtu01t29cdrssgbg#0 builtin.Pretty.Pretty : Annotated () txt -> Pretty txt - 623. -- #bvuv0d49kosa6op5j54ln2h3vbs3209e4fjtb3kehvn76p92l8682qnp2r5e9t7sflnv3dfb0uf9p0f76qbobn562oqdusi9mo3ubjo + 632. -- #bvuv0d49kosa6op5j54ln2h3vbs3209e4fjtb3kehvn76p92l8682qnp2r5e9t7sflnv3dfb0uf9p0f76qbobn562oqdusi9mo3ubjo builtin.Pretty.sepBy : Pretty txt -> [Pretty txt] -> Pretty txt - 624. -- #rm3moq6nqvk1rs49lsshdtheqo72qv2fg1fqkk5m8tbqppik498otkrq6ppu7fu9p1kddldmpv0dig7bn82n0tj0ngnbu83fpb11upg + 633. -- #rm3moq6nqvk1rs49lsshdtheqo72qv2fg1fqkk5m8tbqppik498otkrq6ppu7fu9p1kddldmpv0dig7bn82n0tj0ngnbu83fpb11upg builtin.Pretty.table : [[Pretty txt]] -> Pretty txt - 625. -- #n01tnlfatb0lo6s762cfofhtdavui9j8ovljacdbn9bvrfoeimd0pkner0694d3lb1f4qa5gur4975lvopftk7jkrflmhjv6gbsifbo + 634. -- #n01tnlfatb0lo6s762cfofhtdavui9j8ovljacdbn9bvrfoeimd0pkner0694d3lb1f4qa5gur4975lvopftk7jkrflmhjv6gbsifbo builtin.Pretty.wrap : Pretty txt -> Pretty txt - 626. -- ##Ref + 635. -- ##Ref builtin type builtin.Ref - 627. -- ##Ref.read + 636. -- ##Ref.read builtin.Ref.read : Ref g a ->{g} a - 628. -- ##Ref.write + 637. -- ##Ref.write builtin.Ref.write : Ref g a -> a ->{g} () - 629. -- ##Effect + 638. -- ##Effect builtin type builtin.Request - 630. -- #bga77hj5p43epjosu36iero5ulpm7hqrct1slj5ivdcajsr52ksjam8d5smq2965netv9t43o3g0amgva26qoatt4qth29khkuds2t0 + 639. -- #bga77hj5p43epjosu36iero5ulpm7hqrct1slj5ivdcajsr52ksjam8d5smq2965netv9t43o3g0amgva26qoatt4qth29khkuds2t0 type builtin.RewriteCase a b - 631. -- #bga77hj5p43epjosu36iero5ulpm7hqrct1slj5ivdcajsr52ksjam8d5smq2965netv9t43o3g0amgva26qoatt4qth29khkuds2t0#0 + 640. -- #bga77hj5p43epjosu36iero5ulpm7hqrct1slj5ivdcajsr52ksjam8d5smq2965netv9t43o3g0amgva26qoatt4qth29khkuds2t0#0 builtin.RewriteCase.RewriteCase : a -> b -> RewriteCase a b - 632. -- #qcot4bpj2skgnui8hoignn6fl2gnn2nfrur451ft2egd5n1ndu6ti4uu7r1mvtc8r4p7iielfijk2mb7md9tt2m2rdvaikah4oluf7o + 641. -- #qcot4bpj2skgnui8hoignn6fl2gnn2nfrur451ft2egd5n1ndu6ti4uu7r1mvtc8r4p7iielfijk2mb7md9tt2m2rdvaikah4oluf7o type builtin.Rewrites a - 633. -- #qcot4bpj2skgnui8hoignn6fl2gnn2nfrur451ft2egd5n1ndu6ti4uu7r1mvtc8r4p7iielfijk2mb7md9tt2m2rdvaikah4oluf7o#0 + 642. -- #qcot4bpj2skgnui8hoignn6fl2gnn2nfrur451ft2egd5n1ndu6ti4uu7r1mvtc8r4p7iielfijk2mb7md9tt2m2rdvaikah4oluf7o#0 builtin.Rewrites.Rewrites : a -> Rewrites a - 634. -- #nu6eab37fl81lb5hfcainu83hph0ksqjsjgjbqvc3t8o13djtt5511qfa6tuggc5c3re06c5p6eto5o2cqme0jdlo31nnd13npqigjo + 643. -- #nu6eab37fl81lb5hfcainu83hph0ksqjsjgjbqvc3t8o13djtt5511qfa6tuggc5c3re06c5p6eto5o2cqme0jdlo31nnd13npqigjo type builtin.RewriteSignature a b - 635. -- #nu6eab37fl81lb5hfcainu83hph0ksqjsjgjbqvc3t8o13djtt5511qfa6tuggc5c3re06c5p6eto5o2cqme0jdlo31nnd13npqigjo#0 + 644. -- #nu6eab37fl81lb5hfcainu83hph0ksqjsjgjbqvc3t8o13djtt5511qfa6tuggc5c3re06c5p6eto5o2cqme0jdlo31nnd13npqigjo#0 builtin.RewriteSignature.RewriteSignature : (a -> b -> ()) -> RewriteSignature a b - 636. -- #bvffhraos4oatd3qmedt676dqul9c1oj8r4cqns36lsrue84kl0ote15iqbbmgu8joek3gce1h2raqas5b9nnvs2d79l9mrpmmi2sf0 + 645. -- #bvffhraos4oatd3qmedt676dqul9c1oj8r4cqns36lsrue84kl0ote15iqbbmgu8joek3gce1h2raqas5b9nnvs2d79l9mrpmmi2sf0 type builtin.RewriteTerm a b - 637. -- #bvffhraos4oatd3qmedt676dqul9c1oj8r4cqns36lsrue84kl0ote15iqbbmgu8joek3gce1h2raqas5b9nnvs2d79l9mrpmmi2sf0#0 + 646. -- #bvffhraos4oatd3qmedt676dqul9c1oj8r4cqns36lsrue84kl0ote15iqbbmgu8joek3gce1h2raqas5b9nnvs2d79l9mrpmmi2sf0#0 builtin.RewriteTerm.RewriteTerm : a -> b -> RewriteTerm a b - 638. -- ##Scope + 647. -- ##Scope builtin type builtin.Scope - 639. -- ##Scope.array + 648. -- ##Scope.array builtin.Scope.array : Nat ->{Scope s} MutableArray (Scope s) a - 640. -- ##Scope.arrayOf + 649. -- ##Scope.arrayOf builtin.Scope.arrayOf : a -> Nat ->{Scope s} MutableArray (Scope s) a - 641. -- ##Scope.bytearray + 650. -- ##Scope.bytearray builtin.Scope.bytearray : Nat ->{Scope s} MutableByteArray (Scope s) - 642. -- ##Scope.bytearrayOf + 651. -- ##Scope.bytearrayOf builtin.Scope.bytearrayOf : Nat -> Nat ->{Scope s} MutableByteArray (Scope s) - 643. -- ##Scope.ref + 652. -- ##Scope.ref builtin.Scope.ref : a ->{Scope s} Ref {Scope s} a - 644. -- ##Scope.run + 653. -- ##Scope.run builtin.Scope.run : (∀ s. '{g, Scope s} r) ->{g} r - 645. -- #6uigas14aqgd889s036hq9ssrlo22pju41009m0rktetcrbm97qniljjc1rv1u661r4f63oq6pupoevghs8a2hupvlbi6qi4ntn9320 + 654. -- #6uigas14aqgd889s036hq9ssrlo22pju41009m0rktetcrbm97qniljjc1rv1u661r4f63oq6pupoevghs8a2hupvlbi6qi4ntn9320 structural type builtin.SeqView a b - 646. -- #6uigas14aqgd889s036hq9ssrlo22pju41009m0rktetcrbm97qniljjc1rv1u661r4f63oq6pupoevghs8a2hupvlbi6qi4ntn9320#0 + 655. -- #6uigas14aqgd889s036hq9ssrlo22pju41009m0rktetcrbm97qniljjc1rv1u661r4f63oq6pupoevghs8a2hupvlbi6qi4ntn9320#0 builtin.SeqView.VElem : a -> b -> SeqView a b - 647. -- #6uigas14aqgd889s036hq9ssrlo22pju41009m0rktetcrbm97qniljjc1rv1u661r4f63oq6pupoevghs8a2hupvlbi6qi4ntn9320#1 + 656. -- #6uigas14aqgd889s036hq9ssrlo22pju41009m0rktetcrbm97qniljjc1rv1u661r4f63oq6pupoevghs8a2hupvlbi6qi4ntn9320#1 builtin.SeqView.VEmpty : SeqView a b - 648. -- #prrhin67cemaummdiu0c35cj17g8m7t96qne5i8vfj9m6ur338250jukj6q33ob0llgl9vvgc50rfgiiu7u0nvg5fvajkpqa0amjct0 + 657. -- #prrhin67cemaummdiu0c35cj17g8m7t96qne5i8vfj9m6ur338250jukj6q33ob0llgl9vvgc50rfgiiu7u0nvg5fvajkpqa0amjct0 structural type builtin.Set a - 649. -- #prrhin67cemaummdiu0c35cj17g8m7t96qne5i8vfj9m6ur338250jukj6q33ob0llgl9vvgc50rfgiiu7u0nvg5fvajkpqa0amjct0#0 + 658. -- #prrhin67cemaummdiu0c35cj17g8m7t96qne5i8vfj9m6ur338250jukj6q33ob0llgl9vvgc50rfgiiu7u0nvg5fvajkpqa0amjct0#0 builtin.Set.Set : Map a () -> Set a - 650. -- ##Socket.toText + 659. -- ##Socket.toText builtin.Socket.toText : Socket -> Text - 651. -- #pfp0ajb4v2mb9tspp29v53dkacb76aa1t5kbk1dl0q354cjcg4egdpmvtr5d6t818ucon9eubf6r1vdvh926fgk8otvbkvbpn90levo + 660. -- #pfp0ajb4v2mb9tspp29v53dkacb76aa1t5kbk1dl0q354cjcg4egdpmvtr5d6t818ucon9eubf6r1vdvh926fgk8otvbkvbpn90levo builtin.syntax.docAside : Doc2 -> Doc2 - 652. -- #mvov9qf78ctohefjbmrgs8ussspo5juhf75pee4ikkg8asuos72unn4pjn3fdel8471soj2vaskd5ls103pb6nb8qf75sjn4igs7v48 + 661. -- #mvov9qf78ctohefjbmrgs8ussspo5juhf75pee4ikkg8asuos72unn4pjn3fdel8471soj2vaskd5ls103pb6nb8qf75sjn4igs7v48 builtin.syntax.docBlockquote : Doc2 -> Doc2 - 653. -- #cg64hg7dag89u80104kit2p40rhmo1k6h1j8obfhjolpogs705bt6hc92ct6rfj8h74m3ioug14u9pm1s7qqpmjda2srjojhi01nvf0 + 662. -- #cg64hg7dag89u80104kit2p40rhmo1k6h1j8obfhjolpogs705bt6hc92ct6rfj8h74m3ioug14u9pm1s7qqpmjda2srjojhi01nvf0 builtin.syntax.docBold : Doc2 -> Doc2 - 654. -- #3qd5kt9gjiggrb871al82n11jccedl3kb5p8ffemr703frn38tqajkett30fg7hef5orh7vl0obp3lap9qq2po3ufcnu4k3bik81rlg + 663. -- #3qd5kt9gjiggrb871al82n11jccedl3kb5p8ffemr703frn38tqajkett30fg7hef5orh7vl0obp3lap9qq2po3ufcnu4k3bik81rlg builtin.syntax.docBulletedList : [Doc2] -> Doc2 - 655. -- #el0rph43k5qg25qg20o5jdjukuful041r87v92tcb2339om0hp9u6vqtrcrfkvgj78hrpo2o1l39bbg1oier87pvgkli0lkgalgpo90 + 664. -- #el0rph43k5qg25qg20o5jdjukuful041r87v92tcb2339om0hp9u6vqtrcrfkvgj78hrpo2o1l39bbg1oier87pvgkli0lkgalgpo90 builtin.syntax.docCallout : Optional Doc2 -> Doc2 -> Doc2 - 656. -- #7jij106qpusbsbpqhmtgrk59qo8ss9e77rtrc1h9hbpnbab8sq717fe6hppmhhds9smqbv3k2q0irjgoe4mogatlp9e4k25kopt6rgo + 665. -- #7jij106qpusbsbpqhmtgrk59qo8ss9e77rtrc1h9hbpnbab8sq717fe6hppmhhds9smqbv3k2q0irjgoe4mogatlp9e4k25kopt6rgo builtin.syntax.docCode : Doc2 -> Doc2 - 657. -- #3paq4qqrk028tati33723c4aqi7ebgnjln12avbnf7eu8h8sflg0frlehb4lni4ru0pcfg9ftsurq3pb2q11cfebeki51vom697l7h0 + 666. -- #3paq4qqrk028tati33723c4aqi7ebgnjln12avbnf7eu8h8sflg0frlehb4lni4ru0pcfg9ftsurq3pb2q11cfebeki51vom697l7h0 builtin.syntax.docCodeBlock : Text -> Text -> Doc2 - 658. -- #1of955s8tqa74vu0ve863p8dn2mncc2anmms54aj084pkbdcpml6ckvs0qb4defi0df3b1e8inp29p60ac93hf2u7to0je4op9fum40 + 667. -- #1of955s8tqa74vu0ve863p8dn2mncc2anmms54aj084pkbdcpml6ckvs0qb4defi0df3b1e8inp29p60ac93hf2u7to0je4op9fum40 builtin.syntax.docColumn : [Doc2] -> Doc2 - 659. -- #ukv56cjchfao07qb08l7iimd2mmv09s5glmtljo5b71leaijtja04obd0u1hsr38itjnv85f7jvd37nr654bl4lfn4msr1one0hi4s0 + 668. -- #ukv56cjchfao07qb08l7iimd2mmv09s5glmtljo5b71leaijtja04obd0u1hsr38itjnv85f7jvd37nr654bl4lfn4msr1one0hi4s0 builtin.syntax.docEmbedAnnotation : tm -> Doc2.Term - 660. -- #uccvv8mn62ne8iqppsnpgbquqmhk4hk3n4tg7p6kttr20gov4698tu18jmmvdcs7ab455q7kklhb4uv1mtei4vbvq4qmbtbu1dbagmg + 669. -- #uccvv8mn62ne8iqppsnpgbquqmhk4hk3n4tg7p6kttr20gov4698tu18jmmvdcs7ab455q7kklhb4uv1mtei4vbvq4qmbtbu1dbagmg builtin.syntax.docEmbedAnnotations : tms -> tms - 661. -- #3r6c432d46j544g26chbfgfqrr79k7disfn41igdpe0thjar30lrjhqsuhipsr9rvg8jk6rpmnalc5iu8j842sq3svu1bo4c02og7to + 670. -- #3r6c432d46j544g26chbfgfqrr79k7disfn41igdpe0thjar30lrjhqsuhipsr9rvg8jk6rpmnalc5iu8j842sq3svu1bo4c02og7to builtin.syntax.docEmbedSignatureLink : '{g} t -> Doc2.Term - 662. -- #pjtf55viib2vgc4hp60e2bui7r8iij7kan0u6uq6d60d6d6ccpq81f9ngcrou2lob9maqsvcqsa85ev4171iml9elg5hbfaopijo6lo + 671. -- #pjtf55viib2vgc4hp60e2bui7r8iij7kan0u6uq6d60d6d6ccpq81f9ngcrou2lob9maqsvcqsa85ev4171iml9elg5hbfaopijo6lo builtin.syntax.docEmbedTermLink : '{g} t -> Either a Doc2.Term - 663. -- #7t98ois54isfkh31uefvdg4bg302s5q3sun4hfh0mqnosk4ded353jp0p2ij6b22vnvlcbipcv2jb91suh6qc33i7uqlfuto9f0r4n8 + 672. -- #7t98ois54isfkh31uefvdg4bg302s5q3sun4hfh0mqnosk4ded353jp0p2ij6b22vnvlcbipcv2jb91suh6qc33i7uqlfuto9f0r4n8 builtin.syntax.docEmbedTypeLink : typ -> Either typ b - 664. -- #ngon71rp4i6a3qd36pu015kk7d7il2i1491upfgernpm635hkjhcrm84oumfe6tvn193nb1lsrkulvvnmq5os0evm6sndlarquhe3i0 + 673. -- #ngon71rp4i6a3qd36pu015kk7d7il2i1491upfgernpm635hkjhcrm84oumfe6tvn193nb1lsrkulvvnmq5os0evm6sndlarquhe3i0 builtin.syntax.docEval : 'a -> Doc2 - 665. -- #hsmpfd41n9m02atorpvnj2gf7lcf04o51nrc8kohfddgq4vo18unk2c1ci8pfsam9f4i02babsu7urhvcek8fbfrilcusrgnaifp278 + 674. -- #hsmpfd41n9m02atorpvnj2gf7lcf04o51nrc8kohfddgq4vo18unk2c1ci8pfsam9f4i02babsu7urhvcek8fbfrilcusrgnaifp278 builtin.syntax.docEvalInline : 'a -> Doc2 - 666. -- #73m68mnahgud6dl9red3rcmd49qn80d0ptr2m1h163e1jr1fitibr2hf84o62cqs7dsqiuea578ge7en7kk290k6778lgo39btl5468 + 675. -- #73m68mnahgud6dl9red3rcmd49qn80d0ptr2m1h163e1jr1fitibr2hf84o62cqs7dsqiuea578ge7en7kk290k6778lgo39btl5468 builtin.syntax.docExample : Nat -> '{g} t -> Doc2 - 667. -- #62nif2cvq90cnds9eo95hdn6uvgqo6np4eku52ar4pnb18sfdetl9oo6cu99hbksfa0b4krlcvse5gr5uv5k5b0ukuovt75krhlp418 + 676. -- #62nif2cvq90cnds9eo95hdn6uvgqo6np4eku52ar4pnb18sfdetl9oo6cu99hbksfa0b4krlcvse5gr5uv5k5b0ukuovt75krhlp418 builtin.syntax.docExampleBlock : Nat -> '{g} t -> Doc2 - 668. -- #pomj7lft70jnnuk5job0pstih2mosva1oee4tediqbkhnm54tjqnfe6qs1mqt8os1ehg9ksgenb6veub2ngdpb1qat400vn0bj3fju0 + 677. -- #pomj7lft70jnnuk5job0pstih2mosva1oee4tediqbkhnm54tjqnfe6qs1mqt8os1ehg9ksgenb6veub2ngdpb1qat400vn0bj3fju0 builtin.syntax.docFoldedSource : [( Either Type Doc2.Term, [Doc2.Term])] -> Doc2 - 669. -- #dg44n9t54o1jkl3dtecsqh9vvs57jsvtvbfohkrtolqqgf2g7mf5el9i5jhg6qop1arms99c7s34d9h5rnrvf1fi4100lerjg3b38q8 + 678. -- #dg44n9t54o1jkl3dtecsqh9vvs57jsvtvbfohkrtolqqgf2g7mf5el9i5jhg6qop1arms99c7s34d9h5rnrvf1fi4100lerjg3b38q8 builtin.syntax.docFormatConsole : Doc2 -> Pretty (Either SpecialForm ConsoleText) - 670. -- #99qvifgs3u7nof50jbp5lhrf8cab0qiujr1tque2b7hfj56r39o8ot2fafhafuphoraddl1j142k994e22g5v2rhq98flc0954t5918 + 679. -- #99qvifgs3u7nof50jbp5lhrf8cab0qiujr1tque2b7hfj56r39o8ot2fafhafuphoraddl1j142k994e22g5v2rhq98flc0954t5918 builtin.syntax.docGroup : Doc2 -> Doc2 - 671. -- #gsratvk7mo273bqhivdv06f9rog2cj48u7ci0jp6ubt5oidf8cq0rjilimkas5801inbbsjcedh61jl40i3en1qu6r9vfe684ad6r08 + 680. -- #gsratvk7mo273bqhivdv06f9rog2cj48u7ci0jp6ubt5oidf8cq0rjilimkas5801inbbsjcedh61jl40i3en1qu6r9vfe684ad6r08 builtin.syntax.docItalic : Doc2 -> Doc2 - 672. -- #piohhscvm6lgpk6vfg91u2ndmlfv81nnkspihom77ucr4dev6s22rk2n9hp38nifh5p8vt7jfvep85vudpvlg2tt99e9s2qfjv5oau8 + 681. -- #piohhscvm6lgpk6vfg91u2ndmlfv81nnkspihom77ucr4dev6s22rk2n9hp38nifh5p8vt7jfvep85vudpvlg2tt99e9s2qfjv5oau8 builtin.syntax.docJoin : [Doc2] -> Doc2 - 673. -- #hjdqcolihf4obmnfoakl2t5hs1e39hpmpo9ijvc37fqgejog1ii7fpd4q2fe2rkm62tf81unmqlbud8uh63vaa9feaekg5a7uo3nq00 + 682. -- #hjdqcolihf4obmnfoakl2t5hs1e39hpmpo9ijvc37fqgejog1ii7fpd4q2fe2rkm62tf81unmqlbud8uh63vaa9feaekg5a7uo3nq00 builtin.syntax.docLink : Either Type Doc2.Term -> Doc2 - 674. -- #iv6urr76b0ohvr22qa6d05e7e01cd0re77g8c98cm0bqo0im345fotsevqnhk1igtutkrrqm562gtltofvku5mh0i87ru8tdf0i53bo + 683. -- #iv6urr76b0ohvr22qa6d05e7e01cd0re77g8c98cm0bqo0im345fotsevqnhk1igtutkrrqm562gtltofvku5mh0i87ru8tdf0i53bo builtin.syntax.docNamedLink : Doc2 -> Doc2 -> Doc2 - 675. -- #b5dvn0bqj3rc1rkmlep5f6cd6n3vp247hqku8lqndena5ocgcoae18iuq3985finagr919re4fvji011ved0g21i6o0je2jn8f7k1p0 + 684. -- #b5dvn0bqj3rc1rkmlep5f6cd6n3vp247hqku8lqndena5ocgcoae18iuq3985finagr919re4fvji011ved0g21i6o0je2jn8f7k1p0 builtin.syntax.docNumberedList : Nat -> [Doc2] -> Doc2 - 676. -- #fs8mho20fqj31ch5kpn8flm4geomotov7fb5ct8mtnh52ladorgp22vder3jgt1mr0u710e6s9gn4u36c9sp19vitvq1r0adtm3t1c0 + 685. -- #fs8mho20fqj31ch5kpn8flm4geomotov7fb5ct8mtnh52ladorgp22vder3jgt1mr0u710e6s9gn4u36c9sp19vitvq1r0adtm3t1c0 builtin.syntax.docParagraph : [Doc2] -> Doc2 - 677. -- #6dvkai3hc122e2h2h8c3jnijink5m20e27i640qvnt6smefpp2vna1rq4gbmulhb46tdabmkb5hsjeiuo4adtsutg4iu1vfmqhlueso + 686. -- #6dvkai3hc122e2h2h8c3jnijink5m20e27i640qvnt6smefpp2vna1rq4gbmulhb46tdabmkb5hsjeiuo4adtsutg4iu1vfmqhlueso builtin.syntax.docSection : Doc2 -> [Doc2] -> Doc2 - 678. -- #n0idf1bdrq5vgpk4pj9db5demk1es4jsnpodfoajftehvqjelsi0h5j2domdllq2peltdek4ptaqfpl4o8l6jpmqhcom9vq107ivdu0 + 687. -- #n0idf1bdrq5vgpk4pj9db5demk1es4jsnpodfoajftehvqjelsi0h5j2domdllq2peltdek4ptaqfpl4o8l6jpmqhcom9vq107ivdu0 builtin.syntax.docSignature : [Doc2.Term] -> Doc2 - 679. -- #git1povkck9jrptdmmpqrv1g17ptbq9hr17l52l8477ijk4cia24tr7cj36v1o22mvtk00qoo5jt4bs4e79sl3eh6is8ubh8aoc1pu0 + 688. -- #git1povkck9jrptdmmpqrv1g17ptbq9hr17l52l8477ijk4cia24tr7cj36v1o22mvtk00qoo5jt4bs4e79sl3eh6is8ubh8aoc1pu0 builtin.syntax.docSignatureInline : Doc2.Term -> Doc2 - 680. -- #47agivvofl1jegbqpdg0eeed72mdj29d623e4kdei0l10mhgckif7q2pd968ggribregcknra9u43mhehr1q86n0t4vbe4eestnu9l8 + 689. -- #47agivvofl1jegbqpdg0eeed72mdj29d623e4kdei0l10mhgckif7q2pd968ggribregcknra9u43mhehr1q86n0t4vbe4eestnu9l8 builtin.syntax.docSource : [( Either Type Doc2.Term, [Doc2.Term])] -> Doc2 - 681. -- #n6uk5tc4d8ipbga8boelh51ro24paveca9fijm1nkn3tlfddqludmlppb2ps8807v2kuou1a262sa59764mdhug2va69q4sls5jli10 + 690. -- #n6uk5tc4d8ipbga8boelh51ro24paveca9fijm1nkn3tlfddqludmlppb2ps8807v2kuou1a262sa59764mdhug2va69q4sls5jli10 builtin.syntax.docSourceElement : link -> annotations -> (link, annotations) - 682. -- #nurq288b5rfp1f5keccleh51ojgcpd2rp7cane6ftquf7gidtamffb8tr1r5h6luk1nsrqomn1k4as4kcpaskjjv35rnvoous457sag + 691. -- #nurq288b5rfp1f5keccleh51ojgcpd2rp7cane6ftquf7gidtamffb8tr1r5h6luk1nsrqomn1k4as4kcpaskjjv35rnvoous457sag builtin.syntax.docStrikethrough : Doc2 -> Doc2 - 683. -- #4ns2amu2njhvb5mtdvh3v7oljjb5ammnb41us4ekpbhb337b6mo2a4q0790cmrusko7omphtfdsaust2fn49hr5acl40ef8fkb9556g + 692. -- #4ns2amu2njhvb5mtdvh3v7oljjb5ammnb41us4ekpbhb337b6mo2a4q0790cmrusko7omphtfdsaust2fn49hr5acl40ef8fkb9556g builtin.syntax.docTable : [[Doc2]] -> Doc2 - 684. -- #i77kddfr68gbjt3767a091dtnqff9beltojh93md8peo28t59c6modeccsfd2tnrtmd75fa7dn0ie21kcv4me098q91h4ftg9eau5fo + 693. -- #i77kddfr68gbjt3767a091dtnqff9beltojh93md8peo28t59c6modeccsfd2tnrtmd75fa7dn0ie21kcv4me098q91h4ftg9eau5fo builtin.syntax.docTooltip : Doc2 -> Doc2 -> Doc2 - 685. -- #r0hdacbk2orcb2ate3uhd7ht05hmfa8643slm3u63nb3jaaim533up04lgt0pq97is43v2spkqble7mtu8f63hgcc0k2tb2jhpr2b68 + 694. -- #r0hdacbk2orcb2ate3uhd7ht05hmfa8643slm3u63nb3jaaim533up04lgt0pq97is43v2spkqble7mtu8f63hgcc0k2tb2jhpr2b68 builtin.syntax.docTransclude : d -> d - 686. -- #0nptdh40ngakd2rh92bl573a7vbdjcj2kc8rai39v8bb9dfpbj90i7nob381usjsott41c3cpo2m2q095fm0k0r68e8mrda135qa1k0 + 695. -- #0nptdh40ngakd2rh92bl573a7vbdjcj2kc8rai39v8bb9dfpbj90i7nob381usjsott41c3cpo2m2q095fm0k0r68e8mrda135qa1k0 builtin.syntax.docUntitledSection : [Doc2] -> Doc2 - 687. -- #krjm78blt08v52c52l4ubsnfidcrs0h6010j2v2h9ud38mgm6jj4vuqn4okp4g75039o7u78sbg6ghforucbfdf94f8am9kvt6875jo + 696. -- #krjm78blt08v52c52l4ubsnfidcrs0h6010j2v2h9ud38mgm6jj4vuqn4okp4g75039o7u78sbg6ghforucbfdf94f8am9kvt6875jo builtin.syntax.docVerbatim : Doc2 -> Doc2 - 688. -- #c14vgd4g1tkumf4jjd9vcoos1olb3f4gbc3hketf5l8h3i0efk8igbinh6gn018tr5075uo5nv1elva6tki6ofo3pdafidrkv9m0ot0 + 697. -- #c14vgd4g1tkumf4jjd9vcoos1olb3f4gbc3hketf5l8h3i0efk8igbinh6gn018tr5075uo5nv1elva6tki6ofo3pdafidrkv9m0ot0 builtin.syntax.docWord : Text -> Doc2 - 689. -- #aql7qk3iud6vs4cvu43aimopoosgk0fnipibdkc3so13adencmibgfn0u5c01r0adei55nkl3ttsjhl8gbj7tr4gnpj63g64ftbq6s0 + 698. -- #aql7qk3iud6vs4cvu43aimopoosgk0fnipibdkc3so13adencmibgfn0u5c01r0adei55nkl3ttsjhl8gbj7tr4gnpj63g64ftbq6s0 type builtin.Test.Result - 690. -- #aql7qk3iud6vs4cvu43aimopoosgk0fnipibdkc3so13adencmibgfn0u5c01r0adei55nkl3ttsjhl8gbj7tr4gnpj63g64ftbq6s0#0 + 699. -- #aql7qk3iud6vs4cvu43aimopoosgk0fnipibdkc3so13adencmibgfn0u5c01r0adei55nkl3ttsjhl8gbj7tr4gnpj63g64ftbq6s0#0 builtin.Test.Result.Fail : Text -> Result - 691. -- #aql7qk3iud6vs4cvu43aimopoosgk0fnipibdkc3so13adencmibgfn0u5c01r0adei55nkl3ttsjhl8gbj7tr4gnpj63g64ftbq6s0#1 + 700. -- #aql7qk3iud6vs4cvu43aimopoosgk0fnipibdkc3so13adencmibgfn0u5c01r0adei55nkl3ttsjhl8gbj7tr4gnpj63g64ftbq6s0#1 builtin.Test.Result.Ok : Text -> Result - 692. -- ##Text + 701. -- ##Text builtin type builtin.Text - 693. -- ##Text.!= + 702. -- ##Text.!= builtin.Text.!= : Text -> Text -> Boolean - 694. -- ##Text.++ + 703. -- ##Text.++ builtin.Text.++ : Text -> Text -> Text - 695. -- #nv11qo7s2lqirk3qb44jkm3q3fb6i3mn72ji2c52eubh3kufrdumanblh2bnql1o24efdhmue0v21gd7d1p5ec9j6iqrmekas0183do + 704. -- #nv11qo7s2lqirk3qb44jkm3q3fb6i3mn72ji2c52eubh3kufrdumanblh2bnql1o24efdhmue0v21gd7d1p5ec9j6iqrmekas0183do builtin.Text.alignLeftWith : Nat -> Char -> Text -> Text - 696. -- #ebeq250fdoigvu89fneb4c24f8f18eotc8kocdmosn4ri9shoeeg7ofkejts6clm5c6bifce66qtr0vpfkrhuup2en3khous41hp8rg + 705. -- #ebeq250fdoigvu89fneb4c24f8f18eotc8kocdmosn4ri9shoeeg7ofkejts6clm5c6bifce66qtr0vpfkrhuup2en3khous41hp8rg builtin.Text.alignRightWith : Nat -> Char -> Text -> Text - 697. -- ##Text.drop + 706. -- ##Text.drop builtin.Text.drop : Nat -> Text -> Text - 698. -- ##Text.empty + 707. -- ##Text.empty builtin.Text.empty : Text - 699. -- ##Text.== + 708. -- ##Text.== builtin.Text.eq : Text -> Text -> Boolean - 700. -- ##Text.fromCharList + 709. -- ##Text.fromCharList builtin.Text.fromCharList : [Char] -> Text - 701. -- ##Text.fromUtf8.impl.v3 + 710. -- ##Text.fromUtf8.impl.v3 builtin.Text.fromUtf8.impl : Bytes -> Either Failure Text - 702. -- ##Text.> + 711. -- ##Text.> builtin.Text.gt : Text -> Text -> Boolean - 703. -- ##Text.>= + 712. -- ##Text.>= builtin.Text.gteq : Text -> Text -> Boolean - 704. -- ##Text.indexOf + 713. -- ##Text.indexOf builtin.Text.indexOf : Text -> Text -> Optional Nat - 705. -- ##Text.< + 714. -- ##Text.< builtin.Text.lt : Text -> Text -> Boolean - 706. -- ##Text.<= + 715. -- ##Text.<= builtin.Text.lteq : Text -> Text -> Boolean - 707. -- ##Text.patterns.anyChar + 716. -- ##Text.patterns.anyChar builtin.Text.patterns.anyChar : Pattern Text - 708. -- ##Text.patterns.char + 717. -- ##Text.patterns.char builtin.Text.patterns.char : Class -> Pattern Text - 709. -- ##Text.patterns.charIn + 718. -- ##Text.patterns.charIn builtin.Text.patterns.charIn : [Char] -> Pattern Text - 710. -- ##Text.patterns.charRange + 719. -- ##Text.patterns.charRange builtin.Text.patterns.charRange : Char -> Char -> Pattern Text - 711. -- ##Text.patterns.digit + 720. -- ##Text.patterns.digit builtin.Text.patterns.digit : Pattern Text - 712. -- ##Text.patterns.eof + 721. -- ##Text.patterns.eof builtin.Text.patterns.eof : Pattern Text - 713. -- ##Text.patterns.letter + 722. -- ##Text.patterns.letter builtin.Text.patterns.letter : Pattern Text - 714. -- ##Text.patterns.literal + 723. -- ##Text.patterns.literal builtin.Text.patterns.literal : Text -> Pattern Text - 715. -- ##Text.patterns.lookbehind + 724. -- ##Text.patterns.lookbehind builtin.Text.patterns.lookbehind : Class -> Pattern Text - 716. -- ##Text.patterns.negativeLookbehind + 725. -- ##Text.patterns.negativeLookbehind builtin.Text.patterns.negativeLookbehind : Class -> Pattern Text - 717. -- ##Text.patterns.notCharIn + 726. -- ##Text.patterns.notCharIn builtin.Text.patterns.notCharIn : [Char] -> Pattern Text - 718. -- ##Text.patterns.notCharRange + 727. -- ##Text.patterns.notCharRange builtin.Text.patterns.notCharRange : Char -> Char -> Pattern Text - 719. -- ##Text.patterns.punctuation + 728. -- ##Text.patterns.punctuation builtin.Text.patterns.punctuation : Pattern Text - 720. -- ##Text.patterns.space + 729. -- ##Text.patterns.space builtin.Text.patterns.space : Pattern Text - 721. -- ##Text.repeat + 730. -- ##Text.repeat builtin.Text.repeat : Nat -> Text -> Text - 722. -- ##Text.reverse + 731. -- ##Text.reverse builtin.Text.reverse : Text -> Text - 723. -- ##Text.size + 732. -- ##Text.size builtin.Text.size : Text -> Nat - 724. -- ##Text.take + 733. -- ##Text.take builtin.Text.take : Nat -> Text -> Text - 725. -- ##Text.toCharList + 734. -- ##Text.toCharList builtin.Text.toCharList : Text -> [Char] - 726. -- ##Text.toLowercase + 735. -- ##Text.toLowercase builtin.Text.toLowercase : Text -> Text - 727. -- ##Text.toUppercase + 736. -- ##Text.toUppercase builtin.Text.toUppercase : Text -> Text - 728. -- ##Text.toUtf8 + 737. -- ##Text.toUtf8 builtin.Text.toUtf8 : Text -> Bytes - 729. -- ##Text.uncons + 738. -- ##Text.uncons builtin.Text.uncons : Text -> Optional (Char, Text) - 730. -- ##Text.unsnoc + 739. -- ##Text.unsnoc builtin.Text.unsnoc : Text -> Optional (Text, Char) - 731. -- ##ThreadId.toText + 740. -- ##ThreadId.toText builtin.ThreadId.toText : ThreadId -> Text - 732. -- ##todo + 741. -- ##todo builtin.todo : a -> b - 733. -- #2lg4ah6ir6t129m33d7gssnigacral39qdamo20mn6r2vefliubpeqnjhejai9ekjckv0qnu9mlu3k9nbpfhl2schec4dohn7rjhjt8 + 742. -- #2lg4ah6ir6t129m33d7gssnigacral39qdamo20mn6r2vefliubpeqnjhejai9ekjckv0qnu9mlu3k9nbpfhl2schec4dohn7rjhjt8 structural type builtin.Tuple a b - 734. -- #2lg4ah6ir6t129m33d7gssnigacral39qdamo20mn6r2vefliubpeqnjhejai9ekjckv0qnu9mlu3k9nbpfhl2schec4dohn7rjhjt8#0 + 743. -- #2lg4ah6ir6t129m33d7gssnigacral39qdamo20mn6r2vefliubpeqnjhejai9ekjckv0qnu9mlu3k9nbpfhl2schec4dohn7rjhjt8#0 builtin.Tuple.Cons : a -> b -> Tuple a b - 735. -- ##UDPSocket + 744. -- ##UDPSocket builtin type builtin.UDPSocket - 736. -- #00nv2kob8fp11qdkr750rlppf81cda95m3q0niohj1pvljnjl4r3hqrhvp1un2p40ptgkhhsne7hocod90r3qdlus9guivh7j3qcq0g + 745. -- #00nv2kob8fp11qdkr750rlppf81cda95m3q0niohj1pvljnjl4r3hqrhvp1un2p40ptgkhhsne7hocod90r3qdlus9guivh7j3qcq0g structural type builtin.Unit - 737. -- #00nv2kob8fp11qdkr750rlppf81cda95m3q0niohj1pvljnjl4r3hqrhvp1un2p40ptgkhhsne7hocod90r3qdlus9guivh7j3qcq0g#0 + 746. -- #00nv2kob8fp11qdkr750rlppf81cda95m3q0niohj1pvljnjl4r3hqrhvp1un2p40ptgkhhsne7hocod90r3qdlus9guivh7j3qcq0g#0 builtin.Unit.Unit : () - 738. -- ##Universal.< + 747. -- ##Universal.< builtin.Universal.< : a -> a -> Boolean - 739. -- ##Universal.<= + 748. -- ##Universal.<= builtin.Universal.<= : a -> a -> Boolean - 740. -- ##Universal.== + 749. -- ##Universal.== builtin.Universal.== : a -> a -> Boolean - 741. -- ##Universal.> + 750. -- ##Universal.> builtin.Universal.> : a -> a -> Boolean - 742. -- ##Universal.>= + 751. -- ##Universal.>= builtin.Universal.>= : a -> a -> Boolean - 743. -- ##Universal.compare + 752. -- ##Universal.compare builtin.Universal.compare : a -> a -> Int - 744. -- ##Universal.murmurHash + 753. -- ##Universal.murmurHash builtin.Universal.murmurHash : a -> Nat - 745. -- ##unsafe.coerceAbilities + 754. -- ##unsafe.coerceAbilities builtin.unsafe.coerceAbilities : (a ->{e1} b) -> a -> b - 746. -- ##Value + 755. -- ##Value builtin type builtin.Value - 747. -- ##Value.dependencies + 756. -- ##Value.dependencies builtin.Value.dependencies : Value -> [Link.Term] - 748. -- ##Value.deserialize + 757. -- ##Value.deserialize builtin.Value.deserialize : Bytes -> Either Text Value - 749. -- ##Value.load + 758. -- ##Value.load builtin.Value.load : Value ->{IO} Either [Link.Term] a - 750. -- ##Value.serialize + 759. -- ##Value.serialize builtin.Value.serialize : Value -> Bytes - 751. -- ##Value.value + 760. -- ##Value.value builtin.Value.value : a -> Value - 752. -- #dem6aglnj8cppfrnq9qipl7geo5pim3auo9cmv1rhh5la9edalj19sspbpm1pd4vh0plokdh6qfo48gs034dqlg0s7j9fhr9p9ndtpo + 761. -- #dem6aglnj8cppfrnq9qipl7geo5pim3auo9cmv1rhh5la9edalj19sspbpm1pd4vh0plokdh6qfo48gs034dqlg0s7j9fhr9p9ndtpo type builtin.Year - 753. -- #dem6aglnj8cppfrnq9qipl7geo5pim3auo9cmv1rhh5la9edalj19sspbpm1pd4vh0plokdh6qfo48gs034dqlg0s7j9fhr9p9ndtpo#0 + 762. -- #dem6aglnj8cppfrnq9qipl7geo5pim3auo9cmv1rhh5la9edalj19sspbpm1pd4vh0plokdh6qfo48gs034dqlg0s7j9fhr9p9ndtpo#0 builtin.Year.Year : Nat -> Year - 754. -- #iur47o4jj4v554bfjsu95t8eru2vtko62d4jo4kvvt0mqnshtbleit15dlj1gkrpmokmf2pbegon8cof7600mv9s0m9229uk19bdvgg + 763. -- #iur47o4jj4v554bfjsu95t8eru2vtko62d4jo4kvvt0mqnshtbleit15dlj1gkrpmokmf2pbegon8cof7600mv9s0m9229uk19bdvgg cache : [(Link.Term, Code)] ->{IO, Exception} () - 755. -- #okolgrio28p1mbl1bfjfs9qtsr1m9upblcm3ul872gcir6epkcbq619vk5bdq1fnr371nelsof6jsp8469g4j6f0gg3007p79o4kf18 + 764. -- #okolgrio28p1mbl1bfjfs9qtsr1m9upblcm3ul872gcir6epkcbq619vk5bdq1fnr371nelsof6jsp8469g4j6f0gg3007p79o4kf18 check : Text -> Boolean ->{Stream Result} () - 756. -- #je42vk6rsefjlup01e1fmmdssf5i3ba9l6aka3bipggetfm8o4i8d1q5d7hddggu5jure1bu5ot8aq5in31to4788ctrtpb44ri83r8 + 765. -- #je42vk6rsefjlup01e1fmmdssf5i3ba9l6aka3bipggetfm8o4i8d1q5d7hddggu5jure1bu5ot8aq5in31to4788ctrtpb44ri83r8 checks : [Boolean] -> [Result] - 757. -- #jf82mm2gvoc3h5ibpejfeohkrl8022m38mi14r08v8s4np9187smglvtbk8u109ri427af2j5fuv1an6lq2k718vgtvr0c4rt9t32vg + 766. -- #jf82mm2gvoc3h5ibpejfeohkrl8022m38mi14r08v8s4np9187smglvtbk8u109ri427af2j5fuv1an6lq2k718vgtvr0c4rt9t32vg clientSocket : Text -> Text ->{IO, Exception} Socket - 758. -- #72auim6cvu5tl8ubmfj5m2p1a822m0jq6fmi8osd99ujbs9h20o3t9e47hcitdcku1e7d40r052sdmfgi1oktio9is8tf503f5unh7g + 767. -- #72auim6cvu5tl8ubmfj5m2p1a822m0jq6fmi8osd99ujbs9h20o3t9e47hcitdcku1e7d40r052sdmfgi1oktio9is8tf503f5unh7g closeFile : Handle ->{IO, Exception} () - 759. -- #nsvn5rj51knr3j62dp1ki0glb01bqj3ccq4537e1hgl2m89o9v7ghc54bu12r515mum791tcf4vgsrb6b1csa0tol1ldkiqrb8akkpo + 768. -- #nsvn5rj51knr3j62dp1ki0glb01bqj3ccq4537e1hgl2m89o9v7ghc54bu12r515mum791tcf4vgsrb6b1csa0tol1ldkiqrb8akkpo closeSocket : Socket ->{IO, Exception} () - 760. -- #ei73jot64ogu4q76rm3jecdn76vmrj0h7riqqecf1d439mjav7ehh0h7rol5s18nupv586ln3l0m4kmh99p5mhgv6qfcrfgilkgq1oo + 769. -- #ei73jot64ogu4q76rm3jecdn76vmrj0h7riqqecf1d439mjav7ehh0h7rol5s18nupv586ln3l0m4kmh99p5mhgv6qfcrfgilkgq1oo Code.transitiveDeps : Link.Term ->{IO} [(Link.Term, Code)] - 761. -- #srpc2uag5p1grvshbcm3urjntakgi3g3dthfse2cp38sd6uestd5neseces5ue7kum2ca0gsg9i0cilkl0gn8dn3q5dn86v4r8lbha0 + 770. -- #srpc2uag5p1grvshbcm3urjntakgi3g3dthfse2cp38sd6uestd5neseces5ue7kum2ca0gsg9i0cilkl0gn8dn3q5dn86v4r8lbha0 compose : (i1 ->{g1} o) -> (i ->{g} i1) -> i ->{g1, g} o - 762. -- #stnrk323b8mm7dknlonfl70epd9f9ede60iom7sgok31mmggnic7etgi0are2uccs9g429qo3ruaeb9tk90bh35obnce1038p5qe6co + 771. -- #stnrk323b8mm7dknlonfl70epd9f9ede60iom7sgok31mmggnic7etgi0are2uccs9g429qo3ruaeb9tk90bh35obnce1038p5qe6co compose2 : (i2 ->{g2} o) -> (i1 ->{g1} i ->{g} i2) -> i1 -> i ->{g2, g1, g} o - 763. -- #mrc183aovjcae3i03r1a0ia26crmmkcf2e723pda860ps6q11rancsenjoqhc3fn0eraih1mobcvt245jr77l27uoujqa452utq8p68 + 772. -- #mrc183aovjcae3i03r1a0ia26crmmkcf2e723pda860ps6q11rancsenjoqhc3fn0eraih1mobcvt245jr77l27uoujqa452utq8p68 compose3 : (i3 ->{g3} o) -> (i2 ->{g2} i1 ->{g1} i ->{g} i3) -> i2 @@ -2689,192 +2719,192 @@ scratch/main> find.verbose -> i ->{g3, g2, g1, g} o - 764. -- #ilkeid6l866bmq90d2v1ilqp9dsjo6ucmf8udgrokq3nr3mo9skl2vao2mo7ish136as52rsf19u9v3jkmd85bl08gnmamo4e5v2fqo + 773. -- #ilkeid6l866bmq90d2v1ilqp9dsjo6ucmf8udgrokq3nr3mo9skl2vao2mo7ish136as52rsf19u9v3jkmd85bl08gnmamo4e5v2fqo contains : Text -> Text -> Boolean - 765. -- #tc40jeeetbig6vcl7j6v1n0o59r8ugmjkhi6tee6o5fmkkbhmttevg093b29637gb6p70trmh9lrje86hhuuiqq565qs20qmjg4kbk0 + 774. -- #tc40jeeetbig6vcl7j6v1n0o59r8ugmjkhi6tee6o5fmkkbhmttevg093b29637gb6p70trmh9lrje86hhuuiqq565qs20qmjg4kbk0 crawl : [(Link.Term, Code)] -> [Link.Term] ->{IO} [(Link.Term, Code)] - 766. -- #urivjjshp3j122vb412mr5rq7jbf21ij1grh4amk1jfd33nfbcgv4emnnas5ekmblc4j4gsncoofatcdtktv0tp1f8sk8p06occb0hg + 775. -- #urivjjshp3j122vb412mr5rq7jbf21ij1grh4amk1jfd33nfbcgv4emnnas5ekmblc4j4gsncoofatcdtktv0tp1f8sk8p06occb0hg createTempDirectory : Text ->{IO, Exception} Text - 767. -- #h4ob7r10rul2v0dekeqjdfctbqr943ut9fgln5jgdgk0reg5d7ha0nlr16vcgcusfncgmquf5pv048lt3l9k7m653i7m0odmrvl69t0 + 776. -- #h4ob7r10rul2v0dekeqjdfctbqr943ut9fgln5jgdgk0reg5d7ha0nlr16vcgcusfncgmquf5pv048lt3l9k7m653i7m0odmrvl69t0 decodeCert : Bytes ->{Exception} SignedCert - 768. -- #ihbmfc4r7o3391jocjm6v4mojpp3hvt84ivqigrmp34vb5l3d7mmdlvh3hkrtebi812npso7rqo203a59pbs7r2g78ig6jvsv0nva38 + 777. -- #ihbmfc4r7o3391jocjm6v4mojpp3hvt84ivqigrmp34vb5l3d7mmdlvh3hkrtebi812npso7rqo203a59pbs7r2g78ig6jvsv0nva38 delay : Nat ->{IO, Exception} () - 769. -- #donnstdrflrkve7cqi26cqd90kvpdht2gp1q7v5u816a2v0h8uhevh4o618d6cdafqcnia2uqdanpn62sb7nafp77rqavj258vvjdr0 + 778. -- #donnstdrflrkve7cqi26cqd90kvpdht2gp1q7v5u816a2v0h8uhevh4o618d6cdafqcnia2uqdanpn62sb7nafp77rqavj258vvjdr0 directoryContents : Text ->{IO, Exception} [Text] - 770. -- #ac6oh72pmu5gojdaff977lj48f83rr5cuquv2nhll3iiit0hu04dr2nflrvi5chbond10mnplq1d0uqu9i52uc7ebvn3dlqp1n504qg + 779. -- #ac6oh72pmu5gojdaff977lj48f83rr5cuquv2nhll3iiit0hu04dr2nflrvi5chbond10mnplq1d0uqu9i52uc7ebvn3dlqp1n504qg Either.isLeft : Either a b -> Boolean - 771. -- #5n8bp6bvja969upaa6l2l346hab5vhemoa9ehb0n7qjer0kfapvuc7bd5hcugrf2o2auu11e9hstlf2g8uv6h3fn3v8ggmeig4blfe8 + 780. -- #5n8bp6bvja969upaa6l2l346hab5vhemoa9ehb0n7qjer0kfapvuc7bd5hcugrf2o2auu11e9hstlf2g8uv6h3fn3v8ggmeig4blfe8 Either.mapLeft : (i ->{g} o) -> Either i b ->{g} Either o b - 772. -- #jp6itgd1nh1tjn2c7e0ebkskk7sgdooh48e023l1hhkvrkuhrklrdf4omr73jpvnodfbtt4tki495480n0bp54fd0o3hngj8k2knqs8 + 781. -- #jp6itgd1nh1tjn2c7e0ebkskk7sgdooh48e023l1hhkvrkuhrklrdf4omr73jpvnodfbtt4tki495480n0bp54fd0o3hngj8k2knqs8 Either.raiseMessage : v -> Either Text b ->{Exception} b - 773. -- #4pa382t5o39uapf9tncjra8parmg9rppsn9ob3qnnrvbvtqc1oq8g3u69uapbjee9d118v8or3suhc3vu82de7l0c0og5h01beqjnko + 782. -- #4pa382t5o39uapf9tncjra8parmg9rppsn9ob3qnnrvbvtqc1oq8g3u69uapbjee9d118v8or3suhc3vu82de7l0c0og5h01beqjnko evalTest : '{IO, TempDirs, Exception, Stream Result} a ->{IO, Exception} ([Result], a) - 774. -- #4n0fgs00hpsj3paqnm9bfm4nbt9cbrin3hl88i992m9tjiq1ik7eq72asu4hcg885uti36tbnj5rudt56eahhnut1nobofg86pk1bng + 783. -- #4n0fgs00hpsj3paqnm9bfm4nbt9cbrin3hl88i992m9tjiq1ik7eq72asu4hcg885uti36tbnj5rudt56eahhnut1nobofg86pk1bng structural ability Exception structural ability builtin.Exception - 775. -- #ilea09hgph2cdqsiaeup3o58met3e62m61nckvc89v20cq3g5e71pe19idi270o7i0jdfttra51lvi1vhs0g6oluvhavhdetpor74e0 + 784. -- #ilea09hgph2cdqsiaeup3o58met3e62m61nckvc89v20cq3g5e71pe19idi270o7i0jdfttra51lvi1vhs0g6oluvhavhdetpor74e0 Exception.catch : '{g, Exception} a ->{g} Either Failure a - 776. -- #hbhvk2e00l6o7qhn8e7p6dc36bjl7ljm0gn2df5clidlrdoufsig1gt5pjhg72kl67folgg2b892kh9jc1oh0l79h4p8dqhcf1tkde0 + 785. -- #hbhvk2e00l6o7qhn8e7p6dc36bjl7ljm0gn2df5clidlrdoufsig1gt5pjhg72kl67folgg2b892kh9jc1oh0l79h4p8dqhcf1tkde0 Exception.failure : Text -> a -> Failure - 777. -- #4n0fgs00hpsj3paqnm9bfm4nbt9cbrin3hl88i992m9tjiq1ik7eq72asu4hcg885uti36tbnj5rudt56eahhnut1nobofg86pk1bng#0 + 786. -- #4n0fgs00hpsj3paqnm9bfm4nbt9cbrin3hl88i992m9tjiq1ik7eq72asu4hcg885uti36tbnj5rudt56eahhnut1nobofg86pk1bng#0 Exception.raise, builtin.Exception.raise : Failure ->{Exception} x - 778. -- #5mqjoauctm02dlqdc10cc66relu40997d6o1u8fj7vv7g0i2mtacjc83afqhuekll1gkqr9vv4lq7aenanq4kf53kcce4l1srr6ip08 + 787. -- #5mqjoauctm02dlqdc10cc66relu40997d6o1u8fj7vv7g0i2mtacjc83afqhuekll1gkqr9vv4lq7aenanq4kf53kcce4l1srr6ip08 Exception.reraise : Either Failure a ->{Exception} a - 779. -- #eak26rh0k633mbfsj8stppgj1e4l6gest2dfb2ol538l2hcmn1gpspq4vf3g72f1g8jnokfk8uv614cbdvcof0hk21nk2e55jseo18g + 788. -- #eak26rh0k633mbfsj8stppgj1e4l6gest2dfb2ol538l2hcmn1gpspq4vf3g72f1g8jnokfk8uv614cbdvcof0hk21nk2e55jseo18g Exception.toEither : '{ε, Exception} a ->{ε} Either Failure a - 780. -- #g2qp63rds1msu1c3ejqfqnsbhsiigsneuij8eq3kfnv2gdmpqui5g7t0alo1cv6mqqgp36ihvst2jc9t1jp6tnumk18mn5v8m9r3n58 + 789. -- #g2qp63rds1msu1c3ejqfqnsbhsiigsneuij8eq3kfnv2gdmpqui5g7t0alo1cv6mqqgp36ihvst2jc9t1jp6tnumk18mn5v8m9r3n58 Exception.toEither.handler : Request {Exception} a -> Either Failure a - 781. -- #q1e3avumkdpbjalk4v7c5rog11ertc0ra5nlkpgd23n6jmbki58rkebl25cbfbn7i3t274srrpbgont7j12i80hkh3gnt713poo13c8 + 790. -- #q1e3avumkdpbjalk4v7c5rog11ertc0ra5nlkpgd23n6jmbki58rkebl25cbfbn7i3t274srrpbgont7j12i80hkh3gnt713poo13c8 Exception.unsafeRun! : '{g, Exception} a ->{g} a - 782. -- #b6eskvgfv4vr30obfnaegflsf0h8u2t8816d3qhl2hl3r0l794rqgqks67q5hd46qlm06pbgt01439hmmk8jvuu3adc45cra0ggeqhg + 791. -- #b6eskvgfv4vr30obfnaegflsf0h8u2t8816d3qhl2hl3r0l794rqgqks67q5hd46qlm06pbgt01439hmmk8jvuu3adc45cra0ggeqhg expect : Text -> (a -> a -> Boolean) -> a -> a ->{Stream Result} () - 783. -- #6oqh4j31ujgecbu9kionucdbv8mbiiuasqrt294trdbqaoqlm5milniomc2c8jej0e2hco809kdb856djrr12luck2onn5que7kp2eo + 792. -- #6oqh4j31ujgecbu9kionucdbv8mbiiuasqrt294trdbqaoqlm5milniomc2c8jej0e2hco809kdb856djrr12luck2onn5que7kp2eo expectU : Text -> a -> a ->{Stream Result} () - 784. -- #ug02c2qol2gp0af97nuceu59r3jm9f52lro04ahkandkin8sabseuckr6ep0lvuknjlfhhogj9k5m2epp15d0j8bipc8iljgg8at7ho + 793. -- #ug02c2qol2gp0af97nuceu59r3jm9f52lro04ahkandkin8sabseuckr6ep0lvuknjlfhhogj9k5m2epp15d0j8bipc8iljgg8at7ho fail : Text -> b ->{Exception} c - 785. -- #ri1irkdfcdg3a0c3orv23fk2vjda5n0mlp7ooi0hskvaloa8d8qs9i7essti135k0sfomqajspr9idhu2hgjpmmb6etfabj8jdo02a8 + 794. -- #ri1irkdfcdg3a0c3orv23fk2vjda5n0mlp7ooi0hskvaloa8d8qs9i7essti135k0sfomqajspr9idhu2hgjpmmb6etfabj8jdo02a8 fileExists : Text ->{IO, Exception} Boolean - 786. -- #urlf22mo1assv31k95beddq2ava91p953ueg8kdcddofc2ftogrt10jemg760mkcd8m3lnjc3keog8anop0r0kmo2k1lggbt2chse30 + 795. -- #urlf22mo1assv31k95beddq2ava91p953ueg8kdcddofc2ftogrt10jemg760mkcd8m3lnjc3keog8anop0r0kmo2k1lggbt2chse30 first : (a ->{g} b) -> (a, c) ->{g} (b, c) - 787. -- #4rfr9je7fbsithij70iaqofqu4hgl6ji7t06ok0k98a5ni1397di8d0mllef935mdvj0e57hbg6rm9nn6ok5gcnvqr0vmodelli9qqg + 796. -- #4rfr9je7fbsithij70iaqofqu4hgl6ji7t06ok0k98a5ni1397di8d0mllef935mdvj0e57hbg6rm9nn6ok5gcnvqr0vmodelli9qqg fromB32 : Bytes ->{Exception} Bytes - 788. -- #13fpchr37ua0pr38ssr7j22pudmseuedf490aok18upagh0f00kg40guj9pgl916v9qurqrvu53f3lpsvi0s82hg3dtjacanrpjvs38 + 797. -- #13fpchr37ua0pr38ssr7j22pudmseuedf490aok18upagh0f00kg40guj9pgl916v9qurqrvu53f3lpsvi0s82hg3dtjacanrpjvs38 fromHex : Text -> Bytes - 789. -- #b5ljjbncgukq958frsqtuebv9b1ack0blhqcue5km6k15gotubesaj6bv3ii61f676qcfq5rimmjtrihio7pnk8r9noe3s3v7lk4i5o + 798. -- #b5ljjbncgukq958frsqtuebv9b1ack0blhqcue5km6k15gotubesaj6bv3ii61f676qcfq5rimmjtrihio7pnk8r9noe3s3v7lk4i5o getArgs : '{IO, Exception} [Text] - 790. -- #od69b4q2upcvsdjhb7ra8unq1r8t7924mra5j5s8f7n173bmslp8dprhgt1mjdj49qj10h2gj91eflke1avj0qlecus1mdevufm3hho + 799. -- #od69b4q2upcvsdjhb7ra8unq1r8t7924mra5j5s8f7n173bmslp8dprhgt1mjdj49qj10h2gj91eflke1avj0qlecus1mdevufm3hho getBuffering : Handle ->{IO, Exception} BufferMode - 791. -- #fupr0p6pmt834qep0jp18h9jhf4uadmtrsndpfac3kpkf4q4foqnqi6dmc6u4mgs9aubl8issknu89taqhi1mvaeg1ctbt3uf2lidh8 + 800. -- #fupr0p6pmt834qep0jp18h9jhf4uadmtrsndpfac3kpkf4q4foqnqi6dmc6u4mgs9aubl8issknu89taqhi1mvaeg1ctbt3uf2lidh8 getBytes : Handle -> Nat ->{IO, Exception} Bytes - 792. -- #qgocu5n2e7urg44ch4m8upn24efh6jk4cmp8bjsvhnenhahq8nniauav0ihpqa31p57v8fhqdep4fh5dj7nj1uul7596us04dr6dqng + 801. -- #qgocu5n2e7urg44ch4m8upn24efh6jk4cmp8bjsvhnenhahq8nniauav0ihpqa31p57v8fhqdep4fh5dj7nj1uul7596us04dr6dqng getChar : Handle ->{IO, Exception} Char - 793. -- #t92if409jh848oifd8v6bbu6o0hd0916rc3rbdlj4vf46oll2tradqrilk6r28mmm19dao5sh8l349qrhc59qopv4u1hba3ndfiitq8 + 802. -- #t92if409jh848oifd8v6bbu6o0hd0916rc3rbdlj4vf46oll2tradqrilk6r28mmm19dao5sh8l349qrhc59qopv4u1hba3ndfiitq8 getEcho : Handle ->{IO, Exception} Boolean - 794. -- #5nc47o8abjut8sab84ltouhiv3mtid9poipn2b53q3bpceebdimb4sb1e7lkrmu3bn3ivgcqe568upqqh5clrqgkhfdsji58kcdrt4g + 803. -- #5nc47o8abjut8sab84ltouhiv3mtid9poipn2b53q3bpceebdimb4sb1e7lkrmu3bn3ivgcqe568upqqh5clrqgkhfdsji58kcdrt4g getLine : Handle ->{IO, Exception} Text - 795. -- #l9pfqiqb3u9o8qo7jnaajph1qh0jbodih4vtuqti53vjmtp4diddidt8r2qa826918bt7b1cf873oo511tkivfkg35fo5o4kh5j35r0 + 804. -- #l9pfqiqb3u9o8qo7jnaajph1qh0jbodih4vtuqti53vjmtp4diddidt8r2qa826918bt7b1cf873oo511tkivfkg35fo5o4kh5j35r0 getSomeBytes : Handle -> Nat ->{IO, Exception} Bytes - 796. -- #mdhva408l4fji5h23okmhk5t4dakt1lokuie28nsdspal45lbhe06vkmcu8hf8jplse56o576ogn72j7k5nbph06nl36o957qn25tvo + 805. -- #mdhva408l4fji5h23okmhk5t4dakt1lokuie28nsdspal45lbhe06vkmcu8hf8jplse56o576ogn72j7k5nbph06nl36o957qn25tvo getTempDirectory : '{IO, Exception} Text - 797. -- #vniqolukf0296u5dc6d68ngfvi9quuuklcsjodnfm0tm8atslq19sidso2uqnbf4g6h23qck69dpd0oceb9539ufoo12rhdcdd934lo + 806. -- #vniqolukf0296u5dc6d68ngfvi9quuuklcsjodnfm0tm8atslq19sidso2uqnbf4g6h23qck69dpd0oceb9539ufoo12rhdcdd934lo handlePosition : Handle ->{IO, Exception} Nat - 798. -- #85s6gvfbpv8lhgq8m36h7ebvan4lljiu2ffehbgese5c11h3vpqlcssts8svi2qo2c5d68oeke092puta1ng84982hiid972hss9m40 + 807. -- #85s6gvfbpv8lhgq8m36h7ebvan4lljiu2ffehbgese5c11h3vpqlcssts8svi2qo2c5d68oeke092puta1ng84982hiid972hss9m40 handshake : Tls ->{IO, Exception} () - 799. -- #128490j1tmitiu3vesv97sqspmefobg1am38vos9p0vt4s1bhki87l7kj4cctquffkp40eanmr9ummfglj9i7s25jrpb32ob5sf2tio + 808. -- #128490j1tmitiu3vesv97sqspmefobg1am38vos9p0vt4s1bhki87l7kj4cctquffkp40eanmr9ummfglj9i7s25jrpb32ob5sf2tio hex : Bytes -> Text - 800. -- #ttjui80dbufvf3vgaddmcr065dpgl0rtp68i5cdht6tq4t2vk3i2vg60hi77rug368qijgijf8oui27te7o5oq0t0osm6dg65c080i0 + 809. -- #ttjui80dbufvf3vgaddmcr065dpgl0rtp68i5cdht6tq4t2vk3i2vg60hi77rug368qijgijf8oui27te7o5oq0t0osm6dg65c080i0 id : a -> a - 801. -- #0lj5fufff9ocn6lfgc3sv23aup971joh61ei6llu7djblug7tmv2avijc91ing6jmm42hu3akdefl1ttdvepk69sc8jslih1g80npg8 + 810. -- #0lj5fufff9ocn6lfgc3sv23aup971joh61ei6llu7djblug7tmv2avijc91ing6jmm42hu3akdefl1ttdvepk69sc8jslih1g80npg8 isDirectory : Text ->{IO, Exception} Boolean - 802. -- #flakrb6iks7vgijtm8dhipj14v57tk96nq5uj3uluplpoamb1etufn7rsjrelaj3letaa0e2aivq95794nv2b8a8vqbqdumd6i0fvpo + 811. -- #flakrb6iks7vgijtm8dhipj14v57tk96nq5uj3uluplpoamb1etufn7rsjrelaj3letaa0e2aivq95794nv2b8a8vqbqdumd6i0fvpo isFileEOF : Handle ->{IO, Exception} Boolean - 803. -- #5qan8ssedn9pouru70v1a06tkivapiv0es8k6v3hjpmkmboekktnh30ia7asmevglf4pu8ujb0t9vsctjsjtam160o9bn9g02uciui8 + 812. -- #5qan8ssedn9pouru70v1a06tkivapiv0es8k6v3hjpmkmboekktnh30ia7asmevglf4pu8ujb0t9vsctjsjtam160o9bn9g02uciui8 isFileOpen : Handle ->{IO, Exception} Boolean - 804. -- #2a11371klrv2i8726knma0l3g14on4m2ucihpg65cjj9k930aefg65ovvg0ak4uv3i9evtnu0a5249q3i8ugheqd65cnmgquc1a88n0 + 813. -- #2a11371klrv2i8726knma0l3g14on4m2ucihpg65cjj9k930aefg65ovvg0ak4uv3i9evtnu0a5249q3i8ugheqd65cnmgquc1a88n0 isNone : Optional a -> Boolean - 805. -- #jsqdsol9g3qnkub2f2ogertbiieldlkqh859vn5qovub6halelfmpv1tc50u1n23kotgd9nnejnn0n6foef8aqfcp615ashd0cfi3j8 + 814. -- #jsqdsol9g3qnkub2f2ogertbiieldlkqh859vn5qovub6halelfmpv1tc50u1n23kotgd9nnejnn0n6foef8aqfcp615ashd0cfi3j8 isSeekable : Handle ->{IO, Exception} Boolean - 806. -- #gop2v9s6l24ii1v6bf1nks2h0h18pato0vbsf4u3el18s7mp1jfnp4c7fesdf9sunnlv5f5a9fjr1s952pte87mf63l1iqki9bp0mio + 815. -- #gop2v9s6l24ii1v6bf1nks2h0h18pato0vbsf4u3el18s7mp1jfnp4c7fesdf9sunnlv5f5a9fjr1s952pte87mf63l1iqki9bp0mio List.all : (a ->{ε} Boolean) -> [a] ->{ε} Boolean - 807. -- #thvdk6pgdi019on95nttjhg3rbqo7aq5lv9fqgehg00657utkitc1k5r9bfl7soqdrqd82tjmesn5ocb6d30ire6vkl0ad6rcppg5vo + 816. -- #thvdk6pgdi019on95nttjhg3rbqo7aq5lv9fqgehg00657utkitc1k5r9bfl7soqdrqd82tjmesn5ocb6d30ire6vkl0ad6rcppg5vo List.filter : (a ->{g} Boolean) -> [a] ->{g} [a] - 808. -- #ca71f74kmn16u76lch7ropsgou2t3lbtc5hr06858l97qkhk0b4ado1pnii4hqfannelbgv4qruv4f1iqn43kgkbsq8lpjmo3mnrp38 + 817. -- #ca71f74kmn16u76lch7ropsgou2t3lbtc5hr06858l97qkhk0b4ado1pnii4hqfannelbgv4qruv4f1iqn43kgkbsq8lpjmo3mnrp38 List.foldLeft : (b ->{g} a ->{g} b) -> b -> [a] ->{g} b - 809. -- #o1gssqn32qvl4pa79a0lko5ksvbn0rtv8u5g9jpd73ig94om2r4nlbcqa4nd968q74ios37eg0ol36776praolimpch8jsbohg47j2o + 818. -- #o1gssqn32qvl4pa79a0lko5ksvbn0rtv8u5g9jpd73ig94om2r4nlbcqa4nd968q74ios37eg0ol36776praolimpch8jsbohg47j2o List.forEach : [a] -> (a ->{e} ()) ->{e} () - 810. -- #ol837rn3935jnul9r2ri4i7gqonu2jp9maqmbr072mmk35tl0kq19s4ltuche8seihf8d246a6upgpdlvs6ocdbsgdm7k88bonhgmn8 + 819. -- #ol837rn3935jnul9r2ri4i7gqonu2jp9maqmbr072mmk35tl0kq19s4ltuche8seihf8d246a6upgpdlvs6ocdbsgdm7k88bonhgmn8 List.head : [t] -> Optional t - 811. -- #atruig2897q7u699k1u4ruou8epfb9qsok7ojkm5om67fhhaqgdi597jr7dvr09h9qndupc49obo4cccir98ei1grfehrcd5qhnkcq0 + 820. -- #atruig2897q7u699k1u4ruou8epfb9qsok7ojkm5om67fhhaqgdi597jr7dvr09h9qndupc49obo4cccir98ei1grfehrcd5qhnkcq0 List.range : Nat -> Nat -> [Nat] - 812. -- #marlqbcbculvqjfro3iidf899g2ncob2f8ld3gosg7kas5t9hlh341d49uh57ff5litvrt0hlb2ms7tj0mkfqs9do67cm4msodt8dng + 821. -- #marlqbcbculvqjfro3iidf899g2ncob2f8ld3gosg7kas5t9hlh341d49uh57ff5litvrt0hlb2ms7tj0mkfqs9do67cm4msodt8dng List.reverse : [a] -> [a] - 813. -- #30hfqasco93u0oipi7irfoabh5uofuu2aeplo2c87p4dg0386si6gvv715dbr21s4ftfquev4baj5ost3h17mt8fajn64mbffp6c8c0 + 822. -- #30hfqasco93u0oipi7irfoabh5uofuu2aeplo2c87p4dg0386si6gvv715dbr21s4ftfquev4baj5ost3h17mt8fajn64mbffp6c8c0 List.unzip : [(a, b)] -> ([a], [b]) - 814. -- #s8l7maltpsr01naqadvs5ssttg7eim4ca2096lbo3f3he1i1b11kk95ahtgb5ukb8cjr6kg4r4c1qrvshk9e8dp5fkq87254gc1pk48 + 823. -- #s8l7maltpsr01naqadvs5ssttg7eim4ca2096lbo3f3he1i1b11kk95ahtgb5ukb8cjr6kg4r4c1qrvshk9e8dp5fkq87254gc1pk48 List.zip : [a] -> [b] -> [(a, b)] - 815. -- #g6g6lhj9upe46032doaeo0ndu8lh1krfkc56gvupeg4a16me5vghhi6bthphnsvgtve9ogl73qab6d69ju6uorpj029g97pjg3p2k2o + 824. -- #g6g6lhj9upe46032doaeo0ndu8lh1krfkc56gvupeg4a16me5vghhi6bthphnsvgtve9ogl73qab6d69ju6uorpj029g97pjg3p2k2o listen : Socket ->{IO, Exception} () - 816. -- #ilva5f9uoaia9l8suc3hl9kh2bg1lah1k7uvm8mlq3mt0b9krdh15kurbhb9pu7a8irmvk6m2lpulg75a5alf0a95u0rp0v0n9folmg + 825. -- #ilva5f9uoaia9l8suc3hl9kh2bg1lah1k7uvm8mlq3mt0b9krdh15kurbhb9pu7a8irmvk6m2lpulg75a5alf0a95u0rp0v0n9folmg loadCodeBytes : Bytes ->{Exception} Code - 817. -- #tjj9c7fbprd57jlnndl8huslhvfbhi1bt1mr45v1fvvr2b3bguhnjtll3lbsbnqqjb290tm9cnuafpbtlfev1csbtjjog0r2kfv0e50 + 826. -- #tjj9c7fbprd57jlnndl8huslhvfbhi1bt1mr45v1fvvr2b3bguhnjtll3lbsbnqqjb290tm9cnuafpbtlfev1csbtjjog0r2kfv0e50 loadSelfContained : Text ->{IO, Exception} a - 818. -- #1pkgu9vbcdl57d9pn9ses1htmfokjq6212ed5oo9jscjkf8t2s407j71287hd9nr1shgsjmn0eunm5e7h262id4hh3t4op6barrvc70 + 827. -- #1pkgu9vbcdl57d9pn9ses1htmfokjq6212ed5oo9jscjkf8t2s407j71287hd9nr1shgsjmn0eunm5e7h262id4hh3t4op6barrvc70 loadValueBytes : Bytes ->{IO, Exception} ([(Link.Term, Code)], Value) - 819. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg + 828. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg type Map k v type builtin.Map k v - 820. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#0 + 829. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#0 Map.Bin, builtin.Map.Bin : Nat -> k @@ -2883,167 +2913,167 @@ scratch/main> find.verbose -> Map k v -> Map k v - 821. -- #l10hise80kaqda2tsvkd6c6bsmd4cdvbi2hbk73bd79gpp6drt3496nhsd8mutbvijbmctdmqopcmdq9l650jtvvhcelci722rjolfg + 830. -- #l10hise80kaqda2tsvkd6c6bsmd4cdvbi2hbk73bd79gpp6drt3496nhsd8mutbvijbmctdmqopcmdq9l650jtvvhcelci722rjolfg Map.get : k -> Map k v -> Optional v - 822. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#1 + 831. -- #nk9jfsoidsc5h3nhcf1p6528t6c5hqui3hridbvaqnruel4jns3qo6plgups2sgi82c9jgt9ba1qlkum1bdjdgp75h7si2thbo7tcfg#1 Map.Tip, builtin.Map.Tip : Map k v - 823. -- #nqodnhhovq1ilb5fstpc61l8omfto62r8s0qq8s4ij39ulorqpgtinef64mullq0ns4914gck6obeuu6so1hds09hh5o1ptpt4k909g + 832. -- #nqodnhhovq1ilb5fstpc61l8omfto62r8s0qq8s4ij39ulorqpgtinef64mullq0ns4914gck6obeuu6so1hds09hh5o1ptpt4k909g MVar.put : MVar i -> i ->{IO, Exception} () - 824. -- #4ck8hqiu4m7478q5p7osqd1g9piie53g2v6j89en9s90f3cnhb9jr2515f35605e18ohiod7nb93t03765cil0lecob3hcsht9870g0 + 833. -- #4ck8hqiu4m7478q5p7osqd1g9piie53g2v6j89en9s90f3cnhb9jr2515f35605e18ohiod7nb93t03765cil0lecob3hcsht9870g0 MVar.read : MVar o ->{IO, Exception} o - 825. -- #tchse01rs4t1e6bk9br5ofad23ahlb9eanlv9nqqlk5eh7rv7qtpd5jmdjrcksm1q3uji64kqblrqq0vgap9tmak3urkr3ok4kg2ci0 + 834. -- #tchse01rs4t1e6bk9br5ofad23ahlb9eanlv9nqqlk5eh7rv7qtpd5jmdjrcksm1q3uji64kqblrqq0vgap9tmak3urkr3ok4kg2ci0 MVar.swap : MVar o -> o ->{IO, Exception} o - 826. -- #23nq5mshk51uktsg3su3mnkr9s4fe3sktf4q388bpsluiik64l8h060qptgfv48r25fcskecmc9t4gdsm8im9fhjf70i1klp34epksg + 835. -- #23nq5mshk51uktsg3su3mnkr9s4fe3sktf4q388bpsluiik64l8h060qptgfv48r25fcskecmc9t4gdsm8im9fhjf70i1klp34epksg MVar.take : MVar o ->{IO, Exception} o - 827. -- #18pqussken2f5u9vuall7ds58cf4fajoc4trf7p93vk4640ia88vsh2lgq9kgu8fvpr86518443ecvn7eo5tessq2hmgs55aiftui8g + 836. -- #18pqussken2f5u9vuall7ds58cf4fajoc4trf7p93vk4640ia88vsh2lgq9kgu8fvpr86518443ecvn7eo5tessq2hmgs55aiftui8g newClient : ClientConfig -> Socket ->{IO, Exception} Tls - 828. -- #mmoj281h8bimgcfqfpfg6mfriu8cta5vva4ppo41ioc6phegdfii26ic2s5sh0lf5tc6o15o7v79ui8eeh2mbicup07tl6hkrq9q34o + 837. -- #mmoj281h8bimgcfqfpfg6mfriu8cta5vva4ppo41ioc6phegdfii26ic2s5sh0lf5tc6o15o7v79ui8eeh2mbicup07tl6hkrq9q34o newServer : ServerConfig -> Socket ->{IO, Exception} Tls - 829. -- #r6l6s6ni7ut1b9le2d84el9dkhqjcjhodhd0l1qsksahm4cbgdk0odjck9jnku08v0pn909kabe2v88p43jisavkariomtgmtrrtbu8 + 838. -- #r6l6s6ni7ut1b9le2d84el9dkhqjcjhodhd0l1qsksahm4cbgdk0odjck9jnku08v0pn909kabe2v88p43jisavkariomtgmtrrtbu8 openFile : Text -> FileMode ->{IO, Exception} Handle - 830. -- #de42pjerlsm688s7llh6obrno8j5kq8rf5k931a5nq94o4475qi6ed0c5paqhem6aqi1e6th058qank01j7csc2sp7au9prhkjk31c8 + 839. -- #de42pjerlsm688s7llh6obrno8j5kq8rf5k931a5nq94o4475qi6ed0c5paqhem6aqi1e6th058qank01j7csc2sp7au9prhkjk31c8 Optional.getOrBug : msg -> Optional a -> a - 831. -- #c58qbcgd90d965dokk7bu82uehegkbe8jttm7lv4j0ohgi2qm3e3p4v1qfr8vc2dlsmsl9tv0v71kco8c18mneule0ntrhte4ks1090 + 840. -- #c58qbcgd90d965dokk7bu82uehegkbe8jttm7lv4j0ohgi2qm3e3p4v1qfr8vc2dlsmsl9tv0v71kco8c18mneule0ntrhte4ks1090 printLine : Text ->{IO, Exception} () - 832. -- #dck7pb7qv05ol3b0o76l88a22bc7enl781ton5qbs2umvgsua3p16n22il02m29592oohsnbt3cr7hnlumpdhv2ibjp6iji9te4iot0 + 841. -- #dck7pb7qv05ol3b0o76l88a22bc7enl781ton5qbs2umvgsua3p16n22il02m29592oohsnbt3cr7hnlumpdhv2ibjp6iji9te4iot0 printText : Text ->{IO} Either Failure () - 833. -- #5si7baedo99eap6jgd9krvt7q4ak8s98t4ushnno8mgjp7u9li137ferm3dn11g4k3mds1m8n33sbuodrohstbm9hcqm1937tfj7iq8 + 842. -- #5si7baedo99eap6jgd9krvt7q4ak8s98t4ushnno8mgjp7u9li137ferm3dn11g4k3mds1m8n33sbuodrohstbm9hcqm1937tfj7iq8 putBytes : Handle -> Bytes ->{IO, Exception} () - 834. -- #gkd4pi7uossfe12b19s0mrr0a04v5vvhnfmq3qer3cu7jr24m5v4e1qu59mktrornbrrqgihsvkj1f29je971oqimpngiqgebkr9i58 + 843. -- #gkd4pi7uossfe12b19s0mrr0a04v5vvhnfmq3qer3cu7jr24m5v4e1qu59mktrornbrrqgihsvkj1f29je971oqimpngiqgebkr9i58 readFile : Text ->{IO, Exception} Bytes - 835. -- #ak95mrmd6jhaiikkr42qsvd5lu7au0mpveqm1e347mkr7s4f846apqhh203ei1p3pqi18dcuhuotf53l8p2ivsjs8octc1eenjdqb48 + 844. -- #ak95mrmd6jhaiikkr42qsvd5lu7au0mpveqm1e347mkr7s4f846apqhh203ei1p3pqi18dcuhuotf53l8p2ivsjs8octc1eenjdqb48 ready : Handle ->{IO, Exception} Boolean - 836. -- #gpogpcuoc1dsktoh5t50ofl6dc4vulm0fsqoeevuuoivbrin87ah166b8k8vq3s3977ha0p7np5mn198gglqkjj1gh7nbv31eb7dbqo + 845. -- #gpogpcuoc1dsktoh5t50ofl6dc4vulm0fsqoeevuuoivbrin87ah166b8k8vq3s3977ha0p7np5mn198gglqkjj1gh7nbv31eb7dbqo receive : Tls ->{IO, Exception} Bytes - 837. -- #7rctbhido3s7lm9tjb6dit94cg2jofasr6div31976q840e5va5j6tu6p0pugkt106mcjrtiqndimaknakrnssdo6ul0jef6a9nf1qo + 846. -- #7rctbhido3s7lm9tjb6dit94cg2jofasr6div31976q840e5va5j6tu6p0pugkt106mcjrtiqndimaknakrnssdo6ul0jef6a9nf1qo removeDirectory : Text ->{IO, Exception} () - 838. -- #710k006oln987ch4k1c986sb0jfqtpusp0a235te6cejhns51um6umr311ltgfiv80kt0s8sb8r0ic63gj2nvgbi66vq10s4ilkk5ng + 847. -- #710k006oln987ch4k1c986sb0jfqtpusp0a235te6cejhns51um6umr311ltgfiv80kt0s8sb8r0ic63gj2nvgbi66vq10s4ilkk5ng renameDirectory : Text -> Text ->{IO, Exception} () - 839. -- #vb50tjb967ic3mr4brs0pro9819ftcj4q48eoeal8gmk02f05isuqhn0accbi7rv07g3i4hjgntu2b2r8b9bn15mjc59v10u9c3gjdo + 848. -- #vb50tjb967ic3mr4brs0pro9819ftcj4q48eoeal8gmk02f05isuqhn0accbi7rv07g3i4hjgntu2b2r8b9bn15mjc59v10u9c3gjdo runTest : '{IO, TempDirs, Exception, Stream Result} a ->{IO} [Result] - 840. -- #ub9vp3rs8gh7kj9ksq0dbpoj22r61iq179co8tpgsj9m52n36qha52rm5hlht4hesgqfb8917cp1tk8jhgcft6sufgis6bgemmd57ag + 849. -- #ub9vp3rs8gh7kj9ksq0dbpoj22r61iq179co8tpgsj9m52n36qha52rm5hlht4hesgqfb8917cp1tk8jhgcft6sufgis6bgemmd57ag saveSelfContained : a -> Text ->{IO, Exception} () - 841. -- #6jriif58nb7gbb576kcabft4k4qaa74prd4dpsomokbqceust7p0gu0jlpar4o70qt987lkki2sj1pknkr0ggoif8fcvu2jg2uenqe8 + 850. -- #6jriif58nb7gbb576kcabft4k4qaa74prd4dpsomokbqceust7p0gu0jlpar4o70qt987lkki2sj1pknkr0ggoif8fcvu2jg2uenqe8 saveTestCase : Text -> Text -> (a -> Text) -> a ->{IO, Exception} () - 842. -- #uq87p0r1djq5clhkbimp3fc325e5kp3bv33dc8fpphotdqp95a0ps2c2ch8d2ftdpdualpq2oo9dmnka6kvnc9kvugs2538q62up4t0 + 851. -- #uq87p0r1djq5clhkbimp3fc325e5kp3bv33dc8fpphotdqp95a0ps2c2ch8d2ftdpdualpq2oo9dmnka6kvnc9kvugs2538q62up4t0 seekHandle : Handle -> SeekMode -> Int ->{IO, Exception} () - 843. -- #ftkuro0u0et9ahigdr1k38tl2sl7i0plm7cv5nciccdd71t6a64icla66ss0ufu7llfuj7cuvg3ms4ieel6penfi8gkahb9tm3sfhjo + 852. -- #ftkuro0u0et9ahigdr1k38tl2sl7i0plm7cv5nciccdd71t6a64icla66ss0ufu7llfuj7cuvg3ms4ieel6penfi8gkahb9tm3sfhjo send : Tls -> Bytes ->{IO, Exception} () - 844. -- #k6gmcn3qg50h49gealh8o7j7tp74rvhgn040kftsavd2cldqopcv9945olnooe04cqitgpvekpcbr5ccqjosg7r9gb1lagju5v9ln0o + 853. -- #k6gmcn3qg50h49gealh8o7j7tp74rvhgn040kftsavd2cldqopcv9945olnooe04cqitgpvekpcbr5ccqjosg7r9gb1lagju5v9ln0o serverSocket : Optional Text -> Text ->{IO, Exception} Socket - 845. -- #umje4ibrfv3c6vsjrdkbne1u7c8hg4ll9185m3frqr2rsr8738hp5fq12kepa28h63u9qi23stsegjp1hv0incr5djbl7ulp2s12d8g + 854. -- #umje4ibrfv3c6vsjrdkbne1u7c8hg4ll9185m3frqr2rsr8738hp5fq12kepa28h63u9qi23stsegjp1hv0incr5djbl7ulp2s12d8g setBuffering : Handle -> BufferMode ->{IO, Exception} () - 846. -- #je6s0pdkrg3mvphpg535pubchjd40mepki6ipum7498sma7pll9l89h6de65063bufihf2jb5ihepth2jahir8rs757ggfrnpp7fs7o + 855. -- #je6s0pdkrg3mvphpg535pubchjd40mepki6ipum7498sma7pll9l89h6de65063bufihf2jb5ihepth2jahir8rs757ggfrnpp7fs7o setEcho : Handle -> Boolean ->{IO, Exception} () - 847. -- #in06o7cfgnlmm6pvdtv0jv9hniahcli0fvh27o01ork1p77ro2v51rc05ts1h6p9mtffqld4ufs8klcc4bse1tsj93cu0na0bbiuqb0 + 856. -- #in06o7cfgnlmm6pvdtv0jv9hniahcli0fvh27o01ork1p77ro2v51rc05ts1h6p9mtffqld4ufs8klcc4bse1tsj93cu0na0bbiuqb0 snd : (a1, a) -> a - 848. -- #km3cpkvcnvcos0isfbnb7pb3s45ri5q42n74jmm9c4v1bcu8nlk63353u4ohfr7av4k00s4s180ddnqbam6a01thhlt2tie1hm5a9bo + 857. -- #km3cpkvcnvcos0isfbnb7pb3s45ri5q42n74jmm9c4v1bcu8nlk63353u4ohfr7av4k00s4s180ddnqbam6a01thhlt2tie1hm5a9bo socketAccept : Socket ->{IO, Exception} Socket - 849. -- #ubteu6e7h7om7o40e8mm1rcmp8uur7qn7p5d92gtp3q92rtr459nn3rff4i9q46o2o60tmh77i9vgu0pub768s9kvn9egtcds30nk88 + 858. -- #ubteu6e7h7om7o40e8mm1rcmp8uur7qn7p5d92gtp3q92rtr459nn3rff4i9q46o2o60tmh77i9vgu0pub768s9kvn9egtcds30nk88 socketPort : Socket ->{IO, Exception} Nat - 850. -- #3rp8h0dt7g60nrjdehuhqga9dmomti5rdqho7r1rm5rg5moet7kt3ieempo7c9urur752njachq6k48ggbic4ugbbv75jl2mfbk57a0 + 859. -- #3rp8h0dt7g60nrjdehuhqga9dmomti5rdqho7r1rm5rg5moet7kt3ieempo7c9urur752njachq6k48ggbic4ugbbv75jl2mfbk57a0 startsWith : Text -> Text -> Boolean - 851. -- #elsab3sc7p4c6bj73pgvklv0j7qu268rn5isv6micfp7ib8grjoustpqdq0pkd4a379mr5ijb8duu2q0n040osfurppp8pt8vaue2fo + 860. -- #elsab3sc7p4c6bj73pgvklv0j7qu268rn5isv6micfp7ib8grjoustpqdq0pkd4a379mr5ijb8duu2q0n040osfurppp8pt8vaue2fo stdout : Handle - 852. -- #rfi1v9429f9qluv533l2iba77aadttilrpmnhljfapfnfa6sru2nr8ibpqvib9nc4s4nb9s1as45upsfqfqe6ivqi2p82b2vd866it8 + 861. -- #rfi1v9429f9qluv533l2iba77aadttilrpmnhljfapfnfa6sru2nr8ibpqvib9nc4s4nb9s1as45upsfqfqe6ivqi2p82b2vd866it8 structural ability Stream a - 853. -- #s76vfp9t00khf3bvrg01h9u7gnqj5m62sere8ac97un79ojd82b71q2e0cllj002jn4r2g3qhjft40gkqotgor74v0iogkt3lfftlug + 862. -- #s76vfp9t00khf3bvrg01h9u7gnqj5m62sere8ac97un79ojd82b71q2e0cllj002jn4r2g3qhjft40gkqotgor74v0iogkt3lfftlug Stream.collect : '{e, Stream a} r ->{e} ([a], r) - 854. -- #abc5m7k74em3fk9et4lrj0ee2lsbvp8vp826josen26l1g3lh9ansb47b68efe1vhhi8f6l6kaircd5t4ihlbt0pq4nlipgde9rq8v8 + 863. -- #abc5m7k74em3fk9et4lrj0ee2lsbvp8vp826josen26l1g3lh9ansb47b68efe1vhhi8f6l6kaircd5t4ihlbt0pq4nlipgde9rq8v8 Stream.collect.handler : Request {Stream a} r -> ([a], r) - 855. -- #rfi1v9429f9qluv533l2iba77aadttilrpmnhljfapfnfa6sru2nr8ibpqvib9nc4s4nb9s1as45upsfqfqe6ivqi2p82b2vd866it8#0 + 864. -- #rfi1v9429f9qluv533l2iba77aadttilrpmnhljfapfnfa6sru2nr8ibpqvib9nc4s4nb9s1as45upsfqfqe6ivqi2p82b2vd866it8#0 Stream.emit : a ->{Stream a} () - 856. -- #mrhqdu5he7p8adejmvt4ss09apkbnu8jn66g4lpf0uas9dvm8goa6g65bo2u7s0175hrrofd6uqg7ogmduf928knfpkd12042k6o860 + 865. -- #mrhqdu5he7p8adejmvt4ss09apkbnu8jn66g4lpf0uas9dvm8goa6g65bo2u7s0175hrrofd6uqg7ogmduf928knfpkd12042k6o860 Stream.toList : '{Stream a} r -> [a] - 857. -- #t3klufmrq2bk8gg0o4lukenlmu0dkkcssq9l80m4p3dm6rqesrt51nrebfujfgco9h47f4e5nplmj7rvc3salvs65labd7nvj2fkne8 + 866. -- #t3klufmrq2bk8gg0o4lukenlmu0dkkcssq9l80m4p3dm6rqesrt51nrebfujfgco9h47f4e5nplmj7rvc3salvs65labd7nvj2fkne8 Stream.toList.handler : Request {Stream a} r -> [a] - 858. -- #pus3urtj4e1bhv5p5l16d7vnv4g2hso78pcfussnufkt3d53j7oaqde1ajvijr1g6f0cv2c4ice34g8g8n17hd7hql6hvl8sgcgu6s8 + 867. -- #pus3urtj4e1bhv5p5l16d7vnv4g2hso78pcfussnufkt3d53j7oaqde1ajvijr1g6f0cv2c4ice34g8g8n17hd7hql6hvl8sgcgu6s8 systemTime : '{IO, Exception} Nat - 859. -- #11mhfqj6rts8lm3im7saf44tn3km5bboqtu1td0udnaiit4qqg6ar1ecmccosl6gufsnp6sug3vcmgapsc58sgj7dh7rg8msq2qkj18 + 868. -- #11mhfqj6rts8lm3im7saf44tn3km5bboqtu1td0udnaiit4qqg6ar1ecmccosl6gufsnp6sug3vcmgapsc58sgj7dh7rg8msq2qkj18 structural ability TempDirs - 860. -- #11mhfqj6rts8lm3im7saf44tn3km5bboqtu1td0udnaiit4qqg6ar1ecmccosl6gufsnp6sug3vcmgapsc58sgj7dh7rg8msq2qkj18#0 + 869. -- #11mhfqj6rts8lm3im7saf44tn3km5bboqtu1td0udnaiit4qqg6ar1ecmccosl6gufsnp6sug3vcmgapsc58sgj7dh7rg8msq2qkj18#0 TempDirs.newTempDir : Text ->{TempDirs} Text - 861. -- #11mhfqj6rts8lm3im7saf44tn3km5bboqtu1td0udnaiit4qqg6ar1ecmccosl6gufsnp6sug3vcmgapsc58sgj7dh7rg8msq2qkj18#1 + 870. -- #11mhfqj6rts8lm3im7saf44tn3km5bboqtu1td0udnaiit4qqg6ar1ecmccosl6gufsnp6sug3vcmgapsc58sgj7dh7rg8msq2qkj18#1 TempDirs.removeDir : Text ->{TempDirs} () - 862. -- #ibj0sc16l6bd7r6ptft93jeocitrjod98g210beogdk30t3tb127fbe33vau29j0j4gt8mbs2asfs5rslgk0fl3o4did2t9oa8o5kf8 + 871. -- #ibj0sc16l6bd7r6ptft93jeocitrjod98g210beogdk30t3tb127fbe33vau29j0j4gt8mbs2asfs5rslgk0fl3o4did2t9oa8o5kf8 terminate : Tls ->{IO, Exception} () - 863. -- #iis8ph5ljlq8ijd9jsdlsga91fh1354fii7955l4v52mnvn71cd76maculs0eathrmtfjqh0knbc600kmvq6abj4k2ntnbh5ee10m2o + 872. -- #iis8ph5ljlq8ijd9jsdlsga91fh1354fii7955l4v52mnvn71cd76maculs0eathrmtfjqh0knbc600kmvq6abj4k2ntnbh5ee10m2o testAutoClean : '{IO} [Result] - 864. -- #k1prgid1t9d4fu6f60rct978khcuinkpq49ps95aqaimt2tfoa77fc0c8i3pmc8toeth1s98al3nosaa1mhbh2j2k2nvqivm0ks963o + 873. -- #k1prgid1t9d4fu6f60rct978khcuinkpq49ps95aqaimt2tfoa77fc0c8i3pmc8toeth1s98al3nosaa1mhbh2j2k2nvqivm0ks963o Text.fromUtf8 : Bytes ->{Exception} Text - 865. -- #32q9jqhmi8f08pec3hj0je4u7k52f9f1hdfsmn9ncg2kpki5da9dabigplvdcot3a00k7s5npc4n78psd6ojaumqjla259e9pqd4ov8 + 874. -- #32q9jqhmi8f08pec3hj0je4u7k52f9f1hdfsmn9ncg2kpki5da9dabigplvdcot3a00k7s5npc4n78psd6ojaumqjla259e9pqd4ov8 structural ability Throw e - 866. -- #32q9jqhmi8f08pec3hj0je4u7k52f9f1hdfsmn9ncg2kpki5da9dabigplvdcot3a00k7s5npc4n78psd6ojaumqjla259e9pqd4ov8#0 + 875. -- #32q9jqhmi8f08pec3hj0je4u7k52f9f1hdfsmn9ncg2kpki5da9dabigplvdcot3a00k7s5npc4n78psd6ojaumqjla259e9pqd4ov8#0 Throw.throw : e ->{Throw e} a - 867. -- #f6pkvs6ukf8ngh2j8lm935p1bqadso76o7e3t0j1ukupjh1rg0m1rhtp7u492sq17p3bkbintbnjehc1cqs33qlhnfkoihf5uee4ug0 + 876. -- #f6pkvs6ukf8ngh2j8lm935p1bqadso76o7e3t0j1ukupjh1rg0m1rhtp7u492sq17p3bkbintbnjehc1cqs33qlhnfkoihf5uee4ug0 uncurry : (i1 ->{g1} i ->{g} o) -> (i1, i) ->{g1, g} o - 868. -- #u1o44hd0cdlfa8racf458sahdmgea409k8baajgc5k7bqukf2ak5ggs2ped0u3h85v99pgefgb9r7ct2dv4nn9eihjghnqf30p4l57g + 877. -- #u1o44hd0cdlfa8racf458sahdmgea409k8baajgc5k7bqukf2ak5ggs2ped0u3h85v99pgefgb9r7ct2dv4nn9eihjghnqf30p4l57g Value.transitiveDeps : Value ->{IO} [(Link.Term, Code)] - 869. -- #o5bg5el7ckak28ib98j5b6rt26bqbprpddd1brrg3s18qahhbbe3uohufjjnt5eenvtjg0hrvnvpra95jmdppqrovvmcfm1ih2k7guo + 878. -- #o5bg5el7ckak28ib98j5b6rt26bqbprpddd1brrg3s18qahhbbe3uohufjjnt5eenvtjg0hrvnvpra95jmdppqrovvmcfm1ih2k7guo void : x -> () - 870. -- #b4pssu6mf30r4irqj43vvgbc6geq8pp7eg4o2erl948qp3nskp6io5damjj54o2eq9q76mrhsijr1q1d0bna4soed3oggddfvdajaj8 + 879. -- #b4pssu6mf30r4irqj43vvgbc6geq8pp7eg4o2erl948qp3nskp6io5damjj54o2eq9q76mrhsijr1q1d0bna4soed3oggddfvdajaj8 writeFile : Text -> Bytes ->{IO, Exception} () - 871. -- #lcmj2envm11lrflvvcl290lplhvbccv82utoej0lg0eomhmsf2vrv8af17k6if7ff98fp1b13rkseng3fng4stlr495c8dn3gn4k400 + 880. -- #lcmj2envm11lrflvvcl290lplhvbccv82utoej0lg0eomhmsf2vrv8af17k6if7ff98fp1b13rkseng3fng4stlr495c8dn3gn4k400 |> : a -> (a ->{g} t) ->{g} t ``` diff --git a/unison-src/transcripts/idempotent/alias-term.md b/unison-src/transcripts/idempotent/alias-term.md index 3b046585f4..64f932288b 100644 --- a/unison-src/transcripts/idempotent/alias-term.md +++ b/unison-src/transcripts/idempotent/alias-term.md @@ -12,7 +12,7 @@ project/main> alias.term lib.builtins.bug foo project/main> ls . 1. foo (a -> b) - 2. lib/ (650 terms, 94 types) + 2. lib/ (657 terms, 96 types) ``` It won't create a conflicted name, though. @@ -29,7 +29,7 @@ project/main> alias.term lib.builtins.todo foo project/main> ls . 1. foo (a -> b) - 2. lib/ (650 terms, 94 types) + 2. lib/ (657 terms, 96 types) ``` You can use `debug.alias.term.force` for that. @@ -43,5 +43,5 @@ project/main> ls . 1. foo (a -> b) 2. foo (a -> b) - 3. lib/ (650 terms, 94 types) + 3. lib/ (657 terms, 96 types) ``` diff --git a/unison-src/transcripts/idempotent/alias-type.md b/unison-src/transcripts/idempotent/alias-type.md index 7f544deb02..f88d0b72ba 100644 --- a/unison-src/transcripts/idempotent/alias-type.md +++ b/unison-src/transcripts/idempotent/alias-type.md @@ -12,7 +12,7 @@ project/main> alias.type lib.builtins.Nat Foo project/main> ls . 1. Foo (builtin type) - 2. lib/ (650 terms, 94 types) + 2. lib/ (657 terms, 96 types) ``` It won't create a conflicted name, though. @@ -29,7 +29,7 @@ project/main> alias.type lib.builtins.Int Foo project/main> ls . 1. Foo (builtin type) - 2. lib/ (650 terms, 94 types) + 2. lib/ (657 terms, 96 types) ``` You can use `debug.alias.type.force` for that. @@ -43,5 +43,5 @@ project/main> ls . 1. Foo (builtin type) 2. Foo (builtin type) - 3. lib/ (650 terms, 94 types) + 3. lib/ (657 terms, 96 types) ``` diff --git a/unison-src/transcripts/idempotent/builtins-merge.md b/unison-src/transcripts/idempotent/builtins-merge.md index e5b01d8c7a..c1ec6e5d4e 100644 --- a/unison-src/transcripts/idempotent/builtins-merge.md +++ b/unison-src/transcripts/idempotent/builtins-merge.md @@ -38,57 +38,59 @@ scratch/main> ls builtins 29. IsPropagated/ (1 term) 30. IsTest (type) 31. IsTest/ (1 term) - 32. Link (type) - 33. Link/ (3 terms, 2 types) - 34. List (builtin type) - 35. List/ (10 terms) - 36. ListenSocket (builtin type) - 37. Map (type) - 38. Map/ (2 terms) - 39. MutableArray (builtin type) - 40. MutableArray/ (6 terms) - 41. MutableByteArray (builtin type) - 42. MutableByteArray/ (14 terms) - 43. Nat (builtin type) - 44. Nat/ (28 terms) - 45. Optional (type) - 46. Optional/ (2 terms) - 47. Pattern (builtin type) - 48. Pattern/ (11 terms) - 49. Ref (builtin type) - 50. Ref/ (2 terms) - 51. Request (builtin type) - 52. RewriteCase (type) - 53. RewriteCase/ (1 term) - 54. RewriteSignature (type) - 55. RewriteSignature/ (1 term) - 56. RewriteTerm (type) - 57. RewriteTerm/ (1 term) - 58. Rewrites (type) - 59. Rewrites/ (1 term) - 60. Scope (builtin type) - 61. Scope/ (6 terms) - 62. SeqView (type) - 63. SeqView/ (2 terms) - 64. Set (type) - 65. Set/ (1 term) - 66. Socket/ (1 term) - 67. Test/ (2 terms, 1 type) - 68. Text (builtin type) - 69. Text/ (36 terms) - 70. ThreadId/ (1 term) - 71. Tuple (type) - 72. Tuple/ (1 term) - 73. UDPSocket (builtin type) - 74. Unit (type) - 75. Unit/ (1 term) - 76. Universal/ (7 terms) - 77. Value (builtin type) - 78. Value/ (5 terms) - 79. bug (a -> b) - 80. crypto/ (17 terms, 2 types) - 81. io2/ (146 terms, 32 types) - 82. metadata/ (2 terms) - 83. todo (a -> b) - 84. unsafe/ (1 term) + 32. Json (type) + 33. Json/ (7 terms, 1 type) + 34. Link (type) + 35. Link/ (3 terms, 2 types) + 36. List (builtin type) + 37. List/ (10 terms) + 38. ListenSocket (builtin type) + 39. Map (type) + 40. Map/ (2 terms) + 41. MutableArray (builtin type) + 42. MutableArray/ (6 terms) + 43. MutableByteArray (builtin type) + 44. MutableByteArray/ (14 terms) + 45. Nat (builtin type) + 46. Nat/ (28 terms) + 47. Optional (type) + 48. Optional/ (2 terms) + 49. Pattern (builtin type) + 50. Pattern/ (11 terms) + 51. Ref (builtin type) + 52. Ref/ (2 terms) + 53. Request (builtin type) + 54. RewriteCase (type) + 55. RewriteCase/ (1 term) + 56. RewriteSignature (type) + 57. RewriteSignature/ (1 term) + 58. RewriteTerm (type) + 59. RewriteTerm/ (1 term) + 60. Rewrites (type) + 61. Rewrites/ (1 term) + 62. Scope (builtin type) + 63. Scope/ (6 terms) + 64. SeqView (type) + 65. SeqView/ (2 terms) + 66. Set (type) + 67. Set/ (1 term) + 68. Socket/ (1 term) + 69. Test/ (2 terms, 1 type) + 70. Text (builtin type) + 71. Text/ (36 terms) + 72. ThreadId/ (1 term) + 73. Tuple (type) + 74. Tuple/ (1 term) + 75. UDPSocket (builtin type) + 76. Unit (type) + 77. Unit/ (1 term) + 78. Universal/ (7 terms) + 79. Value (builtin type) + 80. Value/ (5 terms) + 81. bug (a -> b) + 82. crypto/ (17 terms, 2 types) + 83. io2/ (146 terms, 32 types) + 84. metadata/ (2 terms) + 85. todo (a -> b) + 86. unsafe/ (1 term) ``` diff --git a/unison-src/transcripts/idempotent/emptyCodebase.md b/unison-src/transcripts/idempotent/emptyCodebase.md index 46fe2f7b73..fdbaf439d1 100644 --- a/unison-src/transcripts/idempotent/emptyCodebase.md +++ b/unison-src/transcripts/idempotent/emptyCodebase.md @@ -21,7 +21,7 @@ scratch/main> builtins.merge lib.builtins scratch/main> ls lib - 1. builtins/ (476 terms, 76 types) + 1. builtins/ (483 terms, 78 types) ``` And for a limited time, you can get even more builtin goodies: @@ -33,8 +33,8 @@ scratch/main> builtins.mergeio lib.builtinsio scratch/main> ls lib - 1. builtins/ (476 terms, 76 types) - 2. builtinsio/ (650 terms, 94 types) + 1. builtins/ (483 terms, 78 types) + 2. builtinsio/ (657 terms, 96 types) ``` More typically, you'd start out by pulling `base`. diff --git a/unison-src/transcripts/idempotent/fix1532.md b/unison-src/transcripts/idempotent/fix1532.md index 136c4eb16e..44175d6298 100644 --- a/unison-src/transcripts/idempotent/fix1532.md +++ b/unison-src/transcripts/idempotent/fix1532.md @@ -42,7 +42,7 @@ Let's see what we have created... scratch/main> ls . 1. bar/ (1 term) - 2. builtin/ (476 terms, 76 types) + 2. builtin/ (483 terms, 78 types) 3. foo/ (2 terms) ``` diff --git a/unison-src/transcripts/idempotent/input-parse-errors.md b/unison-src/transcripts/idempotent/input-parse-errors.md index bd969ebda0..ebc92022c6 100644 --- a/unison-src/transcripts/idempotent/input-parse-errors.md +++ b/unison-src/transcripts/idempotent/input-parse-errors.md @@ -33,7 +33,7 @@ scratch/main> add . scratch/main> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) scratch/main> add 1 @@ -41,7 +41,7 @@ scratch/main> add 1 scratch/main> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) scratch/main> add 2 diff --git a/unison-src/transcripts/idempotent/move-all.md b/unison-src/transcripts/idempotent/move-all.md index 5ae8c812cd..af589402a4 100644 --- a/unison-src/transcripts/idempotent/move-all.md +++ b/unison-src/transcripts/idempotent/move-all.md @@ -82,7 +82,7 @@ scratch/main> ls . 1. Bar (Nat) 2. Bar (type) 3. Bar/ (4 terms, 1 type) - 4. builtin/ (476 terms, 76 types) + 4. builtin/ (483 terms, 78 types) scratch/main> ls Bar @@ -144,7 +144,7 @@ z/main> move bonk zonk z/main> ls . - 1. builtin/ (476 terms, 76 types) + 1. builtin/ (483 terms, 78 types) 2. zonk (Nat) ``` @@ -184,7 +184,7 @@ a/main> move bonk zonk a/main> ls . - 1. builtin/ (476 terms, 76 types) + 1. builtin/ (483 terms, 78 types) 2. zonk/ (1 term) a/main> view zonk.zonk diff --git a/unison-src/transcripts/idempotent/names.md b/unison-src/transcripts/idempotent/names.md index f88bc4ac98..522c2d524e 100644 --- a/unison-src/transcripts/idempotent/names.md +++ b/unison-src/transcripts/idempotent/names.md @@ -233,6 +233,7 @@ scratch/main> names max /invalid1 /invalid2 + Boolean foo baz cc.baz, dd.baz ##Boolean Type lib.builtins.Boolean + #j0uel16uhe#1 Term lib.builtins.Json.Boolean #cmihlkoddu#0 Term z.baz.Boolean 'foo': diff --git a/unison-src/transcripts/idempotent/reflog.md b/unison-src/transcripts/idempotent/reflog.md index 2be2a8ccf4..27fd18e7e2 100644 --- a/unison-src/transcripts/idempotent/reflog.md +++ b/unison-src/transcripts/idempotent/reflog.md @@ -84,9 +84,9 @@ scratch/main> reflog history. Branch Hash Description - 1. scratch/main #ug7l040g2r add - 2. scratch/main #5gbhpddvrn add - 3. scratch/main #q0sddm3uvt builtins.merge scratch/main:lib.builtins + 1. scratch/main #q6hn6o6ko5 add + 2. scratch/main #rln1cnmdtn add + 3. scratch/main #h1hqblg747 builtins.merge scratch/main:lib.builtins 4. scratch/main #sg60bvjo91 Project Created ``` @@ -103,11 +103,11 @@ scratch/main> project.reflog history. Branch Hash Description - 1. scratch/other #vgof0gvg87 alias.term y scratch/other:z - 2. scratch/other #ug7l040g2r Branch created from scratch/main - 3. scratch/main #ug7l040g2r add - 4. scratch/main #5gbhpddvrn add - 5. scratch/main #q0sddm3uvt builtins.merge scratch/main:lib.builtins + 1. scratch/other #puj83ii6li alias.term y scratch/other:z + 2. scratch/other #q6hn6o6ko5 Branch created from scratch/main + 3. scratch/main #q6hn6o6ko5 add + 4. scratch/main #rln1cnmdtn add + 5. scratch/main #h1hqblg747 builtins.merge scratch/main:lib.builtins 6. scratch/main #sg60bvjo91 Project Created ``` @@ -124,13 +124,13 @@ scratch/main> reflog.global history. Branch Hash Description - 1. newproject/main #4jtcif9d45 alias.term lib.builtins.Nat newproject/main:MyNat - 2. newproject/main #q0sddm3uvt builtins.merge newproject/main:lib.builtins + 1. newproject/main #e6rjp9oat6 alias.term lib.builtins.Nat newproject/main:MyNat + 2. newproject/main #h1hqblg747 builtins.merge newproject/main:lib.builtins 3. newproject/main #sg60bvjo91 Branch Created - 4. scratch/other #vgof0gvg87 alias.term y scratch/other:z - 5. scratch/other #ug7l040g2r Branch created from scratch/main - 6. scratch/main #ug7l040g2r add - 7. scratch/main #5gbhpddvrn add - 8. scratch/main #q0sddm3uvt builtins.merge scratch/main:lib.builtins + 4. scratch/other #puj83ii6li alias.term y scratch/other:z + 5. scratch/other #q6hn6o6ko5 Branch created from scratch/main + 6. scratch/main #q6hn6o6ko5 add + 7. scratch/main #rln1cnmdtn add + 8. scratch/main #h1hqblg747 builtins.merge scratch/main:lib.builtins 9. scratch/main #sg60bvjo91 Project Created ``` diff --git a/unison-src/transcripts/idempotent/reset.md b/unison-src/transcripts/idempotent/reset.md index a93862ea7c..5b2526721e 100644 --- a/unison-src/transcripts/idempotent/reset.md +++ b/unison-src/transcripts/idempotent/reset.md @@ -41,19 +41,19 @@ scratch/main> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #4vemrriv24 + ⊙ 1. #ddptqmmbs0 + Adds / updates: def - ⊙ 2. #rmq39agees + ⊙ 2. #mssjisr2u1 + Adds / updates: def - □ 3. #6lfucgcbgh (start of history) + □ 3. #t8pgsm2e1u (start of history) scratch/main> reset 2 @@ -69,13 +69,13 @@ scratch/main> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #rmq39agees + ⊙ 1. #mssjisr2u1 + Adds / updates: def - □ 2. #6lfucgcbgh (start of history) + □ 2. #t8pgsm2e1u (start of history) ``` Can reset to a value from reflog by number. @@ -91,10 +91,10 @@ scratch/main> reflog history. Branch Hash Description - 1. scratch/main #rmq39agees reset rmq39ageeso4t2660r44jm85tjt73ebh6590589pof9kjc2crln24s... - 2. scratch/main #4vemrriv24 update - 3. scratch/main #rmq39agees update - 4. scratch/main #6lfucgcbgh builtins.merge + 1. scratch/main #mssjisr2u1 reset mssjisr2u17i28gbdk55adhtnbfksleu9vud0jnpoqsgft2v6kkqt4... + 2. scratch/main #ddptqmmbs0 update + 3. scratch/main #mssjisr2u1 update + 4. scratch/main #t8pgsm2e1u builtins.merge 5. scratch/main #sg60bvjo91 Project Created -- Reset the current branch to the first history element @@ -113,19 +113,19 @@ scratch/main> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #4vemrriv24 + ⊙ 1. #ddptqmmbs0 + Adds / updates: def - ⊙ 2. #rmq39agees + ⊙ 2. #mssjisr2u1 + Adds / updates: def - □ 3. #6lfucgcbgh (start of history) + □ 3. #t8pgsm2e1u (start of history) ``` # reset branch diff --git a/unison-src/transcripts/idempotent/undo.md b/unison-src/transcripts/idempotent/undo.md index 9cf3cbc775..6b16618e60 100644 --- a/unison-src/transcripts/idempotent/undo.md +++ b/unison-src/transcripts/idempotent/undo.md @@ -19,7 +19,7 @@ scratch/main> add scratch/main> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) scratch/main> alias.term x y @@ -28,7 +28,7 @@ scratch/main> alias.term x y scratch/main> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) 3. y (Nat) @@ -37,7 +37,7 @@ scratch/main> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #a43uem9vjp + ⊙ 1. #j10na2783v + Adds / updates: @@ -48,13 +48,13 @@ scratch/main> history Original name New name(s) x y - ⊙ 2. #5gbhpddvrn + ⊙ 2. #rln1cnmdtn + Adds / updates: x - □ 3. #q0sddm3uvt (start of history) + □ 3. #h1hqblg747 (start of history) scratch/main> undo @@ -67,7 +67,7 @@ scratch/main> undo scratch/main> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) scratch/main> history @@ -75,13 +75,13 @@ scratch/main> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #5gbhpddvrn + ⊙ 1. #rln1cnmdtn + Adds / updates: x - □ 2. #q0sddm3uvt (start of history) + □ 2. #h1hqblg747 (start of history) ``` ----- @@ -105,7 +105,7 @@ scratch/branch1> add scratch/branch1> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) scratch/branch1> alias.term x y @@ -114,7 +114,7 @@ scratch/branch1> alias.term x y scratch/branch1> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) 3. y (Nat) @@ -123,7 +123,7 @@ scratch/branch1> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #a43uem9vjp + ⊙ 1. #j10na2783v + Adds / updates: @@ -134,13 +134,13 @@ scratch/branch1> history Original name New name(s) x y - ⊙ 2. #5gbhpddvrn + ⊙ 2. #rln1cnmdtn + Adds / updates: x - □ 3. #q0sddm3uvt (start of history) + □ 3. #h1hqblg747 (start of history) -- Make some changes on an unrelated branch @@ -163,7 +163,7 @@ scratch/branch1> undo scratch/branch1> ls . - 1. lib/ (476 terms, 76 types) + 1. lib/ (483 terms, 78 types) 2. x (Nat) scratch/branch1> history @@ -171,13 +171,13 @@ scratch/branch1> history Note: The most recent namespace hash is immediately below this message. - ⊙ 1. #5gbhpddvrn + ⊙ 1. #rln1cnmdtn + Adds / updates: x - □ 2. #q0sddm3uvt (start of history) + □ 2. #h1hqblg747 (start of history) ``` ----- diff --git a/unison-src/transcripts/idempotent/upgrade-happy-path.md b/unison-src/transcripts/idempotent/upgrade-happy-path.md index 8ee7c85dcb..a927fb94c0 100644 --- a/unison-src/transcripts/idempotent/upgrade-happy-path.md +++ b/unison-src/transcripts/idempotent/upgrade-happy-path.md @@ -61,7 +61,7 @@ proj/main> upgrade old new proj/main> ls lib - 1. builtin/ (476 terms, 76 types) + 1. builtin/ (483 terms, 78 types) 2. new/ (1 term) proj/main> view thingy diff --git a/unison-src/transcripts/idempotent/upgrade-sad-path.md b/unison-src/transcripts/idempotent/upgrade-sad-path.md index 794c9b6040..a415a1a232 100644 --- a/unison-src/transcripts/idempotent/upgrade-sad-path.md +++ b/unison-src/transcripts/idempotent/upgrade-sad-path.md @@ -99,7 +99,7 @@ proj/main> view thingy proj/main> ls lib - 1. builtin/ (476 terms, 76 types) + 1. builtin/ (483 terms, 78 types) 2. new/ (1 term) proj/main> branches