diff --git a/bootstrap/newt.js b/bootstrap/newt.js index 68bbede..90685d4 100644 --- a/bootstrap/newt.js +++ b/bootstrap/newt.js @@ -2,7 +2,7 @@ const bouncer = (f,ini) => { let obj = ini; while (obj.tag) obj = f(obj); return obj.h0 }; const Lib_Types_errorMsg = ( _$$0 ) => { switch (_$$0.tag) { case 1: return _$$0.h2; case 0: return _$$0.h1; } }; const Lib_Types_Lib_Common_HasFC$20Lib_Common_Error$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { case 1: return _$$0.h0; case 0: return _$$0.h0; } }; -const Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow = ( _$$0 ) => ((((((("") + (_$$0.h0)) + (":(")) + (Prelude_showInt((_$$0.h1.h2) + (1)))) + (", ")) + (Prelude_showInt((_$$0.h1.h3) + (1)))) + (")")); +const Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow = ( _$$0 ) => ((((((((((("") + (_$$0.h0)) + (":(")) + (Prelude_showInt((_$$0.h1.h0) + (1)))) + (":")) + (Prelude_showInt((_$$0.h1.h1) + (1)))) + ("-")) + (Prelude_showInt((_$$0.h1.h2) + (1)))) + (":")) + (Prelude_showInt((_$$0.h1.h3) + (2)))) + (")")); const Prelude_showInt = (i) => String(i); const Node_exitFailure = (_, msg) => { console.log(msg); @@ -14,14 +14,15 @@ const Prelude_primPutStrLn = (s) => (w) => { console.log(s) return Prelude_MkIORes(null,Prelude_MkUnit,w) }; -const Prelude__$2C_ = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); +const Lib_Common_MkBounds = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Common_MkFC = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); -const Lib_Common_emptyFC = Lib_Common_MkFC("", Prelude__$2C_(null, null, 0, 0)); +const Lib_Common_emptyFC = Lib_Common_MkFC("", Lib_Common_MkBounds(0, 0, 0, 0)); const Lib_Common_E = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); const Prelude_Left = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); const Lib_Types_MkM = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); const Main_writeSource = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Compile_compile, ( docs ) => { const src = Prelude_joinBy("\n", Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, Prelude__$3A$3A_(null, "\"use strict\";", Prelude__$3A$3A_(null, "const bouncer = (f,ini) => { let obj = ini; while (obj.tag) obj = f(obj); return obj.h0 };", Prelude_Nil(null))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$5 ) => (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Prettier_noAlt(_$$5))), Prelude_Lin(null))), docs))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Node_writeFile(_$$0, src)), ( $$sc ) => { switch ($$sc.tag) { case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); case 0: return Node_exitFailure(null, $$sc.h2); } }); })); const Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn = ( a$$0, _$$1 ) => (Lib_Types_MkM(null, ( tc ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Right(null, null, Prelude__$2C_(null, null, tc, _$$1)), eta))))); +const Prelude__$2C_ = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); const Prelude_Right = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); const Node_writeFile = (fn, content) => (w) => { let fs = require('fs') @@ -30,8 +31,7 @@ const Node_writeFile = (fn, content) => (w) => { fs.writeFileSync(fn, content, 'utf8') result = Prelude_Right(null, null, Prelude_MkUnit) } catch (e) { - let err = ""+e - result = Prelude_Left(null, null, e) + result = Prelude_Left(null, null, e+"") } return Prelude_MkIORes(null, result, w) }; @@ -506,13 +506,13 @@ const Lib_Common_renderJson_renderPair = ( _, _1, _2, _$$3 ) => ((Lib_Common_quo const Prelude_ite = ( a$$0, _$$1, _$$2, _$$3 ) => { switch (_$$1) { case 1: return _$$3; case 0: return _$$2; } }; const Main_jsonTopContext_jsonDef = ( _, _$$1 ) => (Lib_Common_JsonObj(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "fc", Lib_Common_Lib_Common_ToJSON$20Lib_Common_FC$2CtoJson(_$$1.h0)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "name", Lib_Common_JsonStr(_$$1.h1.h1)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "type", Lib_Common_JsonStr(Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(null), _$$1.h2))), Prelude_Lin(null)))), Prelude_Nil(null)))))); const Lib_Common_JsonStr = ( h0 ) => ({ tag: 1, h0: h0 }); -const Lib_Common_Lib_Common_ToJSON$20Lib_Common_FC$2CtoJson = ( _$$0 ) => (Lib_Common_JsonObj(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "file", Lib_Common_JsonStr(_$$0.h0)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "line", Lib_Common_JsonInt(_$$0.h1.h2)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "col", Lib_Common_JsonInt(_$$0.h1.h3)), Prelude_Nil(null)))))); +const Lib_Common_Lib_Common_ToJSON$20Lib_Common_FC$2CtoJson = ( _$$0 ) => (Lib_Common_JsonObj(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "file", Lib_Common_JsonStr(_$$0.h0)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "line", Lib_Common_JsonInt(_$$0.h1.h0)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "col", Lib_Common_JsonInt(_$$0.h1.h1)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "endline", Lib_Common_JsonInt(_$$0.h1.h2)), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "endcol", Lib_Common_JsonInt(_$$0.h1.h3)), Prelude_Nil(null)))))))); const Lib_Common_JsonInt = ( h0 ) => ({ tag: 3, h0: h0 }); const Lib_Common_JsonObj = ( h0 ) => ({ tag: 0, h0: h0 }); const Lib_Common_JsonArray = ( h0 ) => ({ tag: 4, h0: h0 }); const Data_SortedMap_listValues = ( k$$0, v$$1, _$$2 ) => (Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$21 ) => (_$$21.h3), Data_SortedMap_toList(null, null, _$$2))); const Main_jsonTopContext = Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => { const defs = Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( mod ) => (Data_SortedMap_listValues(null, null, mod.h1)), Data_SortedMap_listValues(null, null, top.h0)), ( _$$1 ) => (_$$1)); return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Common_JsonObj(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "context", Lib_Common_JsonArray(Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Main_jsonTopContext_jsonDef(null, eta)), defs))), Prelude_Nil(null)))); }); -const Main_processFile = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn((("*** Process ") + (_$$0)) + (""))), ( _ ) => { const parts = Data_List1_split1(_$$0, "/"); const sc$$3 = Data_List1_unsnoc(null, parts); let dir; const sc$$8 = Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String, sc$$3.h2, Prelude_Nil(null)); switch (sc$$8) { case 1: { dir = Prelude_joinBy("/", sc$$3.h2); break; } case 0: { dir = "."; break; } } const sc$$9 = Data_List1_splitFileName(sc$$3.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(1, ( _1 ) => ((((((("") + (dir)) + (" ")) + (sc$$9.h2)) + (" ")) + (sc$$9.h3)) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Node_readFile(_$$0)), ( $$sc ) => { switch ($$sc.tag) { case 1: { const sc$$20 = Lib_Tokenizer_tokenise(_$$0, $$sc.h2); switch (sc$$20.tag) { case 1: { const sc$$24 = Lib_Parser_Impl_partialParse(null, _$$0, Lib_Parser_parseModHeader, Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))), sc$$20.h2); switch (sc$$24.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Util_getBaseDir(_$$0, sc$$24.h2.h2.h3), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Int", Prelude_Nothing(null))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "String", Prelude_Nothing(null))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Char", Prelude_Nothing(null))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_TopContext_setDef(Lib_Common_QN(Lib_Common_primNS, "PiType"), Lib_Common_emptyFC, Lib_Types_Erased(Lib_Common_emptyFC), Lib_Types_PrimFn("(h0, h1) => ({ tag: \"PiType\", h0, h1 });", (1) + ((1) + (0)), Prelude_Nil(null)), Prelude_Nil(null)), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => { const modules = Data_SortedMap_updateMap(null, null, Lib_Common_primNS, Lib_Types_MkModCtx("", top.h4, Lib_Types_MC(Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(null), 0, 0), top.h8), top.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, Prelude__$3A$3A_(null, Lib_Common_primNS, Prelude_Nil(null)), Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(null), Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), tc.h5, tc.h6, tc.h7, tc.h8)))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_processModule(Lib_Common_emptyFC, $$sc1.h2, Prelude_Nil(null), $$sc1.h3), ( src ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_showErrors(_$$0, src), ( _7 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0))))))))); }))))))))))); case 0: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, sc$$24.h2.h2), eta)))); } break; } case 0: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, sc$$20.h2), eta)))); } break; } case 0: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), (((("error reading ") + (_$$0)) + (": ")) + ($$sc.h2)) + (""))), eta)))); } }))); })); +const Main_processFile = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn((("*** Process ") + (_$$0)) + (""))), ( _ ) => { const parts = Data_List1_split1(_$$0, "/"); const sc$$3 = Data_List1_unsnoc(null, parts); let dir; const sc$$8 = Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String, sc$$3.h2, Prelude_Nil(null)); switch (sc$$8) { case 1: { dir = Prelude_joinBy("/", sc$$3.h2); break; } case 0: { dir = "."; break; } } const sc$$9 = Data_List1_splitFileName(sc$$3.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(1, ( _1 ) => ((((((("") + (dir)) + (" ")) + (sc$$9.h2)) + (" ")) + (sc$$9.h3)) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Node_readFile(_$$0)), ( $$sc ) => { switch ($$sc.tag) { case 1: { const sc$$20 = Lib_Tokenizer_tokenise(_$$0, $$sc.h2); switch (sc$$20.tag) { case 1: { const sc$$24 = Lib_Parser_Impl_partialParse(null, _$$0, Lib_Parser_parseModHeader, Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))), sc$$20.h2); switch (sc$$24.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Util_getBaseDir(_$$0, sc$$24.h2.h2.h2, sc$$24.h2.h2.h3), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Int", Prelude_Nothing(null))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "String", Prelude_Nothing(null))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Char", Prelude_Nothing(null))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_TopContext_setDef(Lib_Common_QN(Lib_Common_primNS, "PiType"), Lib_Common_emptyFC, Lib_Types_Erased(Lib_Common_emptyFC), Lib_Types_PrimFn("(h0, h1) => ({ tag: \"PiType\", h0, h1 });", (1) + ((1) + (0)), Prelude_Nil(null)), Prelude_Nil(null)), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => { const modules = Data_SortedMap_updateMap(null, null, Lib_Common_primNS, Lib_Types_MkModCtx("", top.h4, Lib_Types_MC(Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(null), 0, 0), top.h8), top.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, Prelude__$3A$3A_(null, Lib_Common_primNS, Prelude_Nil(null)), Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(null), Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), tc.h5, tc.h6, tc.h7, tc.h8)))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_processModule(Lib_Common_emptyFC, $$sc1.h2, Prelude_Nil(null), $$sc1.h3), ( src ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_showErrors(_$$0, src), ( _7 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0))))))))); }))))))))))); case 0: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, sc$$24.h2.h2), eta)))); } break; } case 0: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, sc$$20.h2), eta)))); } break; } case 0: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Lib_Common_MkBounds(0, 0, 0, 0)), (((("error reading ") + (_$$0)) + (": ")) + ($$sc.h2)) + (""))), eta)))); } }))); })); const Main_showErrors = ( _$$0, _$$1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Data_IORef_primReadIORef(null, top.h7)), ( $$sc ) => { switch ($$sc.tag) { case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( _$$5 ) => (Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn(Lib_Common_showError(_$$1, _$$5)))), $$sc), ( _ ) => (Node_exitFailure(null, "Compile failed"))); } })))); const Lib_Common_showError = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 1: return ((((((("ERROR at ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(_$$1.h0))) + (": Postpone ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1.h1))) + (" ")) + (_$$1.h2)) + ("\n")) + (Lib_Common_showError_go(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, null, 0, Prelude_lines(_$$0))); case 0: return ((((("ERROR at ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(_$$1.h0))) + (": ")) + (_$$1.h1)) + ("\n")) + (Lib_Common_showError_go$27(_$$0, _$$1, _$$1.h0, _$$1.h1, null, 0, Prelude_lines(_$$0))); } }; const Prelude_arrayToList = (a,arr) => { @@ -524,9 +524,9 @@ const Prelude_arrayToList = (a,arr) => { }; const Prelude_lines = (s) => Prelude_arrayToList(null,s.split('\n')); const Lib_Common_showError_go$27 = ( _, _1, _2, _3, _4, _$$5, _$$6 ) => (bouncer(Lib_Common_REC_showError_go$27, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _$$5, h6: _$$6 })); -const Lib_Common_REC_showError_go$27 = ( arg ) => { switch (arg.h6.tag) { case 1: { const sc$$10 = Prelude_jsEq(null, arg.h5, arg.h2.h1.h2); switch (sc$$10) { case 1: { const sc$$11 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, (arg.h2.h1.h2) - (3), arg.h5), 0); switch (sc$$11) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: (arg.h5) + (1), h6: arg.h6.h2 }; case 0: return { tag: 0, h0: (" ") + ((arg.h6.h1) + (("\n") + (Lib_Common_showError_go$27(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, (arg.h5) + (1), arg.h6.h2)))) }; } break; } case 0: return { tag: 0, h0: ((((" ") + (arg.h6.h1)) + ("\n ")) + (Prelude_replicate(Prelude_intToNat(arg.h2.h1.h3), " "))) + ("^\n") }; } break; } case 0: return { tag: 0, h0: "" }; } }; +const Lib_Common_REC_showError_go$27 = ( arg ) => { switch (arg.h6.tag) { case 1: { const sc$$10 = Prelude_jsEq(null, arg.h5, arg.h2.h1.h0); switch (sc$$10) { case 1: { const sc$$11 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, (arg.h2.h1.h0) - (3), arg.h5), 0); switch (sc$$11) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: (arg.h5) + (1), h6: arg.h6.h2 }; case 0: return { tag: 0, h0: (" ") + ((arg.h6.h1) + (("\n") + (Lib_Common_showError_go$27(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, (arg.h5) + (1), arg.h6.h2)))) }; } break; } case 0: return { tag: 0, h0: ((((" ") + (arg.h6.h1)) + ("\n ")) + (Prelude_replicate(Prelude_intToNat(arg.h2.h1.h1), " "))) + ("^\n") }; } break; } case 0: return { tag: 0, h0: "" }; } }; const Lib_Common_showError_go = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => (bouncer(Lib_Common_REC_showError_go, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _$$6, h7: _$$7 })); -const Lib_Common_REC_showError_go = ( arg ) => { switch (arg.h7.tag) { case 1: { const sc$$11 = Prelude_jsEq(null, arg.h6, arg.h2.h1.h2); switch (sc$$11) { case 1: { const sc$$12 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, (arg.h2.h1.h2) - (3), arg.h6), 0); switch (sc$$12) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: (arg.h6) + (1), h7: arg.h7.h2 }; case 0: return { tag: 0, h0: (" ") + ((arg.h7.h1) + (("\n") + (Lib_Common_showError_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, (arg.h6) + (1), arg.h7.h2)))) }; } break; } case 0: return { tag: 0, h0: ((((" ") + (arg.h7.h1)) + ("\n ")) + (Prelude_replicate(Prelude_intToNat(arg.h2.h1.h3), " "))) + ("^\n") }; } break; } case 0: return { tag: 0, h0: "" }; } }; +const Lib_Common_REC_showError_go = ( arg ) => { switch (arg.h7.tag) { case 1: { const sc$$11 = Prelude_jsEq(null, arg.h6, arg.h2.h1.h0); switch (sc$$11) { case 1: { const sc$$12 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, (arg.h2.h1.h0) - (3), arg.h6), 0); switch (sc$$12) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: (arg.h6) + (1), h7: arg.h7.h2 }; case 0: return { tag: 0, h0: (" ") + ((arg.h7.h1) + (("\n") + (Lib_Common_showError_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, (arg.h6) + (1), arg.h7.h2)))) }; } break; } case 0: return { tag: 0, h0: ((((" ") + (arg.h7.h1)) + ("\n ")) + (Prelude_replicate(Prelude_intToNat(arg.h2.h1.h1), " "))) + ("^\n") }; } break; } case 0: return { tag: 0, h0: "" }; } }; const Main_processModule = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => { const modns = Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, _$$3.h0, Prelude__$3A$3A_(null, _$$3.h1, Prelude_Nil(null))); const name = Prelude_joinBy(".", modns); const sc$$10 = Data_SortedMap_lookupMap(null, null, modns, top.h0); switch (sc$$10.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(Data_SortedMap_updateMap(null, null, modns, Lib_Types_emptyModCtx(""), top.h0), tc.h1, tc.h2, tc.h3, tc.h4, tc.h5, tc.h6, tc.h7, tc.h8)))), ( _ ) => { const fn = (Prelude_joinBy("/", Prelude__$3A$3A_(null, _$$1, _$$3.h0))) + (("/") + ((_$$3.h1) + (".newt"))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Node_readFile(fn)), ( $$sc ) => { switch ($$sc.tag) { case 1: { const sc$$19 = Lib_Tokenizer_tokenise(fn, $$sc.h2); switch (sc$$19.tag) { case 1: { const sc$$23 = Lib_Parser_Impl_partialParse(null, fn, Lib_Parser_parseModHeader, top.h8, sc$$19.h2); switch (sc$$23.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(1, ( _1 ) => ((("scan imports for module ") + (sc$$23.h2.h2.h3)) + (""))), ( _1 ) => { const ns = Prelude_split(sc$$23.h2.h2.h3, "."); const sc$$41 = Data_List1_unsnoc(null, Data_List1_split1(sc$$23.h2.h2.h3, ".")); const sc$$46 = Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(_$$3, Lib_Common_QN(sc$$41.h2, sc$$41.h3)); switch (sc$$46) { case 0: { const sc$$47 = Lib_Parser_Impl_partialParse(null, fn, Lib_Parser_parseImports, sc$$23.h2.h3.h2, sc$$23.h2.h3.h3); switch (sc$$47.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, sc$$47.h2.h2, ( $$case ) => { const sc$$63 = Data_List1_unsnoc(null, Data_List1_split1($$case.h1, ".")); const qname = Lib_Common_QN(sc$$63.h2, sc$$63.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, $$case.h1, _$$2), ( _2 ) => (Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_emptyFC, (((("import loop ") + (name)) + (" -> ")) + ($$case.h1)) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_processModule($$case.h0, _$$1, Prelude__$3A$3A_(null, name, _$$2), qname), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_split($$case.h1, ".")))))); }), ( imported ) => { const imported1 = Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, imported, Prelude__$3A$3A_(null, Lib_Common_primNS, Prelude_Nil(null))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Serialize_checksum($$sc.h2)), ( srcSum ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_moduleHash(srcSum, imported1), ( csum ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn((("module ") + (sc$$23.h2.h2.h3)) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Serialize_loadModule(_$$3, csum), ( $$sc1 ) => { switch ($$sc1.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(1, ( _3 ) => (("MODNS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Prelude_Prelude_Show$20Prim_String$2Cshow, modns))))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Main_parseDecls(fn, top2.h8, sc$$47.h2.h3.h3, Prelude_Lin(null)), ( $$sc2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top3 ) => { const freshMC = Lib_Types_MC(Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(null), 0, 0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, imported1, Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), modns, Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), freshMC, tc.h6, tc.h7, $$sc2.h3)))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, imported1, ( ns1 ) => { const sc$$80 = Data_SortedMap_lookupMap$27(null, null, ns1, top3.h0); switch (sc$$80.tag) { case 0: return Main_importHints(Data_SortedMap_listValues(null, null, sc$$80.h1.h1)); default: return Lib_Types_MkM(null, ( _5 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_emptyFC, (("namespace ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Prelude_Prelude_Show$20Prim_String$2Cshow, ns1)))) + (" missing"))), eta)))); } }), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(1, ( _6 ) => ("process Decls")), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Main_processModule_tryProcessDecl(_$$0, _$$1, _$$2, _$$3, _$$3.h0, _$$3.h1, null, $$sc.h2, ns, eta)), Lib_Elab_collectDecl($$sc2.h2)), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top4 ) => { const mod = Lib_Types_MkModCtx(csum, top4.h4, top4.h5, top4.h8); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Data_IORef_primReadIORef(null, top4.h7)), ( errors ) => { const sc$$85 = Prelude__$26$26_(Prelude_not(Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String, _$$2, Prelude_Nil(null))), Prelude_jsEq(null, Prelude_length$27(null, errors), 0)); switch (sc$$85) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0), ( _8 ) => { const modules = Data_SortedMap_updateMap(null, null, modns, mod, top4.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, tc.h1, tc.h2, tc.h3, tc.h4, tc.h5, tc.h6, tc.h7, tc.h8)))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Data_IORef_primReadIORef(null, top4.h7)), ( $$sc3 ) => { switch ($$sc3.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_logMetas(Prelude_reverse(null)(Data_SortedMap_listValues(null, null, top4.h5.h0))), ( _10 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, $$sc.h2))); default: return Node_exitFailure(null, "Compile failed"); } }))); }); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Serialize_dumpModule(_$$3, $$sc.h2, mod), ( _8 ) => { const modules = Data_SortedMap_updateMap(null, null, modns, mod, top4.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, tc.h1, tc.h2, tc.h3, tc.h4, tc.h5, tc.h6, tc.h7, tc.h8)))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Data_IORef_primReadIORef(null, top4.h7)), ( $$sc3 ) => { switch ($$sc3.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_ProcessDecl_logMetas(Prelude_reverse(null)(Data_SortedMap_listValues(null, null, top4.h5.h0))), ( _10 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, $$sc.h2))); default: return Node_exitFailure(null, "Compile failed"); } }))); }); } }); }))))))))); }))))))); case 0: { const modules = Data_SortedMap_updateMap(null, null, modns, $$sc1.h1, top1.h0); const ops = Data_SortedMap_foldMap(null, null, ( _$$21 ) => (( _$$31 ) => (_$$21)), top1.h8, Data_SortedMap_toList(null, null, $$sc1.h1.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, tc.h1, tc.h2, tc.h3, tc.h4, tc.h5, tc.h6, tc.h7, ops)))), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, $$sc.h2))); break; } } }))))))))); }); case 0: return Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$47.h2.h2)); } break; } default: return Node_exitFailure(null, (((((("ERROR at ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(sc$$23.h2.h2.h2))) + (": module name ")) + (sc$$23.h2.h2.h3)) + (" doesn't match file name ")) + (fn)) + ("")); } }); case 0: return Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$23.h2.h2)); } break; } case 0: return Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$19.h2)); } break; } case 0: return Node_exitFailure(null, (((((("ERROR at ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(_$$0))) + (": error reading ")) + (fn)) + (": ")) + ($$sc.h2)) + ("")); } }); }); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, ""); } })); const Lib_Types_MkTop = ( h0, h1, h2, h3, h4, h5, h6, h7, h8 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5, h6: h6, h7: h7, h8: h8 }); const Lib_Types_putTop = ( _$$0 ) => (Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Right(null, null, Prelude__$2C_(null, null, _$$0, 0)), eta))))); @@ -630,7 +630,7 @@ const Lib_Elab_charType = Lib_Common_QN(Lib_Common_primNS, "Char"); const Lib_Eval_prvalCtx = ( ctx$$0, _$$1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_quote(ctx$$0.h0, _$$1), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), ctx$$0.h2), tm))), Prelude_Lin(null)))))); const Lib_Types_logM = ( _$$0, _$$1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => (Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$0, top.h6), 2)), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, _$$1, ( msg ) => (Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn(msg))))))))); const Lib_Elab_MkProb = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); -const Lib_Elab_buildTree = ( _$$0, _$$1 ) => { switch (_$$1.h0.tag) { case 1: switch (_$$1.h0.h1.h2.tag) { case 1: switch (_$$1.h1.tag) { case 5: { const l = Prelude_length$27(null, _$$0.h1); const nm = Lib_Elab_fresh(_$$0, _$$1.h1.h1); const ctx$27 = Lib_Types_extend(_$$0, nm, _$$1.h1.h4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_introClause(nm, _$$1.h1.h2, eta)), _$$1.h0), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(Prelude__$3A$3A_(null, Lib_Types_VVar(_$$1.h0.h1.h0, l, Prelude_Lin(null)), _$$1.h1.h5.h0), _$$1.h1.h5.h1), ( vb ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Lib_Types_Lam(_$$1.h0.h1.h0, nm, _$$1.h1.h2, _$$1.h1.h3, eta)), Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, vb))))))); break; } default: return Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1.h0.h1.h0, (("Extra pattern variables ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow, _$$1.h0.h1.h2)))) + (""))), eta)))); } break; case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((("buildTree ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern, eta)), _$$1.h0.h1.h1)))) + (" ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$1.h0.h1.h3))) + (""))), ( _ ) => { const sc$$13 = Lib_Elab_findSplit(_$$1.h0.h1.h1); switch (sc$$13.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _1 ) => ((((((("SPLIT on ") + (sc$$13.h1.h2)) + (" because ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(sc$$13.h1.h3))) + (" ")) + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3)))) + (""))), ( _1 ) => { const sc$$21 = Lib_Elab_lookupName(_$$0, sc$$13.h1.h2); switch (sc$$21.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_unlet(_$$0.h1, sc$$21.h1.h3), ( eta ) => (Lib_Eval_forceType(_$$0.h1, eta))), ( scty$27 ) => { switch (scty$27.tag) { case 3: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_lookupMeta(scty$27.h1), ( meta ) => { switch (meta.tag) { case 2: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, scty$27); case 1: return Lib_Eval_forceType(_$$0.h1, scty$27); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_solveAutos, ( _2 ) => (Lib_Eval_forceType(_$$0.h1, scty$27))); } }), ( scty$271 ) => { switch (sc$$13.h1.h3.tag) { case 3: { const tyname = Lib_Elab_litTyName(sc$$13.h1.h3.h1); switch (scty$271.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(scty$271.h1, tyname)), ( _2 ) => (Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); } break; } case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("EXP ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" -> ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_getConstructors(_$$0, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), scty$271), ( cons ) => { const matched = Lib_Elab_matchedConstructors(sc$$13.h1.h2, _$$1.h0); const sc$$39 = Prelude_partition(null, ( _$$5 ) => (Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _$$5.h2, matched)), cons); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_filterM(null, ( eta ) => (Lib_Elab_checkCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$39.h3), ( miss$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((((((("CONS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), cons))))) + (" matched ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow, matched)))) + (" miss ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), sc$$39.h3)))) + (" miss' ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), miss$27)))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$39.h2), ( alts ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("GOTALTS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt, eta)), alts)))) + (""))), ( _4 ) => { const alts$27 = Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, alts$27), 0), ( _5 ) => (Lib_Types_MkM(null, ( _6 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (("no alts for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), eta)))))), ( _5 ) => { switch (miss$27.tag) { case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildDefault(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), miss$27)), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, alts$27, Prelude__$3A$3A_(null, $$sc, Prelude_Nil(null))))))); } }); }))))))); }))); default: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), (("Internal error - tried to split on ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(sc$$13.h1.h3))) + (""))), eta)))); } }); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, scty$27), ( scty$271 ) => { switch (sc$$13.h1.h3.tag) { case 3: { const tyname = Lib_Elab_litTyName(sc$$13.h1.h3.h1); switch (scty$271.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(scty$271.h1, tyname)), ( _2 ) => (Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); } break; } case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("EXP ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" -> ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_getConstructors(_$$0, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), scty$271), ( cons ) => { const matched = Lib_Elab_matchedConstructors(sc$$13.h1.h2, _$$1.h0); const sc$$39 = Prelude_partition(null, ( _$$5 ) => (Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _$$5.h2, matched)), cons); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_filterM(null, ( eta ) => (Lib_Elab_checkCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$39.h3), ( miss$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((((((("CONS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), cons))))) + (" matched ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow, matched)))) + (" miss ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), sc$$39.h3)))) + (" miss' ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), miss$27)))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$39.h2), ( alts ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("GOTALTS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt, eta)), alts)))) + (""))), ( _4 ) => { const alts$27 = Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, alts$27), 0), ( _5 ) => (Lib_Types_MkM(null, ( _6 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (("no alts for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), eta)))))), ( _5 ) => { switch (miss$27.tag) { case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildDefault(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), miss$27)), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, alts$27, Prelude__$3A$3A_(null, $$sc, Prelude_Nil(null))))))); } }); }))))))); }))); default: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), (("Internal error - tried to split on ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(sc$$13.h1.h3))) + (""))), eta)))); } }); } }); default: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1.h0.h1.h0, (("Internal Error: can't find ") + (sc$$13.h1.h2)) + (" in environment"))), eta)))); } }); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _1 ) => ((("checkDone ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern, eta)), _$$1.h0.h1.h1)))) + (""))), ( _1 ) => (Lib_Elab_checkDone(_$$0, _$$1.h0.h1.h1, _$$1.h0.h1.h3, _$$1.h1))); } }); } break; case 0: return Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_emptyFC, "no clauses")), eta)))); } }; +const Lib_Elab_buildTree = ( _$$0, _$$1 ) => { switch (_$$1.h0.tag) { case 1: switch (_$$1.h0.h1.h2.tag) { case 1: switch (_$$1.h1.tag) { case 5: { const l = Prelude_length$27(null, _$$0.h1); const nm = Lib_Elab_fresh(_$$0, _$$1.h1.h1); const ctx$27 = Lib_Types_extend(_$$0, nm, _$$1.h1.h4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_introClause(nm, _$$1.h1.h2, eta)), _$$1.h0), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(Prelude__$3A$3A_(null, Lib_Types_VVar(_$$1.h0.h1.h0, l, Prelude_Lin(null)), _$$1.h1.h5.h0), _$$1.h1.h5.h1), ( vb ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Lib_Types_Lam(_$$1.h0.h1.h0, nm, _$$1.h1.h2, _$$1.h1.h3, eta)), Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, vb))))))); break; } default: return Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1.h0.h1.h0, (("Extra pattern variables ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow, _$$1.h0.h1.h2)))) + (""))), eta)))); } break; case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((("buildTree ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern, eta)), _$$1.h0.h1.h1)))) + (" ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$1.h0.h1.h3))) + (""))), ( _ ) => { const sc$$13 = Lib_Elab_findSplit(_$$1.h0.h1.h1); switch (sc$$13.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _1 ) => ((((((("SPLIT on ") + (sc$$13.h1.h2)) + (" because ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(sc$$13.h1.h3))) + (" ")) + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3)))) + (""))), ( _1 ) => { const sc$$21 = Lib_Elab_lookupName(_$$0, sc$$13.h1.h2); switch (sc$$21.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_unlet(_$$0.h1, sc$$21.h1.h3), ( eta ) => (Lib_Eval_forceType(_$$0.h1, eta))), ( scty$27 ) => { switch (scty$27.tag) { case 3: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_lookupMeta(scty$27.h1), ( meta ) => { switch (meta.tag) { case 2: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, scty$27); case 1: return Lib_Eval_forceType(_$$0.h1, scty$27); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_solveAutos, ( _2 ) => (Lib_Eval_forceType(_$$0.h1, scty$27))); } }), ( scty$271 ) => { switch (sc$$13.h1.h3.tag) { case 3: { const tyname = Lib_Elab_litTyName(sc$$13.h1.h3.h1); switch (scty$271.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(scty$271.h1, tyname)), ( _2 ) => (Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); } break; } case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("EXP ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" -> ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_getConstructors(_$$0, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), scty$271), ( cons ) => { const matched = Lib_Elab_matchedConstructors(sc$$13.h1.h2, _$$1.h0); const matched$27 = Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h3), matched); const sc$$40 = Prelude_partition(null, ( _$$5 ) => (Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _$$5.h2, matched$27)), cons); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_filterM(null, ( eta ) => (Lib_Elab_checkCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$40.h3), ( miss$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, matched, ( $$case ) => { const sc$$52 = Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, $$case.h3, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), cons)); switch (sc$$52) { case 1: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E($$case.h2, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$case.h3))) + (" not a constructor for ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (""))), eta)))); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); } }), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((((((((("CONS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), cons))))) + (" matched ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_FC, Lib_Common_Prelude_Show$20Lib_Common_QName, eta)), matched)))) + (" miss ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), sc$$40.h3)))) + (" miss' ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), miss$27)))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$40.h2), ( alts ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("GOTALTS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt, eta)), alts)))) + (""))), ( _5 ) => { const alts$27 = Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, alts$27), 0), ( _6 ) => (Lib_Types_MkM(null, ( _7 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (("no alts for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), eta)))))), ( _6 ) => { switch (miss$27.tag) { case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildDefault(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), miss$27)), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, alts$27, Prelude__$3A$3A_(null, $$sc, Prelude_Nil(null))))))); } }); }))))))))); }))); default: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), (("Internal error - tried to split on ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(sc$$13.h1.h3))) + (""))), eta)))); } }); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, scty$27), ( scty$271 ) => { switch (sc$$13.h1.h3.tag) { case 3: { const tyname = Lib_Elab_litTyName(sc$$13.h1.h3.h1); switch (scty$271.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(scty$271.h1, tyname)), ( _2 ) => (Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (((("expected ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" and got ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(tyname))) + (""))), eta)))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildLitCases(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, sc$$21.h1.h3), ( alts ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, alts)))))); } break; } case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("EXP ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (" -> ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_getConstructors(_$$0, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), scty$271), ( cons ) => { const matched = Lib_Elab_matchedConstructors(sc$$13.h1.h2, _$$1.h0); const matched$27 = Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h3), matched); const sc$$40 = Prelude_partition(null, ( _$$5 ) => (Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _$$5.h2, matched$27)), cons); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_filterM(null, ( eta ) => (Lib_Elab_checkCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$40.h3), ( miss$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, matched, ( $$case ) => { const sc$$52 = Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, $$case.h3, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), cons)); switch (sc$$52) { case 1: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E($$case.h2, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$case.h3))) + (" not a constructor for ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$21.h1.h3))) + (""))), eta)))); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); } }), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((((((((("CONS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), cons))))) + (" matched ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_FC, Lib_Common_Prelude_Show$20Lib_Common_QName, eta)), matched)))) + (" miss ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), sc$$40.h3)))) + (" miss' ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm, eta))), eta)), miss$27)))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase(_$$0, _$$1, sc$$13.h1.h2, scty$271, eta)), sc$$40.h2), ( alts ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("GOTALTS ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt, eta)), alts)))) + (""))), ( _5 ) => { const alts$27 = Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, alts$27), 0), ( _6 ) => (Lib_Types_MkM(null, ( _7 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(sc$$13.h1.h3.h0, (("no alts for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty$271))) + (""))), eta)))))), ( _6 ) => { switch (miss$27.tag) { case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), alts))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildDefault(_$$0, _$$1, sc$$13.h1.h3.h0, sc$$13.h1.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), miss$27)), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Types_Case(sc$$13.h1.h3.h0, sc$$21.h1.h2, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, alts$27, Prelude__$3A$3A_(null, $$sc, Prelude_Nil(null))))))); } }); }))))))))); }))); default: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(sc$$13.h1.h3), (("Internal error - tried to split on ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(sc$$13.h1.h3))) + (""))), eta)))); } }); } }); default: return Lib_Types_MkM(null, ( _2 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1.h0.h1.h0, (("Internal Error: can't find ") + (sc$$13.h1.h2)) + (" in environment"))), eta)))); } }); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _1 ) => ((("checkDone ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern, eta)), _$$1.h0.h1.h1)))) + (""))), ( _1 ) => (Lib_Elab_checkDone(_$$0, _$$1.h0.h1.h1, _$$1.h0.h1.h3, _$$1.h1))); } }); } break; case 0: return Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_emptyFC, "no clauses")), eta)))); } }; const Lib_Elab_checkDone = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_Elab_REC_checkDone, { tag: 1, h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_Elab_REC_checkDone = ( arg ) => { switch (arg.h1.tag) { case 1: switch (arg.h1.h1.h3.tag) { case 2: return { tag: 1, h0: arg.h0, h1: arg.h1.h2, h2: arg.h2, h3: arg.h3 }; case 0: { const ctx = Lib_Types_MkCtx(arg.h0.h0, arg.h0.h1, Lib_Elab_checkDone_rename(arg.h0, arg.h1, arg.h2, arg.h3, arg.h1.h0, arg.h1.h1, arg.h1.h2, arg.h1.h1.h0, arg.h1.h1.h1, arg.h1.h1.h2, arg.h1.h1.h3, arg.h1.h1.h3.h0, arg.h1.h1.h3.h1, arg.h1.h1.h3.h2, null, arg.h0.h2), arg.h0.h3, arg.h0.h4); return { tag: 1, h0: ctx, h1: arg.h1.h2, h2: arg.h2, h3: arg.h3 }; break; } default: return { tag: 0, h0: Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC(arg.h1.h1.h3), (((("stray constraint ") + (arg.h1.h1.h2)) + (" /? ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow(arg.h1.h1.h3))) + (""))), eta)))) }; } break; case 0: return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((("DONE-> check body ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(arg.h2))) + (" at ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_logM(2, Lib_Elab_showCtx(arg.h0)), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, arg.h0.h1, ( val ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_quote(Prelude_length$27(null, arg.h0.h1), val), ( ty ) => (Lib_Eval_eval(arg.h0.h1, ty))))), ( env$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, arg.h0.h2, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_quote(Prelude_length$27(null, env$27), $$case.h3), ( nty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(env$27, nty), ( ty$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude__$2C_(null, null, $$case.h2, ty$27)))))))), ( types$27 ) => { const ctx = Lib_Types_MkCtx(arg.h0.h0, env$27, types$27, arg.h0.h3, arg.h0.h4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ("AFTER")), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_logM(2, Lib_Elab_showCtx(ctx)), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_quote(Prelude_length$27(null, ctx.h1), arg.h3), ( ty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(ctx.h1, ty), ( ty1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("check at ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(ty1))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_check(ctx, arg.h2, ty1), ( got ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("DONE<- got ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), ctx.h2), got))), Prelude_Lin(null)))) + (""))), ( _5 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, got))))))))))))))); }))))))) }; } }; const Lib_Elab_showCtx = ( _$$0 ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( _$$5 ) => (Prelude_joinBy("\n", Prelude_reverse(null)(_$$5))), Lib_Elab_showCtx_isVar_go(_$$0, null, null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), _$$0.h2), 0, Prelude_reverse(null)(Prelude_zip(null, null, _$$0.h1, _$$0.h2)), Prelude_Nil(null)))); @@ -645,7 +645,7 @@ const Lib_Elab_buildDefault = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { const defcla const Lib_Elab_buildDefault_isDefault = ( _, _1, _2, _3, _4, _5, _$$6 ) => { const sc$$7 = Prelude_find(null, ( _$$5 ) => (Prelude_jsEq(null, _3, _$$5.h2)), _$$6.h1); switch (sc$$7.tag) { case 1: return 0; case 0: switch (sc$$7.h1.h3.tag) { case 2: return 0; case 0: return 0; default: return 1; } break; } }; const Lib_Types_Prelude_Show$20Lib_Types_CaseAlt$2Cshow = Lib_Types_showCaseAlt; const Lib_Types_Prelude_Show$20Lib_Types_CaseAlt = Prelude_MkShow(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt$2Cshow); -const Lib_Elab_buildCase = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((((("CASE ") + (_$$2)) + (" match ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$21 ) => (_$$21.h2), _$$0.h2), _$$4.h3.h3))), Prelude_Lin(null)))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(Prelude_Nil(null), _$$4.h3.h3), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_extendPi(_$$0, vty, Prelude_Lin(null), Prelude_Lin(null)), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _1 ) => ((((("unify dcon cod with scrut\n ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + ("\n ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_catchError(null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( err ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg(err))) + (""))), ( _2 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))))), ( $$sc1 ) => { switch ($$sc1.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("scrut ") + (_$$2)) + (" constrained to ")) + (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(null, Lib_Types_Prelude_Show$20Lib_Types_Val, Lib_Elab_lookupDef(_$$0, _$$2)))) + (""))), ( _2 ) => { switch (_$$3.tag) { case 1: { const sc$$44 = Lib_Elab_lookupDef(_$$0, _$$2); switch (sc$$44.tag) { case 0: switch (sc$$44.h1.tag) { case 1: { const sc$$50 = Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(sc$$44.h1.h1, _$$4.h2)); switch (sc$$50) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((("case ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" dotted ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$44.h1))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Prelude_Prelude_Eq$20Prelude_Nat$2C_$3D$3D_(Prelude_length(null, $$sc.h3.h3.h2), Data_SnocList_snoclen(null, sc$$44.h1.h2))), ( _4 ) => (Lib_Types_MkM(null, ( _5 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_emptyFC, (((("") + (Prelude_showInt(Prelude_natToInt(Prelude_length(null, $$sc.h3.h3.h2))))) + (" vars /= ")) + (Prelude_showInt(Prelude_natToInt(Data_SnocList_snoclen(null, sc$$44.h1.h2))))) + (""))), eta)))))), ( _4 ) => { const lvl = (Prelude_length$27(null, $$sc.h2.h1)) - (Prelude_length$27(null, $$sc.h3.h3.h2)); const scons = Lib_Elab_buildCase_constrainSpine(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, lvl, Prelude__$3C$3E$3E_(null, sc$$44.h1.h2, Prelude_Nil(null))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_updateContext($$sc.h2, scons), ( ctx$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + (" scty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _6 ) => ((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (") (vars ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow, $$sc.h3.h3.h2)))) + (") clauses were"))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h0, ( x ) => (Lib_Types_log(2, ( _7 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), eta)), Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, null, null, null, _$$3.h1, $$sc.h3.h3.h2, eta)), _$$1.h0)), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _8 ) => ("and now:")), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_log(2, ( _9 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, clauses), 0), ( _10 ) => (Lib_Types_MkM(null, ( _11 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (((("Missing case for ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" splitting ")) + (_$$2)) + (""))), eta)))))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, _$$1.h1)), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, eta)), $$sc.h3.h3.h2), tm))))))))))))))))))))); }))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because ")) + (_$$2)) + (" forced to ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$44.h1))) + (""))), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))); } break; } default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_tryError(null, Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case 1: { const sc$$52 = Prelude_findIndex$27(null, ( _$$5 ) => (Prelude_jsEq(null, _$$2, _$$5.h2)), $$sc.h2.h2); switch (sc$$52.tag) { case 1: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (("") + (_$$2)) + (" not is scope?"))), eta)))); case 0: { const lvl = ((Prelude_length$27(null, $$sc.h2.h1)) - (sc$$52.h1)) - (1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VRef(_$$0.h4, _$$4.h2, $$sc.h3.h3.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((("scty ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("UNIFY results ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc2.h2.h0)))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("before types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc.h2.h2)))) + (""))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _6 ) => ((("before env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, $$sc.h2.h1)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _7 ) => ((("SC CONSTRAINT: ") + (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, scon))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_updateContext($$sc.h2, Prelude__$3A$3A_(null, scon, $$sc2.h2.h0)), ( ctx$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _8 ) => ((("context types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), ctx$27.h2)))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _9 ) => ((("context env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, ctx$27.h1)))) + (""))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _10 ) => ((((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + (" scty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _11 ) => ((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (") (vars ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow, $$sc.h3.h3.h2)))) + (") clauses were"))), ( _11 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h0, ( x ) => (Lib_Types_log(2, ( _12 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _12 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), eta)), Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, null, null, null, _$$3.h1, $$sc.h3.h3.h2, eta)), _$$1.h0)), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _13 ) => ("and now:")), ( _13 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_log(2, ( _14 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _14 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, clauses), 0), ( _15 ) => (Lib_Types_MkM(null, ( _16 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (((("Missing case for ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" splitting ")) + (_$$2)) + (""))), eta)))))), ( _15 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, _$$1.h1)), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, eta)), $$sc.h3.h3.h2), tm))))))))))))))))))))))))))))))))))); break; } } break; } case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))); } }); } break; default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_tryError(null, Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case 1: { const sc$$50 = Prelude_findIndex$27(null, ( _$$5 ) => (Prelude_jsEq(null, _$$2, _$$5.h2)), $$sc.h2.h2); switch (sc$$50.tag) { case 1: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (("") + (_$$2)) + (" not is scope?"))), eta)))); case 0: { const lvl = ((Prelude_length$27(null, $$sc.h2.h1)) - (sc$$50.h1)) - (1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VRef(_$$0.h4, _$$4.h2, $$sc.h3.h3.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((("scty ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("UNIFY results ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc2.h2.h0)))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("before types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc.h2.h2)))) + (""))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _6 ) => ((("before env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, $$sc.h2.h1)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _7 ) => ((("SC CONSTRAINT: ") + (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, scon))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_updateContext($$sc.h2, Prelude__$3A$3A_(null, scon, $$sc2.h2.h0)), ( ctx$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _8 ) => ((("context types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), ctx$27.h2)))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _9 ) => ((("context env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, ctx$27.h1)))) + (""))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _10 ) => ((((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + (" scty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _11 ) => ((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (") (vars ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow, $$sc.h3.h3.h2)))) + (") clauses were"))), ( _11 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h0, ( x ) => (Lib_Types_log(2, ( _12 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _12 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), eta)), Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, null, null, null, _$$3.h1, $$sc.h3.h3.h2, eta)), _$$1.h0)), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _13 ) => ("and now:")), ( _13 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_log(2, ( _14 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _14 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, clauses), 0), ( _15 ) => (Lib_Types_MkM(null, ( _16 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (((("Missing case for ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" splitting ")) + (_$$2)) + (""))), eta)))))), ( _15 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, _$$1.h1)), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, eta)), $$sc.h3.h3.h2), tm))))))))))))))))))))))))))))))))))); break; } } break; } case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))); } }); } break; } default: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Types_getValFC(_$$3), (("case split on non-inductive ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), eta)))); } }); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)); } })))))))))); +const Lib_Elab_buildCase = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((((("CASE ") + (_$$2)) + (" match ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$21 ) => (_$$21.h2), _$$0.h2), _$$4.h3.h3))), Prelude_Lin(null)))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(Prelude_Nil(null), _$$4.h3.h3), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_extendPi(_$$0, vty, Prelude_Lin(null), Prelude_Lin(null)), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _1 ) => ((((("unify dcon cod with scrut\n ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + ("\n ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_catchError(null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( err ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg(err))) + (""))), ( _2 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))))), ( $$sc1 ) => { switch ($$sc1.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _2 ) => ((((("scrut ") + (_$$2)) + (" constrained to ")) + (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(null, Lib_Types_Prelude_Show$20Lib_Types_Val, Lib_Elab_lookupDef(_$$0, _$$2)))) + (""))), ( _2 ) => { switch (_$$3.tag) { case 1: { const sc$$44 = Lib_Elab_lookupDef(_$$0, _$$2); switch (sc$$44.tag) { case 0: switch (sc$$44.h1.tag) { case 1: { const sc$$50 = Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(sc$$44.h1.h1, _$$4.h2)); switch (sc$$50) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((("case ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" dotted ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$44.h1))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Prelude_Prelude_Eq$20Prelude_Nat$2C_$3D$3D_(Prelude_length(null, $$sc.h3.h3.h2), Data_SnocList_snoclen(null, sc$$44.h1.h2))), ( _4 ) => (Lib_Types_MkM(null, ( _5 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_emptyFC, (((("") + (Prelude_showInt(Prelude_natToInt(Prelude_length(null, $$sc.h3.h3.h2))))) + (" vars /= ")) + (Prelude_showInt(Prelude_natToInt(Data_SnocList_snoclen(null, sc$$44.h1.h2))))) + (""))), eta)))))), ( _4 ) => { const lvl = (Prelude_length$27(null, $$sc.h2.h1)) - (Prelude_length$27(null, $$sc.h3.h3.h2)); const scons = Lib_Elab_buildCase_constrainSpine(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, lvl, Prelude__$3C$3E$3E_(null, sc$$44.h1.h2, Prelude_Nil(null))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_updateContext($$sc.h2, scons), ( ctx$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + (" scty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _6 ) => ((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (") (vars ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow, $$sc.h3.h3.h2)))) + (") clauses were"))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h0, ( x ) => (Lib_Types_log(2, ( _7 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), eta)), Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, null, null, null, _$$3.h1, $$sc.h3.h3.h2, eta)), _$$1.h0)), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _8 ) => ("and now:")), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_log(2, ( _9 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, clauses), 0), ( _10 ) => (Lib_Types_MkM(null, ( _11 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (((("Missing case for ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" splitting ")) + (_$$2)) + (""))), eta)))))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, _$$1.h1)), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, eta)), $$sc.h3.h3.h2), tm))))))))))))))))))))); }))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because ")) + (_$$2)) + (" forced to ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$44.h1))) + (""))), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))); } break; } default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_tryError(null, Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case 1: { const sc$$52 = Prelude_findIndex$27(null, ( _$$5 ) => (Prelude_jsEq(null, _$$2, _$$5.h2)), $$sc.h2.h2); switch (sc$$52.tag) { case 1: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (("") + (_$$2)) + (" not is scope?"))), eta)))); case 0: { const lvl = ((Prelude_length$27(null, $$sc.h2.h1)) - (sc$$52.h1)) - (1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VRef(_$$0.h4, _$$4.h2, $$sc.h3.h3.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((("scty ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("UNIFY results ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc2.h2.h0)))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("before types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc.h2.h2)))) + (""))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _6 ) => ((("before env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, $$sc.h2.h1)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _7 ) => ((("SC CONSTRAINT: ") + (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, scon))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_updateContext($$sc.h2, Prelude__$3A$3A_(null, scon, $$sc2.h2.h0)), ( ctx$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _8 ) => ((("context types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), ctx$27.h2)))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _9 ) => ((("context env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, ctx$27.h1)))) + (""))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _10 ) => ((((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + (" scty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _11 ) => ((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (") (vars ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow, $$sc.h3.h3.h2)))) + (") clauses were"))), ( _11 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h0, ( x ) => (Lib_Types_log(2, ( _12 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _12 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), eta)), Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, null, null, null, _$$3.h1, $$sc.h3.h3.h2, eta)), _$$1.h0)), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _13 ) => ("and now:")), ( _13 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_log(2, ( _14 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _14 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, clauses), 0), ( _15 ) => (Lib_Types_MkM(null, ( _16 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (((("Missing case for ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" splitting ")) + (_$$2)) + (""))), eta)))))), ( _15 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, _$$1.h1)), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, eta)), $$sc.h3.h3.h2), tm))))))))))))))))))))))))))))))))))); break; } } break; } case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _4 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))))); } }); } break; default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_tryError(null, Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case 1: { const sc$$50 = Prelude_findIndex$27(null, ( _$$5 ) => (Prelude_jsEq(null, _$$2, _$$5.h2)), $$sc.h2.h2); switch (sc$$50.tag) { case 1: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (("") + (_$$2)) + (" not is scope?"))), eta)))); case 0: { const lvl = ((Prelude_length$27(null, $$sc.h2.h1)) - (sc$$50.h1)) - (1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VRef(_$$0.h4, _$$4.h2, $$sc.h3.h3.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((("scty ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _4 ) => ((("UNIFY results ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc2.h2.h0)))) + (""))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _5 ) => ((("before types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), $$sc.h2.h2)))) + (""))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _6 ) => ((("before env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, $$sc.h2.h1)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _7 ) => ((("SC CONSTRAINT: ") + (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, scon))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_updateContext($$sc.h2, Prelude__$3A$3A_(null, scon, $$sc2.h2.h0)), ( ctx$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _8 ) => ((("context types: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val, eta)), ctx$27.h2)))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _9 ) => ((("context env: ") + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow, ctx$27.h1)))) + (""))), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _10 ) => ((((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" ty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3.h2))) + (" scty ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _11 ) => ((((("(dcon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (") (vars ")) + (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow, $$sc.h3.h3.h2)))) + (") clauses were"))), ( _11 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h0, ( x ) => (Lib_Types_log(2, ( _12 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _12 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( _$$11 ) => (_$$11), eta)), Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, null, null, null, _$$3.h1, $$sc.h3.h3.h2, eta)), _$$1.h0)), ( clauses ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _13 ) => ("and now:")), ( _13 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_log(2, ( _14 ) => (((" ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow(x))) + (""))))), ( _14 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_jsEq(null, Prelude_length$27(null, clauses), 0), ( _15 ) => (Lib_Types_MkM(null, ( _16 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$0.h4, (((("Missing case for ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" splitting ")) + (_$$2)) + (""))), eta)))))), ( _15 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, _$$1.h1)), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _$$4.h3.h0, _$$4.h3.h1, _$$4.h3.h2, _$$4.h3.h3, null, null, eta)), $$sc.h3.h3.h2), tm))))))))))))))))))))))))))))))))))); break; } } break; } case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _3 ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _4 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))))); } }); } break; } default: return Lib_Types_MkM(null, ( _3 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Types_getValFC(_$$3), (("case split on non-inductive ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), eta)))); } }); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)); } })))))))))); const Lib_Elab_buildCase_constrainSpine_getName = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _$$15 ) => (_$$15.h0); const Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause$2Cshow = ( _$$0 ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Lib_Common_Prelude_Show$20Lib_Common_FC, Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_MkShow(null, ( _$$2 ) => (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern, eta)), _$$2)))), Prelude_MkShow(null, ( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(null, null, Prelude_MkShow(null, ( _$$2 ) => (Prelude_joinBy(", ", Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern$2Cshow, _$$2)))), Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, eta))), eta))), Prelude__$2C_(null, null, _$$0.h0, Prelude__$2C_(null, null, _$$0.h1, Prelude__$2C_(null, null, _$$0.h2, _$$0.h3))))); const Lib_Common_Prelude_Show$20Lib_Common_FC = Prelude_MkShow(null, Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow); @@ -674,13 +674,13 @@ const Lib_Elab_MkBind = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 } const Lib_Elab_fresh = ( ctx$$0, _$$1 ) => ((_$$1) + (("$") + (Prelude_showInt(Prelude_length$27(null, ctx$$0.h1))))); const Lib_Types_Prelude_Show$20Lib_Types_Tm = Prelude_MkShow(null, Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow); const Lib_Common_Prelude_Show$20Lib_Common_QName = Prelude_MkShow(null, Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow); -const Lib_Elab_checkCase = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(Prelude_Nil(null), _$$4.h3.h3), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_extendPi(_$$0, vty, Prelude_Lin(null), Prelude_Lin(null)), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_catchError(null, Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( err ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg(err))) + (""))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)))))), ( $$sc1 ) => { switch ($$sc1.tag) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_tryError(null, Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case 1: { const sc$$37 = Lib_Elab_lookupDef(_$$0, _$$2); switch (sc$$37.tag) { case 0: switch (sc$$37.h1.tag) { case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(sc$$37.h1.h1, _$$4.h2)); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); } break; default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); } break; } case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc2.h2))) + (""))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 1))); } }); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 1); } })))))); +const Lib_Elab_checkCase = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_eval(Prelude_Nil(null), _$$4.h3.h3), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_extendPi(_$$0, vty, Prelude_Lin(null), Prelude_Lin(null)), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_tryError(null, Lib_Elab_unify($$sc.h2.h1, 1, $$sc.h3.h2, _$$3)), ( $$sc1 ) => { switch ($$sc1.tag) { case 1: { const sc$$33 = Lib_Elab_lookupDef(_$$0, _$$2); switch (sc$$33.tag) { case 0: switch (sc$$33.h1.tag) { case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(sc$$33.h1.h1, _$$4.h2)); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); } break; default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 0); } break; } case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_log(2, ( _ ) => ((((("SKIP ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$4.h2))) + (" because unify error ")) + (Lib_Types_errorMsg($$sc1.h2))) + (""))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, 1))); } })))))); const Lib_Types_filterM = ( a$$0, _$$1, _$$2 ) => { switch (_$$2.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, _$$1(_$$2.h1), ( check ) => { switch (check) { case 1: return Lib_Types_filterM(null, _$$1, _$$2.h2); case 0: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, ( eta ) => (Prelude__$3A$3A_(null, _$$2.h1, eta)), Lib_Types_filterM(null, _$$1, _$$2.h2)); } }); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nil(null)); } }; const Prelude_partition = ( a$$0, _$$1, _$$2 ) => (Prelude_partition_go(a$$0, _$$1, _$$2, null, _$$2, Prelude_Nil(null), Prelude_Nil(null))); const Prelude_partition_go = ( _, _1, _2, _3, _$$4, _$$5, _$$6 ) => (bouncer(Prelude_REC_partition_go, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _$$4, h5: _$$5, h6: _$$6 })); const Prelude_REC_partition_go = ( arg ) => { switch (arg.h4.tag) { case 1: { const sc$$10 = arg.h1(arg.h4.h1); switch (sc$$10) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4.h2, h5: arg.h5, h6: Prelude__$3A$3A_(null, arg.h4.h1, arg.h6) }; case 0: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4.h2, h5: Prelude__$3A$3A_(null, arg.h4.h1, arg.h5), h6: arg.h6 }; } break; } case 0: return { tag: 0, h0: Prelude__$2C_(null, null, arg.h5, arg.h6) }; } }; const Lib_Elab_matchedConstructors = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_matchedConstructors, { tag: 1, h0: _$$0, h1: _$$1 })); -const Lib_Elab_REC_matchedConstructors = ( arg ) => { switch (arg.h1.tag) { case 1: { const sc$$9 = Prelude_find(null, ( _$$5 ) => (Prelude_jsEq(null, arg.h0, _$$5.h2)), arg.h1.h1.h1); switch (sc$$9.tag) { case 0: switch (sc$$9.h1.h3.tag) { case 1: return { tag: 0, h0: Prelude__$3A$3A_(null, sc$$9.h1.h3.h2, Lib_Elab_matchedConstructors(arg.h0, arg.h1.h2)) }; default: return { tag: 1, h0: arg.h0, h1: arg.h1.h2 }; } break; default: return { tag: 1, h0: arg.h0, h1: arg.h1.h2 }; } break; } case 0: return { tag: 0, h0: Prelude_Nil(null) }; } }; +const Lib_Elab_REC_matchedConstructors = ( arg ) => { switch (arg.h1.tag) { case 1: { const sc$$9 = Prelude_find(null, ( _$$5 ) => (Prelude_jsEq(null, arg.h0, _$$5.h2)), arg.h1.h1.h1); switch (sc$$9.tag) { case 0: switch (sc$$9.h1.h3.tag) { case 1: return { tag: 0, h0: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, sc$$9.h1.h3.h0, sc$$9.h1.h3.h2), Lib_Elab_matchedConstructors(arg.h0, arg.h1.h2)) }; default: return { tag: 1, h0: arg.h0, h1: arg.h1.h2 }; } break; default: return { tag: 1, h0: arg.h0, h1: arg.h1.h2 }; } break; } case 0: return { tag: 0, h0: Prelude_Nil(null) }; } }; const Lib_Elab_getConstructors = ( _$$0, _$$1, _$$2 ) => { switch (_$$2.tag) { case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_getConstructors_lookupTCon(_$$0, _$$1, _$$2, _$$2.h0, _$$2.h1, _$$2.h2, null, _$$2.h1), ( $$sc ) => (Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(null, null, null, Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_getConstructors_lookupTCon_lookupDCon(_$$0, _$$1, _$$2, _$$2.h0, _$$2.h1, _$$2.h2, null, null, eta)), $$sc))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Elab_vprint(_$$0, _$$2), ( tms ) => (Lib_Types_MkM(null, ( _ ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1, (("Can't split - not VRef: ") + (tms)) + (""))), eta)))))); } }; const Lib_Elab_vprint = ( _$$0, _$$1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Eval_quote(Prelude_length$27(null, _$$0.h1), _$$1), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( _$$2 ) => (_$$2.h2), _$$0.h2), tm))), Prelude_Lin(null)))))); const Lib_Elab_getConstructors_lookupTCon_lookupDCon = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_getTop, ( top ) => { const sc$$10 = Lib_TopContext_lookup(_$$8, top); switch (sc$$10.tag) { case 1: return Lib_Types_MkM(null, ( _8 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_3, (("Internal Error: DCon ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$8))) + (" not found"))), eta)))); case 0: switch (sc$$10.h1.h3.tag) { case 2: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude__$2C_(null, null, sc$$10.h1.h1, Prelude__$2C_(null, null, sc$$10.h1.h3.h2, sc$$10.h1.h2))); default: return Lib_Types_MkM(null, ( _8 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_3, (("Internal Error: ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$8))) + (" is not a DCon"))), eta)))); } break; } })); @@ -834,143 +834,144 @@ const Main_importHints = ( _$$0 ) => { switch (_$$0.tag) { case 1: return Lib_Ty const Main_parseDecls = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Main_REC_parseDecls, { tag: 1, h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Main_REC_parseDecls = ( arg ) => { switch (arg.h2.tag) { case 1: { const sc$$8 = Lib_Parser_Impl_partialParse(null, arg.h0, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseDecl), arg.h1, arg.h2); switch (sc$$8.tag) { case 1: return { tag: 1, h0: arg.h0, h1: sc$$8.h2.h3.h2, h2: sc$$8.h2.h3.h3, h3: Prelude__$3A$3C_(null, arg.h3, sc$$8.h2.h2) }; case 0: return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Prelude_primPutStrLn(Lib_Common_showError("", sc$$8.h2.h2))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_TopContext_addError(sc$$8.h2.h2), ( _1 ) => (Main_parseDecls(arg.h0, arg.h1, Main_parseDecls_recover(arg.h0, arg.h1, arg.h2, arg.h3, arg.h2.h0, arg.h2.h1, arg.h2.h2, null, sc$$8.h2.h3), arg.h3))))) }; } break; } case 0: return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude__$2C_(null, null, Prelude__$3C$3E$3E_(null, arg.h3, Prelude_Nil(null)), arg.h1)) }; } }; const Main_parseDecls_recover = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8 ) => (bouncer(Main_REC_parseDecls_recover, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _$$8 })); -const Main_REC_parseDecls_recover = ( arg ) => { switch (arg.h8.tag) { case 1: { const sc$$12 = Prelude__$26$26_(Prelude_jsEq(null, arg.h8.h1.h2.h1, 0), Prelude_not(Lib_Token_Prelude_Eq$20Lib_Token_Bounds$2C_$3D$3D_(arg.h8.h1.h2, arg.h5.h2))); switch (sc$$12) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8.h2 }; case 0: return { tag: 0, h0: Prelude__$3A$3A_(null, arg.h8.h1, arg.h8.h2) }; } break; } case 0: return { tag: 0, h0: Prelude_Nil(null) }; } }; -const Lib_Token_Prelude_Eq$20Lib_Token_Bounds$2C_$3D$3D_ = ( _$$0, _$$1 ) => (Prelude__$26$26_(Prelude_jsEq(null, _$$0.h0, _$$1.h0), Prelude__$26$26_(Prelude_jsEq(null, _$$0.h1, _$$1.h1), Prelude__$26$26_(Prelude_jsEq(null, _$$0.h2, _$$1.h2), Prelude_jsEq(null, _$$0.h3, _$$1.h3))))); +const Main_REC_parseDecls_recover = ( arg ) => { switch (arg.h8.tag) { case 1: { const sc$$12 = Prelude__$26$26_(Prelude_jsEq(null, arg.h8.h1.h2.h1, 0), Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_Bounds$2C_$3D$3D_(arg.h8.h1.h2, arg.h5.h2))); switch (sc$$12) { case 1: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8.h2 }; case 0: return { tag: 0, h0: Prelude__$3A$3A_(null, arg.h8.h1, arg.h8.h2) }; } break; } case 0: return { tag: 0, h0: Prelude_Nil(null) }; } }; +const Lib_Common_Prelude_Eq$20Lib_Common_Bounds$2C_$3D$3D_ = ( _$$0, _$$1 ) => (Prelude__$26$26_(Prelude_jsEq(null, _$$0.h0, _$$1.h0), Prelude__$26$26_(Prelude_jsEq(null, _$$0.h1, _$$1.h1), Prelude__$26$26_(Prelude_jsEq(null, _$$0.h2, _$$1.h2), Prelude_jsEq(null, _$$0.h3, _$$1.h3))))); const Lib_Syntax_Record = ( h0, h1, h2, h3, h4 ) => ({ tag: 10, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); -const Lib_Parser_Impl_OK = ( h0, h1, h2, h3, h4 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); +const Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, _$$1, last, toks, com, ops)))))))); +const Lib_Parser_Impl_OK = ( h0, h1, h2, h3, h4, h5 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5 }); const Lib_Parser_Impl_P = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); const Lib_Parser_Impl_keyword$27 = ( _$$0 ) => (Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( _$$3 ) => (0), Lib_Parser_Impl_satisfy(( t ) => (Prelude__$26$26_(Prelude_jsEq(null, t.h1.h1, _$$0), Prelude__$7C$7C_(Prelude_jsEq(null, Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(t.h1.h0), Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(2)), Prelude__$7C$7C_(Prelude_jsEq(null, Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(t.h1.h0), Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(8)), Prelude_jsEq(null, Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(t.h1.h0), Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(4)))))), (("Expected ") + (_$$0)) + ("")))); const Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow = ( _$$0 ) => { switch (_$$0) { case 20: return "EndInterp"; case 19: return "StartInterp"; case 18: return "EndQuote"; case 17: return "StartQuote"; case 16: return "EOI"; case 15: return "RBrace"; case 14: return "Semi"; case 13: return "LBrace"; case 12: return "Projection"; case 11: return "Pragma"; case 10: return "Comment"; case 9: return "Space"; case 8: return "Symbol"; case 7: return "JSLit"; case 6: return "String"; case 5: return "Character"; case 4: return "Number"; case 3: return "MixFix"; case 2: return "Keyword"; case 1: return "UIdent"; case 0: return "Ident"; } }; -const Lib_Parser_Impl_satisfy = ( _$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => { switch (toks.tag) { case 1: { const sc$$10 = _$$0(toks.h1); switch (sc$$10) { case 1: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(col.h0, toks, (((((("") + (_$$1)) + (" at ")) + (Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(toks.h1.h1.h0))) + (":")) + (toks.h1.h1.h1)) + ("")), toks, com, ops); case 0: return Lib_Parser_Impl_OK(null, toks.h1.h1.h1, toks.h2, 0, ops); } break; } case 0: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(col.h0, toks, (("") + (_$$1)) + (" at EOF")), toks, com, ops); } }))))); -const Lib_Parser_Impl_perror = ( _$$0, _$$1, _$$2 ) => { switch (_$$1.tag) { case 1: return Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, _$$1.h1.h2.h0, _$$1.h1.h2.h1)), _$$2); case 0: return Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), _$$2); } }; -const Lib_Parser_Impl_Fail = ( h0, h1, h2, h3, h4, h5 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5 }); -const Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Result$2Cmap(null, null, _$$2, _$$3.h1(toks)(com)(ops)(col)))))))); -const Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Result$2Cmap = ( a$$0, b$$1, _$$2, _$$3 ) => { switch (_$$3.tag) { case 1: return Lib_Parser_Impl_Fail(null, _$$3.h1, _$$3.h2, _$$3.h3, _$$3.h4, _$$3.h5); case 0: return Lib_Parser_Impl_OK(null, _$$2(_$$3.h1), _$$3.h2, _$$3.h3, _$$3.h4); } }; -const Lib_Parser_Impl_indented = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: { const sc$$12 = Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1); const sc$$17 = Prelude__$7C$7C_(Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$12.h3, indent.h1.h3), 2), Prelude_jsEq(null, sc$$12.h2, indent.h1.h2)); switch (sc$$17) { case 1: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected outdent"), toks, com, ops); case 0: return _$$1.h1(toks)(com)(ops)(indent); } break; } case 0: return _$$1.h1(toks)(com)(ops)(indent); } }))))); -const Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_ = ( a$$0, _$$1, _$$2 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$11 = _$$1.h1(toks)(1)(ops)(col); switch (sc$$11.tag) { case 1: switch (sc$$11.h1) { case 0: return Lib_Parser_Impl_Fail(null, 0, sc$$11.h2, sc$$11.h3, sc$$11.h4, sc$$11.h5); default: switch (sc$$11.h4) { case 1: return _$$2.h1(toks)(com)(sc$$11.h5)(col); case 0: return Lib_Parser_Impl_Fail(null, sc$$11.h1, sc$$11.h2, sc$$11.h3, 0, sc$$11.h5); } break; } break; case 0: return Lib_Parser_Impl_OK(null, sc$$11.h1, sc$$11.h2, com, sc$$11.h4); } }))))); +const Lib_Parser_Impl_satisfy = ( _$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { switch (toks.tag) { case 1: { const sc$$11 = _$$0(toks.h1); switch (sc$$11) { case 1: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(col.h0, toks, (((((("") + (_$$1)) + (" at ")) + (Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(toks.h1.h1.h0))) + (":")) + (toks.h1.h1.h1)) + ("")), last, toks, com, ops); case 0: return Lib_Parser_Impl_OK(null, toks.h1.h1.h1, toks.h1.h2, toks.h2, 0, ops); } break; } case 0: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(col.h0, toks, (("") + (_$$1)) + (" at EOF")), last, toks, com, ops); } })))))); +const Lib_Parser_Impl_perror = ( _$$0, _$$1, _$$2 ) => { switch (_$$1.tag) { case 1: return Lib_Common_E(Lib_Common_MkFC(_$$0, _$$1.h1.h2), _$$2); case 0: return Lib_Common_E(Lib_Common_MkFC(_$$0, Lib_Common_MkBounds(0, 0, 0, 0)), _$$2); } }; +const Lib_Parser_Impl_Fail = ( h0, h1, h2, h3, h4, h5, h6 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5, h6: h6 }); +const Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Result$2Cmap(null, null, _$$2, _$$3.h1(last)(toks)(com)(ops)(col))))))))); +const Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Result$2Cmap = ( a$$0, b$$1, _$$2, _$$3 ) => { switch (_$$3.tag) { case 1: return Lib_Parser_Impl_Fail(null, _$$3.h1, _$$3.h2, _$$3.h3, _$$3.h4, _$$3.h5, _$$3.h6); case 0: return Lib_Parser_Impl_OK(null, _$$2(_$$3.h1), _$$3.h2, _$$3.h3, _$$3.h4, _$$3.h5); } }; +const Lib_Parser_Impl_indented = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: { const sc$$13 = Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1); const sc$$18 = Prelude__$7C$7C_(Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$13.h3, indent.h1.h1), 2), Prelude_jsEq(null, sc$$13.h2, indent.h1.h0)); switch (sc$$18) { case 1: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected outdent"), last, toks, com, ops); case 0: return _$$1.h1(last)(toks)(com)(ops)(indent); } break; } case 0: return _$$1.h1(last)(toks)(com)(ops)(indent); } })))))); +const Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_ = ( a$$0, _$$1, _$$2 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$12 = _$$1.h1(last)(toks)(1)(ops)(col); switch (sc$$12.tag) { case 1: switch (sc$$12.h1) { case 0: return Lib_Parser_Impl_Fail(null, 0, sc$$12.h2, sc$$12.h3, sc$$12.h4, sc$$12.h5, sc$$12.h6); default: switch (sc$$12.h5) { case 1: return _$$2.h1(last)(toks)(com)(sc$$12.h6)(col); case 0: return Lib_Parser_Impl_Fail(null, sc$$12.h1, sc$$12.h2, sc$$12.h3, sc$$12.h4, 0, sc$$12.h6); } break; } break; case 0: return Lib_Parser_Impl_OK(null, sc$$12.h1, sc$$12.h2, sc$$12.h3, com, sc$$12.h5); } })))))); const Lib_Parser_arrow = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("->")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("→"))); -const Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_ = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$12 = _$$2.h1(toks)(com)(ops)(col); switch (sc$$12.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$12.h1, sc$$12.h2, sc$$12.h3, sc$$12.h4, sc$$12.h5); case 0: { const sc$$18 = _$$3.h1(sc$$12.h2)(sc$$12.h3)(sc$$12.h4)(col); switch (sc$$18.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$18.h1, sc$$18.h2, sc$$18.h3, sc$$18.h4, sc$$18.h5); case 0: return Lib_Parser_Impl_OK(null, sc$$12.h1(sc$$18.h1), sc$$18.h2, sc$$18.h3, sc$$18.h4); } break; } } }))))); -const Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser = Prelude_MkApplicative(null, ( a ) => (( _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, _$$1, toks, com, ops)))))))), ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, eta, eta1)))))); +const Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_ = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$13 = _$$2.h1(last)(toks)(com)(ops)(col); switch (sc$$13.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$13.h1, sc$$13.h2, sc$$13.h3, sc$$13.h4, sc$$13.h5, sc$$13.h6); case 0: { const sc$$20 = _$$3.h1(sc$$13.h2)(sc$$13.h3)(sc$$13.h4)(sc$$13.h5)(col); switch (sc$$20.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$20.h1, sc$$20.h2, sc$$20.h3, sc$$20.h4, sc$$20.h5, sc$$20.h6); case 0: return Lib_Parser_Impl_OK(null, sc$$13.h1(sc$$20.h1), sc$$20.h2, sc$$20.h3, sc$$20.h4, sc$$20.h5); } break; } } })))))); +const Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser = Prelude_MkApplicative(null, ( a ) => (( eta ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, eta))), ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, eta, eta1)))))); const Prelude_MkFunctor = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); const Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser = Prelude_MkFunctor(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, eta, eta1)))))); const Prelude__$2A$3E_ = ( f$$0, a$$1, b$$2, _$$3, _$$4, _$$5, _$$6 ) => (Prelude__$3C$2A$3E_(null, _$$4)(null)(null)(Prelude_map(null, _$$3)(null)(null)(( _$$31 ) => (( _$$1 ) => (_$$1)))(_$$5))(_$$6)); const Prelude_map = ( m$$0, _$$1 ) => (( a ) => (( b ) => (_$$1.h1(null)(null)))); -const Lib_Parser_optional = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (Prelude_Just(null, eta)), _$$1), Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_Nothing(null), toks, com, ops)))))))); -const Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$10 = _$$2.h1(toks)(com)(ops)(col); switch (sc$$10.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$10.h1, sc$$10.h2, sc$$10.h3, sc$$10.h4, sc$$10.h5); case 0: return Lib_Parser_Impl_runP(null, _$$3(sc$$10.h1))(sc$$10.h2)(sc$$10.h3)(sc$$10.h4)(col); } }))))); +const Lib_Parser_optional = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (Prelude_Just(null, eta)), _$$1), Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_Nothing(null)))); +const Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$11 = _$$2.h1(last)(toks)(com)(ops)(col); switch (sc$$11.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$11.h1, sc$$11.h2, sc$$11.h3, sc$$11.h4, sc$$11.h5, sc$$11.h6); case 0: return Lib_Parser_Impl_runP(null, _$$3(sc$$11.h1))(sc$$11.h2)(sc$$11.h3)(sc$$11.h4)(sc$$11.h5)(col); } })))))); const Lib_Parser_Impl_runP = ( a$$0, _$$1 ) => (_$$1.h1); const Lib_Parser_term_apply = ( _, _$$1, _$$2 ) => { switch (_$$2.tag) { case 1: return Lib_Syntax_RApp(_$$2.h1.h2, _$$1, Lib_Parser_term_apply(_, _$$2.h1.h3, _$$2.h2), 1); case 0: return _$$1; } }; -const Lib_Parser_Impl_fail = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(col.h0, toks, _$$1), toks, com, ops))))))); -const Lib_Parser_pratt = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, null, _$$2, _$$3, _$$4), ( $$sc ) => { const sc$$15 = Lib_Parser_pratt_projectHead(_$$0, _$$1, _$$2, _$$3, _$$4, null, $$sc.h2, $$sc.h3); const spine = Lib_Parser_pratt_projectHead_runProject(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, sc$$15.h3); switch (spine.tag) { case 1: switch (spine.h1.h2) { case 1: switch (spine.h1.h3.h3.tag) { case 0: { const sc$$35 = Prelude_jsEq(null, spine.h1.h3.h3.h1, _$$2); switch (sc$$35) { case 1: { const sc$$36 = Data_SortedMap_lookupMap$27(null, null, spine.h1.h3.h3.h1, _$$0); switch (sc$$36.tag) { case 1: { const sc$$38 = Prelude_isPrefixOf(".", spine.h1.h3.h3.h1); switch (sc$$38) { case 1: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2), sc$$15.h2, spine.h1.h3.h3, 1), spine.h2); case 0: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(spine.h1.h3.h3), spine.h1.h3.h3, sc$$15.h2, 1), spine.h2); } break; } case 0: switch (sc$$36.h1.h3) { case 1: { const sc$$44 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$36.h1.h1, _$$1), 0); switch (sc$$44) { case 1: return Lib_Parser_pratt_projectHead_runProject_runRule(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, sc$$36.h1.h1, sc$$36.h1.h2, _$$2, sc$$36.h1.h4, Lib_Syntax_RApp(spine.h1.h3.h2, Lib_Syntax_RVar(spine.h1.h3.h2, sc$$36.h1.h0), sc$$15.h2, 1), spine.h2); case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, sc$$15.h2, spine), toks, com, ops)))))); } break; } default: return Lib_Parser_Impl_fail(null, "expected operator"); } break; } break; } case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, sc$$15.h2, spine), toks, com, ops)))))); } break; } default: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2), sc$$15.h2, spine.h1.h3.h3, spine.h1.h2), spine.h2); } break; default: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2), sc$$15.h2, spine.h1.h3.h3, spine.h1.h2), spine.h2); } break; case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, sc$$15.h2, Prelude_Nil(null)), toks, com, ops)))))); } })); -const Lib_Parser_pratt_projectHead_runProject_runRule = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { switch (_$$11.tag) { case 1: switch (_$$11.h1) { case "": switch (_$$11.h2.tag) { case 0: { let pr; switch (_$$9) { case 1: { pr = _$$8; break; } default: { pr = (_$$8) + (1); break; } } switch (_$$13.tag) { case 1: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(_, pr, _$$10, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => (Lib_Parser_pratt(_, _1, _$$10, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12), _$$12, $$sc.h2, 1), $$sc.h3))); default: return Lib_Parser_Impl_fail(null, "trailing operator"); } break; } default: switch (_$$13.tag) { case 1: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { switch ($$sc.h3.tag) { case 1: switch ($$sc.h3.h1.h3.h3.tag) { case 0: { const sc$$49 = Prelude_jsEq(null, $$sc.h3.h1.h3.h3.h1, _$$11.h1); switch (sc$$49) { case 1: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); case 0: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12), _$$12, $$sc.h2, 1), $$sc.h3.h2); } break; } default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } break; default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } }); case 0: return Lib_Parser_Impl_fail(null, "short"); } break; } break; default: switch (_$$13.tag) { case 1: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { switch ($$sc.h3.tag) { case 1: switch ($$sc.h3.h1.h3.h3.tag) { case 0: { const sc$$49 = Prelude_jsEq(null, $$sc.h3.h1.h3.h3.h1, _$$11.h1); switch (sc$$49) { case 1: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); case 0: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12), _$$12, $$sc.h2, 1), $$sc.h3.h2); } break; } default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } break; default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } }); case 0: return Lib_Parser_Impl_fail(null, "short"); } break; } break; case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, _$$12, _$$13), toks, com, ops)))))); } }; +const Lib_Parser_Impl_fail = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(col.h0, toks, _$$1), last, toks, com, ops)))))))); +const Lib_Parser_pratt = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, null, _$$2, _$$3, _$$4), ( $$sc ) => { const sc$$15 = Lib_Parser_pratt_projectHead(_$$0, _$$1, _$$2, _$$3, _$$4, null, $$sc.h2, $$sc.h3); const spine = Lib_Parser_pratt_projectHead_runProject(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, sc$$15.h3); switch (spine.tag) { case 1: switch (spine.h1.h2) { case 1: switch (spine.h1.h3.h3.tag) { case 0: { const sc$$35 = Prelude_jsEq(null, spine.h1.h3.h3.h1, _$$2); switch (sc$$35) { case 1: { const sc$$36 = Data_SortedMap_lookupMap$27(null, null, spine.h1.h3.h3.h1, _$$0); switch (sc$$36.tag) { case 1: { const sc$$38 = Prelude_isPrefixOf(".", spine.h1.h3.h3.h1); switch (sc$$38) { case 1: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2), sc$$15.h2, spine.h1.h3.h3, 1), spine.h2); case 0: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(spine.h1.h3.h3), spine.h1.h3.h3, sc$$15.h2, 1), spine.h2); } break; } case 0: switch (sc$$36.h1.h3) { case 1: { const sc$$44 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$36.h1.h1, _$$1), 0); switch (sc$$44) { case 1: return Lib_Parser_pratt_projectHead_runProject_runRule(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, sc$$36.h1.h1, sc$$36.h1.h2, _$$2, sc$$36.h1.h4, Lib_Syntax_RApp(spine.h1.h3.h2, Lib_Syntax_RVar(spine.h1.h3.h2, sc$$36.h1.h0), sc$$15.h2, 1), spine.h2); case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, sc$$15.h2, spine)); } break; } default: return Lib_Parser_Impl_fail(null, "expected operator"); } break; } break; } case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, sc$$15.h2, spine)); } break; } default: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2), sc$$15.h2, spine.h1.h3.h3, spine.h1.h2), spine.h2); } break; default: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2), sc$$15.h2, spine.h1.h3.h3, spine.h1.h2), spine.h2); } break; case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, sc$$15.h2, Prelude_Nil(null))); } })); +const Lib_Parser_pratt_projectHead_runProject_runRule = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { switch (_$$11.tag) { case 1: switch (_$$11.h1) { case "": switch (_$$11.h2.tag) { case 0: { let pr; switch (_$$9) { case 1: { pr = _$$8; break; } default: { pr = (_$$8) + (1); break; } } switch (_$$13.tag) { case 1: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(_, pr, _$$10, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => (Lib_Parser_pratt(_, _1, _$$10, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12), _$$12, $$sc.h2, 1), $$sc.h3))); default: return Lib_Parser_Impl_fail(null, "trailing operator"); } break; } default: switch (_$$13.tag) { case 1: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { switch ($$sc.h3.tag) { case 1: switch ($$sc.h3.h1.h3.h3.tag) { case 0: { const sc$$49 = Prelude_jsEq(null, $$sc.h3.h1.h3.h3.h1, _$$11.h1); switch (sc$$49) { case 1: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); case 0: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12), _$$12, $$sc.h2, 1), $$sc.h3.h2); } break; } default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } break; default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } }); case 0: return Lib_Parser_Impl_fail(null, "short"); } break; } break; default: switch (_$$13.tag) { case 1: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { switch ($$sc.h3.tag) { case 1: switch ($$sc.h3.h1.h3.h3.tag) { case 0: { const sc$$49 = Prelude_jsEq(null, $$sc.h3.h1.h3.h3.h1, _$$11.h1); switch (sc$$49) { case 1: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); case 0: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12), _$$12, $$sc.h2, 1), $$sc.h3.h2); } break; } default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } break; default: return Lib_Parser_Impl_fail(null, (("expected ") + (_$$11.h1)) + ("")); } }); case 0: return Lib_Parser_Impl_fail(null, "short"); } break; } break; case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, _$$12, _$$13)); } }; const Prelude_isPrefixOf = (pfx, s) => s.startsWith(pfx) ? Prelude_True : Prelude_False; const Lib_Parser_pratt_projectHead_runProject = ( _, _1, _2, _3, _4, _5, _6, _$$7 ) => (bouncer(Lib_Parser_REC_pratt_projectHead_runProject, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _$$7 })); const Lib_Parser_REC_pratt_projectHead_runProject = ( arg ) => { switch (arg.h7.tag) { case 1: switch (arg.h7.h1.h2) { case 1: switch (arg.h7.h2.tag) { case 1: switch (arg.h7.h2.h1.h2) { case 1: switch (arg.h7.h2.h1.h3.h3.tag) { case 0: { const sc$$32 = Prelude_isPrefixOf(".", arg.h7.h2.h1.h3.h3.h1); switch (sc$$32) { case 1: return { tag: 0, h0: Prelude__$3A$3A_(null, arg.h7.h1, Prelude__$3A$3A_(null, arg.h7.h2.h1, arg.h7.h2.h2)) }; case 0: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, arg.h7.h1.h3.h2, Lib_Syntax_RApp(arg.h7.h2.h1.h3.h3.h0, Lib_Syntax_RVar(arg.h7.h2.h1.h3.h3.h0, arg.h7.h2.h1.h3.h3.h1), arg.h7.h1.h3.h3, 1))), arg.h7.h2.h2) }; } break; } default: return { tag: 0, h0: arg.h7 }; } break; default: return { tag: 0, h0: arg.h7 }; } break; default: return { tag: 0, h0: arg.h7 }; } break; default: return { tag: 0, h0: arg.h7 }; } break; default: return { tag: 0, h0: arg.h7 }; } }; const Lib_Parser_pratt_projectHead = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => (bouncer(Lib_Parser_REC_pratt_projectHead, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _$$6, h7: _$$7 })); const Lib_Parser_REC_pratt_projectHead = ( arg ) => { switch (arg.h7.tag) { case 1: switch (arg.h7.h1.h2) { case 1: switch (arg.h7.h1.h3.h3.tag) { case 0: { const sc$$21 = Prelude_isPrefixOf(".", arg.h7.h1.h3.h3.h1); switch (sc$$21) { case 1: return { tag: 0, h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; case 0: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Lib_Syntax_RApp(arg.h7.h1.h3.h3.h0, Lib_Syntax_RVar(arg.h7.h1.h3.h3.h0, arg.h7.h1.h3.h3.h1), arg.h6, 1), h7: arg.h7.h2 }; } break; } default: return { tag: 0, h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; default: return { tag: 0, h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; default: return { tag: 0, h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } }; -const Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10, _$$11 ) => { switch (_$$10.tag) { case 0: { const sc$$14 = Data_SortedMap_lookupMap$27(null, null, _$$10.h1, _); switch (sc$$14.tag) { case 0: switch (sc$$14.h1.h3) { case 0: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, sc$$14.h1.h1, sc$$14.h1.h2, _$$9, sc$$14.h1.h4, Lib_Syntax_RVar(_$$10.h0, sc$$14.h1.h0), _$$11); default: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, _3, _$$11), toks, com, ops)))))); } break; default: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, _3, _$$11), toks, com, ops)))))); } break; } default: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, _$$10, _$$11), toks, com, ops)))))); } }; +const Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10, _$$11 ) => { switch (_$$10.tag) { case 0: { const sc$$14 = Data_SortedMap_lookupMap$27(null, null, _$$10.h1, _); switch (sc$$14.tag) { case 0: switch (sc$$14.h1.h3) { case 0: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, sc$$14.h1.h1, sc$$14.h1.h2, _$$9, sc$$14.h1.h4, Lib_Syntax_RVar(_$$10.h0, sc$$14.h1.h0), _$$11); default: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, _3, _$$11)); } break; default: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, _3, _$$11)); } break; } default: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, _$$10, _$$11)); } }; const Lib_Syntax_RUpdateRec = ( h0, h1, h2 ) => ({ tag: 15, h0: h0, h1: h1, h2: h2 }); const Lib_Syntax_ModifyField = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); const Lib_Syntax_AssignField = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); -const Lib_Parser_dbraces = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}}")), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, t, toks, com, ops))))))))))))); -const Lib_Parser_braces = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}")), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, t, toks, com, ops))))))))))))); -const Lib_Parser_Impl_getPos = Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: return Lib_Parser_Impl_OK(null, Lib_Common_MkFC(indent.h0, Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1)), toks, com, ops); case 0: return Lib_Parser_Impl_OK(null, Lib_Common_emptyFC, toks, com, ops); } })))); -const Lib_Parser_Impl_many = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_some(null, _$$1), Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_Nil(null), toks, com, ops)))))))); -const Lib_Parser_Impl_some = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( x ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, _$$1), ( xs ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$3A$3A_(null, x, xs), toks, com, ops))))))))))); -const Lib_Parser_Impl_getOps = Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, ops, toks, com, ops)))))); +const Lib_Parser_dbraces = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}}")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, t)))))))); +const Lib_Parser_braces = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, t)))))))); +const Lib_Parser_Impl_getPos = Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: return Lib_Parser_Impl_OK(null, Lib_Common_MkFC(indent.h0, toks.h1.h2), last, toks, com, ops); case 0: return Lib_Parser_Impl_OK(null, Lib_Common_MkFC(indent.h0, last), last, toks, com, ops); } }))))); +const Lib_Parser_Impl_many = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_some(null, _$$1), Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_Nil(null)))); +const Lib_Parser_Impl_some = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( x ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, _$$1), ( xs ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$3A$3A_(null, x, xs))))))); +const Lib_Parser_Impl_getOps = Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, ops, last, toks, com, ops))))))); const Lib_Syntax_RIf = ( h0, h1, h2, h3 ) => ({ tag: 12, h0: h0, h1: h1, h2: h2, h3: h3 }); -const Lib_Parser_parseIfThen = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("if")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( a ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("then")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( b ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("else")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( c ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RIf(fc, a, b, c), toks, com, ops)))))))))))))))))))); +const Lib_Parser_parseIfThen = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("if")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( a ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("then")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( b ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("else")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( c ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RIf(fc, a, b, c)))))))))))))))); const Lib_Syntax_DoExpr = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); const Lib_Syntax_DoArrow = ( h0, h1, h2, h3 ) => ({ tag: 2, h0: h0, h1: h1, h2: h2, h3: h3 }); -const Lib_Parser_caseAlt = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, 0, toks, com, ops)))))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=>")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( t ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_MkAlt(pat, t), toks, com, ops)))))))))))))); -const Lib_Parser_Impl_sameLevel = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: { const sc$$12 = Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1); const sc$$24 = Prelude_jsEq(null, sc$$12.h3, indent.h1.h3); switch (sc$$24) { case 1: { const sc$$25 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, indent.h1.h3, sc$$12.h3), 0); switch (sc$$25) { case 1: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected indent"), toks, com, ops); case 0: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected indent"), toks, com, ops); } break; } case 0: return _$$1.h1(toks)(com)(ops)(Lib_Common_MkFC(indent.h0, Prelude__$2C_(null, null, sc$$12.h2, indent.h1.h3))); } break; } case 0: return _$$1.h1(toks)(com)(ops)(indent); } }))))); -const Lib_Parser_Impl_startBlock = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: { const sc$$12 = Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1); return _$$1.h1(toks)(com)(ops)(Lib_Common_MkFC(indent.h0, Prelude__$2C_(null, null, sc$$12.h2, Prelude_ite(null, Prelude_not(Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$12.h3, indent.h1.h3), 2)), (indent.h1.h3) + (1), sc$$12.h3)))); break; } case 0: return _$$1.h1(toks)(com)(ops)(indent); } }))))); -const Lib_Parser_doArrow = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( left ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("<-"))), ( $$sc ) => { switch ($$sc.tag) { case 0: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( right ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_DoArrow(fc, left, right, alts), toks, com, ops)))))))))); default: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_DoExpr(fc, left), toks, com, ops)))))); } }))))); +const Lib_Parser_caseAlt = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, 0), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=>")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_MkAlt(pat, t)))))))))); +const Lib_Parser_Impl_sameLevel = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: { const sc$$13 = Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1); const sc$$25 = Prelude_jsEq(null, sc$$13.h3, indent.h1.h1); switch (sc$$25) { case 1: { const sc$$26 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, indent.h1.h1, sc$$13.h3), 0); switch (sc$$26) { case 1: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected indent"), last, toks, com, ops); case 0: return Lib_Parser_Impl_Fail(null, 1, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected indent"), last, toks, com, ops); } break; } case 0: return _$$1.h1(last)(toks)(com)(ops)(Lib_Common_MkFC(indent.h0, toks.h1.h2)); } break; } case 0: return _$$1.h1(last)(toks)(com)(ops)(indent); } })))))); +const Lib_Parser_Impl_startBlock = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => { switch (toks.tag) { case 1: { const sc$$13 = Prelude__$2C_(null, null, toks.h1.h2.h0, toks.h1.h2.h1); return _$$1.h1(last)(toks)(com)(ops)(Lib_Common_MkFC(indent.h0, Prelude_ite(null, Prelude_not(Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$13.h3, indent.h1.h1), 2)), Lib_Common_MkBounds(sc$$13.h2, (indent.h1.h1) + (1), 0, 0), toks.h1.h2))); break; } case 0: return _$$1.h1(last)(toks)(com)(ops)(indent); } })))))); +const Lib_Parser_doArrow = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( left ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("<-"))), ( $$sc ) => { switch ($$sc.tag) { case 0: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( right ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_DoArrow(fc, left, right, alts)))))); default: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_DoExpr(fc, left)); } }))))); const Lib_Syntax_DoLet = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); const Lib_Parser_Impl_token$27 = ( _$$0 ) => (Lib_Parser_Impl_satisfy(( t ) => (Prelude_jsEq(null, Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(t.h1.h0), Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(_$$0))), (("Expected a ") + (Lib_Token_Prelude_Show$20Lib_Token_Kind$2Cshow(_$$0))) + (" token"))); const Lib_Parser_ident = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(0)), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))); -const Lib_Parser_doLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( tm ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_DoLet(fc, nm, tm), toks, com, ops)))))))))))))))); +const Lib_Parser_doLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( tm ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_DoLet(fc, nm, tm)))))))))))); const Lib_Syntax_RDo = ( h0, h1 ) => ({ tag: 11, h0: h0, h1: h1 }); -const Lib_Parser_Impl_try = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$8 = _$$1.h1(toks)(com)(ops)(col); switch (sc$$8.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$8.h1, sc$$8.h2, sc$$8.h3, 1, sc$$8.h5); default: return sc$$8; } }))))); -const Lib_Parser_doCaseLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("("))))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( bodyFC ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RDo(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_doStmt))), ( body ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_DoExpr(fc, Lib_Syntax_RCase(fc, sc, Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(pat, body), alts))), toks, com, ops)))))))))))))))))))))))); +const Lib_Parser_Impl_try = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$9 = _$$1.h1(last)(toks)(com)(ops)(col); switch (sc$$9.tag) { case 1: return Lib_Parser_Impl_Fail(null, sc$$9.h1, sc$$9.h2, sc$$9.h3, sc$$9.h4, 1, sc$$9.h6); default: return sc$$9; } })))))); +const Lib_Parser_doCaseLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("("))))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( bodyFC ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RDo(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_doStmt))), ( body ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_DoExpr(fc, Lib_Syntax_RCase(fc, sc, Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(pat, body), alts)))))))))))))))))))))); const Lib_Parser_doStmt = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_doCaseLet, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_doLet, Lib_Parser_doArrow)); const Prelude__$3C$2A_ = ( f$$0, a$$1, b$$2, _$$3, _$$4, _$$5 ) => (Prelude__$3C$2A$3E_(null, _$$3)(null)(null)(Prelude__$3C$2A$3E_(null, _$$3)(null)(null)(Prelude_return(null, _$$3)(null)(( _$$2 ) => (( _$$31 ) => (_$$2))))(_$$4))(_$$5)); const Lib_Parser_doExpr = Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RDo(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("do"))), Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_doStmt)))); const Lib_Parser_lamExpr_mkLam = ( _, _$$1, _$$2 ) => (Lib_Syntax_RLam(_$$1.h2, Lib_Types_BI(_$$1.h2, _$$1.h3.h3.h2, _$$1.h3.h2, 1), _$$2)); const Lib_Parser_uident = Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(1)); -const Lib_Parser_pLamArg_impArg_autoArg_expArg = ( _, _1, _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_parenWrap(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _3 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, nm, ty)), toks, com, ops))))))))))); -const Lib_Parser_parenWrap = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("(")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, t, toks, com, ops))))))))))))); -const Lib_Parser_pLamArg_impArg_autoArg = ( _, _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_dbraces(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _2 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, 2, Prelude__$2C_(null, null, nm, ty)), toks, com, ops))))))))))); -const Lib_Parser_pLamArg_impArg = ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_braces(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _1 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, 0, Prelude__$2C_(null, null, nm, ty)), toks, com, ops))))))))))); -const Lib_Parser_pLamArg = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_pLamArg_impArg(null), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_pLamArg_impArg_autoArg(null, null), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_pLamArg_impArg_autoArg_expArg(null, null, null), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( x ) => (Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, x, Prelude_Nothing(null)))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("_")), Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, "_", Prelude_Nothing(null))), toks, com, ops))))))))))); +const Lib_Parser_pLamArg_impArg_autoArg_expArg = ( _, _1, _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_parenWrap(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _3 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, nm, ty)))))))); +const Lib_Parser_parenWrap = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("(")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, _$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, t)))))))); +const Lib_Parser_pLamArg_impArg_autoArg = ( _, _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_dbraces(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _2 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, 2, Prelude__$2C_(null, null, nm, ty)))))))); +const Lib_Parser_pLamArg_impArg = ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_braces(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _1 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, 0, Prelude__$2C_(null, null, nm, ty)))))))); +const Lib_Parser_pLamArg = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_pLamArg_impArg(null), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_pLamArg_impArg_autoArg(null, null), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_pLamArg_impArg_autoArg_expArg(null, null, null), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( x ) => (Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, x, Prelude_Nothing(null)))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_uident)), Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("_")), Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, "_", Prelude_Nothing(null))))))))); const Lib_Parser_addPos = ( a$$0, _$$1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Prelude__$2C_(null, null, eta, eta1))), Lib_Parser_Impl_getPos), _$$1)); -const Lib_Parser_lamExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( pos ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("λ"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_pLamArg)), ( args ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=>")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_lamExpr_mkLam(null, eta, eta1))), scope, args), toks, com, ops)))))))))))))))); -const Lib_Parser_caseLamExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("λ"))), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("case")))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_caseAlt))), ( alts ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RLam(fc, Lib_Types_BI(fc, "$case", 1, 1), Lib_Syntax_RCase(fc, Lib_Syntax_RVar(fc, "$case"), alts)), toks, com, ops)))))))))))); +const Lib_Parser_lamExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( pos ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("λ"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_pLamArg)), ( args ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=>")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_lamExpr_mkLam(null, eta, eta1))), scope, args)))))))))))); +const Lib_Parser_caseLamExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("λ"))), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("case")))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_caseAlt))), ( alts ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RLam(fc, Lib_Types_BI(fc, "$case", 1, 1), Lib_Syntax_RCase(fc, Lib_Syntax_RVar(fc, "$case"), alts))))))))); const Lib_Parser_letExpr_mkLet = ( _, _$$1, _$$2 ) => (Lib_Syntax_RLet(_$$2.h3.h2, _$$2.h2, Prelude_fromMaybe(null, Lib_Syntax_RImplicit(_$$2.h3.h2), _$$2.h3.h3.h2), _$$2.h3.h3.h3, _$$1)); -const Lib_Parser_letExpr_mkLet_letAssign = ( _, _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), Lib_Parser_typeExpr)), ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( t ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, name, Prelude__$2C_(null, null, fc, Prelude__$2C_(null, null, ty, t))), toks, com, ops))))))))))))))))); -const Lib_Parser_letExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_letExpr_mkLet_letAssign(null, null)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_keyword$27("in"), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_letExpr_mkLet(null, eta, eta1))), scope, Prelude_reverse(null)(alts)), toks, com, ops)))))))))))))); -const Lib_Parser_caseLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("("))))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("in")), ( _3 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( body ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RCase(fc, sc, Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(pat, body), alts)), toks, com, ops)))))))))))))))))))))))); -const Lib_Parser_caseExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("case")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("of")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_caseAlt))), ( alts ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RCase(fc, sc, alts), toks, com, ops)))))))))))))))); +const Lib_Parser_letExpr_mkLet_letAssign = ( _, _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), Lib_Parser_typeExpr)), ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, name, Prelude__$2C_(null, null, fc, Prelude__$2C_(null, null, ty, t))))))))))))))); +const Lib_Parser_letExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_letExpr_mkLet_letAssign(null, null)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_keyword$27("in"), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_letExpr_mkLet(null, eta, eta1))), scope, Prelude_reverse(null)(alts))))))))))); +const Lib_Parser_caseLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("("))))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("in")), ( _3 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( body ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RCase(fc, sc, Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(pat, body), alts))))))))))))))))))))); +const Lib_Parser_caseExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("case")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("of")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_caseAlt))), ( alts ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RCase(fc, sc, alts)))))))))))); const Prelude__$3C$$_ = ( f$$0, a$$1, b$$2, _$$3, _$$4, _$$5 ) => (Prelude_map(null, _$$3)(null)(null)(( _$$31 ) => (_$$4))(_$$5)); -const Lib_Parser_updateClause = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 0, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":="))), Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 1, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("$=")))), ( op ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( tm ) => { switch (op) { case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_AssignField(fc, nm, tm), toks, com, ops)))))); default: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_ModifyField(fc, nm, tm), toks, com, ops)))))); } }))))))); +const Lib_Parser_updateClause = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 0, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":="))), Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 1, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("$=")))), ( op ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( tm ) => { switch (op) { case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_AssignField(fc, nm, tm)); default: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_ModifyField(fc, nm, tm)); } }))))))); const Lib_Parser_Impl_sepBy = ( s$$0, a$$1, _$$2, _$$3 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Prelude__$3A$3A_(null, eta, eta1))), _$$3), Lib_Parser_Impl_many(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, _$$2, _$$3)))); const Lib_Syntax_RHole = ( h0 ) => ({ tag: 10, h0: h0 }); const Prelude_strIndex = (s, ix) => s[ix]; const Lib_Syntax_RLit = ( h0, h1 ) => ({ tag: 7, h0: h0, h1: h1 }); -const Lib_Parser_charLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(5)), ( v ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RLit(fc, Lib_Types_LChar(Prelude_strIndex(v, 0))), toks, com, ops)))))))))); -const Lib_Parser_stringLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(6)), ( t ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RLit(fc, Lib_Types_LString(t)), toks, com, ops)))))))))); +const Lib_Parser_charLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(5)), ( v ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RLit(fc, Lib_Types_LChar(Prelude_strIndex(v, 0)))))))); +const Lib_Parser_stringLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(6)), ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RLit(fc, Lib_Types_LString(t))))))); const Lib_Parser_interpString_append = ( _, _$$1, _$$2 ) => { const fc = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1); return Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1), Lib_Syntax_RApp(fc, Lib_Syntax_RVar(fc, "_++_"), _$$1, 1), _$$2, 1); }; -const Lib_Parser_interp = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(19)), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( tm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(20)), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, tm, toks, com, ops)))))))))))); -const Lib_Parser_interpString = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( _$$3 ) => (0), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(17))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( part ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_stringLit, Lib_Parser_interp)), ( parts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( _$$3 ) => (0), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(18))), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_interpString_append(null, eta, eta1))), part, parts), toks, com, ops)))))))))))))); +const Lib_Parser_interp = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(19)), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( tm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(20)), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, tm))))))); +const Lib_Parser_interpString = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( _$$3 ) => (0), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(17))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( part ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_stringLit, Lib_Parser_interp)), ( parts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( _$$3 ) => (0), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(18))), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_interpString_append(null, eta, eta1))), part, parts)))))))))); const Prelude_stringToInt = (s) => { let rval = Number(s) if (isNaN(rval)) throw new Error(s + " is NaN") return rval }; -const Lib_Parser_intLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(4)), ( t ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RLit(fc, Lib_Types_LInt(Prelude_stringToInt(t))), toks, com, ops)))))))))); +const Lib_Parser_intLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(4)), ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RLit(fc, Lib_Types_LInt(Prelude_stringToInt(t)))))))); const Lib_Parser_lit = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_intLit, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_interpString, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_stringLit, Lib_Parser_charLit))); const Lib_Syntax_RAs = ( h0, h1, h2 ) => ({ tag: 14, h0: h0, h1: h1, h2: h2 }); -const Lib_Parser_asAtom = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("@")), Lib_Parser_parenWrap(null, Lib_Parser_typeExpr))), ( asPat ) => { switch (asPat.tag) { case 1: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RVar(fc, nm), toks, com, ops)))))); case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RAs(fc, nm, asPat.h1), toks, com, ops)))))); } }))))); -const Lib_Parser_recordUpdate = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("[")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_sepBy(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(";")), Lib_Parser_updateClause), ( clauses ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("]")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_atom), ( tm ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RUpdateRec(fc, clauses, tm), toks, com, ops)))))))))))))))); -const Lib_Parser_atom = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, 0, toks, com, ops)))))), ( _ ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, Lib_Syntax_RU, Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("U"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_asAtom, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RVar(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_uident), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RVar(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_lit, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, Lib_Syntax_RImplicit, Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("_"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, Lib_Syntax_RHole, Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("?"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parenWrap(null, Lib_Parser_typeExpr), Lib_Parser_recordUpdate)))))))))); +const Lib_Parser_asAtom = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("@")), Lib_Parser_parenWrap(null, Lib_Parser_typeExpr))), ( asPat ) => { switch (asPat.tag) { case 1: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RVar(fc, nm)); case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RAs(fc, nm, asPat.h1)); } }))))); +const Lib_Parser_recordUpdate = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("[")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_sepBy(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(";")), Lib_Parser_updateClause), ( clauses ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("]")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_atom), ( tm ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RUpdateRec(fc, clauses, tm)))))))))))); +const Lib_Parser_atom = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, 0), ( _ ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, Lib_Syntax_RU, Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("U"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_asAtom, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RVar(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_uident), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Lib_Syntax_RVar(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_lit, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, Lib_Syntax_RImplicit, Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("_"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, Lib_Syntax_RHole, Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("?"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parenWrap(null, Lib_Parser_typeExpr), Lib_Parser_recordUpdate)))))))))); const Lib_Parser_pArg = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( x ) => (Prelude__$2C_(null, null, 0, Prelude__$2C_(null, null, fc, x))), Lib_Parser_braces(null, Lib_Parser_typeExpr)), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( x ) => (Prelude__$2C_(null, null, 2, Prelude__$2C_(null, null, fc, x))), Lib_Parser_dbraces(null, Lib_Parser_typeExpr)), Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( x ) => (Prelude__$2C_(null, null, 1, Prelude__$2C_(null, null, fc, x))), Lib_Parser_atom))))); -const Lib_Parser_parseOp = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getOps, ( ops ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_atom, ( hd ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_pArg), ( rest ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(ops, 0, "", hd, rest), ( $$sc ) => { switch ($$sc.h3.tag) { case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops1 ) => (( col ) => (Lib_Parser_Impl_OK(null, $$sc.h2, toks, com, ops1)))))); default: return Lib_Parser_Impl_fail(null, "extra stuff"); } }))))))))); +const Lib_Parser_parseOp = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getOps, ( ops ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_atom, ( hd ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_pArg), ( rest ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_pratt(ops, 0, "", hd, rest), ( $$sc ) => { switch ($$sc.h3.tag) { case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, $$sc.h2); default: return Lib_Parser_Impl_fail(null, "extra stuff"); } }))))))))); const Lib_Parser_term$27 = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_caseExpr, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_caseLet, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_letExpr, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_caseLamExpr, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_lamExpr, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_doExpr, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseIfThen, Lib_Parser_parseOp))))))); -const Lib_Parser_term = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term$27, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Prelude__$2C_(null, null, eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("$"))), Lib_Parser_term$27)), ( rest ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Parser_term_apply(null, t, rest), toks, com, ops)))))))))); +const Lib_Parser_term = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term$27, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (Prelude__$2C_(null, null, eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("$"))), Lib_Parser_term$27)), ( rest ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Parser_term_apply(null, t, rest)))))); const Lib_Parser_forAll_mkPi = ( _, _$$1, _$$2 ) => (Lib_Syntax_RPi(_$$1.h2, Lib_Types_BI(_$$1.h2, _$$1.h3, 0, 0), Lib_Syntax_RImplicit(_$$1.h2), _$$2)); -const Lib_Parser_varname = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("_")), Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, "_", toks, com, ops))))))))); -const Lib_Parser_forAll = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("forall")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("∀"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), ( all ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(".")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_forAll_mkPi(null, eta, eta1))), scope, all), toks, com, ops)))))))))))))); +const Lib_Parser_varname = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("_")), Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, "_")))); +const Lib_Parser_forAll = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("forall")), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("∀"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), ( all ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(".")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_forAll_mkPi(null, eta, eta1))), scope, all)))))))))); const Lib_Parser_binders_mkBind = ( _, _$$1, _$$2 ) => (Lib_Syntax_RPi(_$$1.h2.h0, _$$1.h2, _$$1.h3, _$$2)); const Lib_Parser_ebind_makeBind = ( _, _$$1, _$$2, _$$3 ) => (Prelude__$2C_(null, null, Lib_Types_BI(_$$3.h2, _$$3.h3, 1, _$$1), _$$2)); const Lib_Parser_quantity = Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (Prelude_fromMaybe(null, 1, eta)), Lib_Parser_optional(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 0, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("0"))))); -const Lib_Parser_ebind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("(")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_quantity, ( quant ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")))), ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Parser_ebind_makeBind(null, quant, ty, eta)), $$sc), toks, com, ops)))))))))))))))); +const Lib_Parser_ebind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("(")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_quantity, ( quant ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")))), ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Parser_ebind_makeBind(null, quant, ty, eta)), $$sc)))))))))))); const Lib_Parser_ibind_makeBind = ( _, _$$1, _$$2, _$$3 ) => (Prelude__$2C_(null, null, Lib_Types_BI(_$$3.h2, _$$3.h3, 0, _$$1), Prelude_fromMaybe(null, Lib_Syntax_RImplicit(_$$3.h2), _$$2))); -const Lib_Parser_ibind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_quantity, ( quant ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), Lib_Parser_typeExpr)), ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}")), ( _1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Parser_ibind_makeBind(null, quant, ty, eta)), $$sc), toks, com, ops)))))))))))))))); -const Lib_Parser_abind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_addPos(null, Lib_Parser_varname), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":"))))), ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}}")), ( _1 ) => { switch (name.tag) { case 1: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Lib_Types_BI(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), "_", 2, 1), ty), Prelude_Nil(null)), toks, com, ops)))))); case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Lib_Types_BI(name.h1.h2, name.h1.h3, 2, 1), ty), Prelude_Nil(null)), toks, com, ops)))))); } }))))))); -const Lib_Parser_binders = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_abind, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ibind, Lib_Parser_ebind))), ( binds ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_arrow, ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_binders_mkBind(null, eta, eta1))), scope, Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, binds, ( _$$1 ) => (_$$1))), toks, com, ops)))))))))))); -const Lib_Parser_typeExpr = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_binders, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_forAll, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( exp ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_arrow, Lib_Parser_typeExpr)), ( scope ) => { switch (scope.tag) { case 1: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, exp, toks, com, ops)))))); case 0: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_RPi(fc, Lib_Types_BI(fc, "_", 1, 1), exp, scope.h1), toks, com, ops)))))); } }))))))); +const Lib_Parser_ibind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_quantity, ( quant ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), Lib_Parser_typeExpr)), ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Parser_ibind_makeBind(null, quant, ty, eta)), $$sc)))))))))))); +const Lib_Parser_abind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("{{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_addPos(null, Lib_Parser_varname), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":"))))), ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("}}")), ( _1 ) => { switch (name.tag) { case 1: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Lib_Types_BI(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), "_", 2, 1), ty), Prelude_Nil(null))); case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Lib_Types_BI(name.h1.h2, name.h1.h3, 2, 1), ty), Prelude_Nil(null))); } }))))))); +const Lib_Parser_binders = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_abind, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ibind, Lib_Parser_ebind))), ( binds ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_arrow, ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_Parser_binders_mkBind(null, eta, eta1))), scope, Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, binds, ( _$$1 ) => (_$$1)))))))))); +const Lib_Parser_typeExpr = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_binders, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_forAll, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_term, ( exp ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_arrow, Lib_Parser_typeExpr)), ( scope ) => { switch (scope.tag) { case 1: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, exp); case 0: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_RPi(fc, Lib_Types_BI(fc, "_", 1, 1), exp, scope.h1)); } }))))))); const Lib_Parser_parseSig = Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (( eta2 ) => (Lib_Syntax_TypeSig(eta, eta1, eta2)))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_some(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))))), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":"))))), Lib_Parser_typeExpr); const Lib_Parser_nakedBind_makeBind = ( _, _$$1 ) => (Prelude__$2C_(null, null, Lib_Types_BI(_$$1.h2, _$$1.h3, 1, 1), Lib_Syntax_RImplicit(_$$1.h2))); -const Lib_Parser_nakedBind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), ( $$sc ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Parser_nakedBind_makeBind(null, eta)), $$sc), toks, com, ops)))))))); -const Lib_Parser_parseRecord = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("record")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ebind, Lib_Parser_nakedBind)), ( teles ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("constructor")), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))))), ( cname ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_Record(fc, name, Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, teles, ( _$$1 ) => (_$$1)), cname, decls), toks, com, ops)))))))))))))))))))); +const Lib_Parser_nakedBind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_addPos(null, Lib_Parser_varname)), ( $$sc ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( eta ) => (Lib_Parser_nakedBind_makeBind(null, eta)), $$sc)))); +const Lib_Parser_parseRecord = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("record")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ebind, Lib_Parser_nakedBind)), ( teles ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("constructor")), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))))), ( cname ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_Record(fc, name, Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, teles, ( _$$1 ) => (_$$1)), cname, decls)))))))))))))))); const Lib_Syntax_Instance = ( h0, h1, h2 ) => ({ tag: 9, h0: h0, h1: h1, h2: h2 }); const Lib_Syntax_RWhere = ( h0, h1, h2 ) => ({ tag: 13, h0: h0, h1: h1, h2: h2 }); const Lib_Parser_getName = ( _$$0 ) => (bouncer(Lib_Parser_REC_getName, { tag: 1, h0: _$$0 })); -const Lib_Parser_REC_getName = ( arg ) => { switch (arg.h0.tag) { case 2: return { tag: 1, h0: arg.h0.h1 }; case 0: return { tag: 0, h0: Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, arg.h0.h1, toks, com, ops)))))) }; default: return { tag: 0, h0: Lib_Parser_Impl_fail(null, "bad LHS") }; } }; -const Lib_Parser_parseDef = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_getName(t), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( body ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( wfc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseSig, Lib_Parser_parseDef))))))), ( w ) => { const body1 = Prelude_maybe(null, null, body, ( decls ) => (Lib_Syntax_RWhere(wfc, decls, body)), w); return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_FunDef(fc, nm, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, t, body1), Prelude_Nil(null))), toks, com, ops)))))); }))))))))))))); -const Lib_Parser_parseInstance = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("instance")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where"))), ( $$sc ) => { switch ($$sc.tag) { case 0: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseDef))), ( decls ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_Instance(fc, ty, Prelude_Just(null, decls)), toks, com, ops)))))))); default: return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_Instance(fc, ty, Prelude_Nothing(null)), toks, com, ops)))))); } }))))))); +const Lib_Parser_REC_getName = ( arg ) => { switch (arg.h0.tag) { case 2: return { tag: 1, h0: arg.h0.h1 }; case 0: return { tag: 0, h0: Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, arg.h0.h1) }; default: return { tag: 0, h0: Lib_Parser_Impl_fail(null, "bad LHS") }; } }; +const Lib_Parser_parseDef = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_getName(t), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( body ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( wfc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseSig, Lib_Parser_parseDef))))))), ( w ) => { const body1 = Prelude_maybe(null, null, body, ( decls ) => (Lib_Syntax_RWhere(wfc, decls, body)), w); return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_FunDef(fc, nm, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, t, body1), Prelude_Nil(null)))); }))))))))))))); +const Lib_Parser_parseInstance = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("instance")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where"))), ( $$sc ) => { switch ($$sc.tag) { case 0: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseDef))), ( decls ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_Instance(fc, ty, Prelude_Just(null, decls))))); default: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_Instance(fc, ty, Prelude_Nothing(null))); } }))))))); const Lib_Syntax_Class = ( h0, h1, h2, h3 ) => ({ tag: 8, h0: h0, h1: h1, h2: h2, h3: h3 }); -const Lib_Parser_parseClass = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("class")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ebind, Lib_Parser_nakedBind)), ( teles ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_Class(fc, name, Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, teles, ( _$$1 ) => (_$$1)), decls), toks, com, ops)))))))))))))))))); +const Lib_Parser_parseClass = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("class")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ebind, Lib_Parser_nakedBind)), ( teles ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_Class(fc, name, Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, teles, ( _$$1 ) => (_$$1)), decls)))))))))))))); const Lib_Syntax_ShortData = ( h0, h1, h2 ) => ({ tag: 4, h0: h0, h1: h1, h2: h2 }); -const Lib_Parser_parseShortData = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("data")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( lhs ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_sepBy(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_typeExpr), ( sigs ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_ShortData(fc, lhs, sigs), toks, com, ops)))))))))))))))); -const Lib_Parser_parseData = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("data")), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))))), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")))), ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_Data(fc, name, ty, decls), toks, com, ops)))))))))))))))); +const Lib_Parser_parseShortData = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("data")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( lhs ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("=")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_sepBy(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("|")), Lib_Parser_typeExpr), ( sigs ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_ShortData(fc, lhs, sigs)))))))))))); +const Lib_Parser_parseData = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_try(null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("data")), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))))), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")))), ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("where")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_Data(fc, name, ty, decls)))))))))))); const Lib_Syntax_DCheck = ( h0, h1, h2 ) => ({ tag: 2, h0: h0, h1: h1, h2: h2 }); const Lib_Parser_parseNorm = Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(null, null, Prelude__$3C$2A_(null, null, null, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(null, null, ( eta ) => (( eta1 ) => (( eta2 ) => (Lib_Syntax_DCheck(eta, eta1, eta2)))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("#check"))), Lib_Parser_typeExpr), Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":"))), Lib_Parser_typeExpr); const Lib_Syntax_PFunc = ( h0, h1, h2, h3, h4 ) => ({ tag: 6, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); -const Lib_Parser_parsePFunc = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("pfunc")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("uses")), ( _1 ) => (Lib_Parser_parenWrap(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))))))))), ( used ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(7)), ( src ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_PFunc(fc, nm, Prelude_fromMaybe(null, Prelude_Nil(null), used), ty, src), toks, com, ops)))))))))))))))))))))); +const Lib_Parser_parsePFunc = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("pfunc")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("uses")), ( _1 ) => (Lib_Parser_parenWrap(null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_uident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_ident, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))))))))), ( used ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(7)), ( src ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_PFunc(fc, nm, Prelude_fromMaybe(null, Prelude_Nil(null), used), ty, src)))))))))))))))))); const Lib_Syntax_PType = ( h0, h1, h2 ) => ({ tag: 5, h0: h0, h1: h1, h2: h2 }); -const Lib_Parser_parsePType = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("ptype")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _1 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_PType(fc, $$sc, ty), toks, com, ops)))))))))))))); +const Lib_Parser_parsePType = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("ptype")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_optional(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27(":")), ( _1 ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_PType(fc, $$sc, ty)))))))))); const Lib_Syntax_PMixFix = ( h0, h1, h2, h3 ) => ({ tag: 7, h0: h0, h1: h1, h2: h2, h3: h3 }); -const Lib_Parser_Impl_addOp = ( _$$0, _$$1, _$$2 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => { const parts = Prelude_split(_$$0, "_"); switch (parts.tag) { case 1: switch (parts.h1) { case "": switch (parts.h2.tag) { case 1: return Lib_Parser_Impl_OK(null, 0, toks, com, Data_SortedMap_updateMap(null, null, parts.h2.h1, Lib_Common_MkOp(_$$0, _$$1, _$$2, 1, parts.h2.h2), ops)); default: return Lib_Parser_Impl_OK(null, 0, toks, com, Data_SortedMap_updateMap(null, null, parts.h1, Lib_Common_MkOp(_$$0, _$$1, _$$2, 0, parts.h2), ops)); } break; default: return Lib_Parser_Impl_OK(null, 0, toks, com, Data_SortedMap_updateMap(null, null, parts.h1, Lib_Common_MkOp(_$$0, _$$1, _$$2, 0, parts.h2), ops)); } break; case 0: return Lib_Parser_Impl_Fail(null, 0, Lib_Parser_Impl_perror(col.h0, toks, "Internal error parsing mixfix"), toks, com, ops); } }))))); +const Lib_Parser_Impl_addOp = ( _$$0, _$$1, _$$2 ) => (Lib_Parser_Impl_P(null, ( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { const parts = Prelude_split(_$$0, "_"); switch (parts.tag) { case 1: switch (parts.h1) { case "": switch (parts.h2.tag) { case 1: return Lib_Parser_Impl_OK(null, 0, last, toks, com, Data_SortedMap_updateMap(null, null, parts.h2.h1, Lib_Common_MkOp(_$$0, _$$1, _$$2, 1, parts.h2.h2), ops)); default: return Lib_Parser_Impl_OK(null, 0, last, toks, com, Data_SortedMap_updateMap(null, null, parts.h1, Lib_Common_MkOp(_$$0, _$$1, _$$2, 0, parts.h2), ops)); } break; default: return Lib_Parser_Impl_OK(null, 0, last, toks, com, Data_SortedMap_updateMap(null, null, parts.h1, Lib_Common_MkOp(_$$0, _$$1, _$$2, 0, parts.h2), ops)); } break; case 0: return Lib_Parser_Impl_Fail(null, 0, Lib_Parser_Impl_perror(col.h0, toks, "Internal error parsing mixfix"), last, toks, com, ops); } })))))); const Lib_Common_MkOp = ( h0, h1, h2, h3, h4 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Prelude_split = (s, by) => { let parts = s.split(by) @@ -979,9 +980,10 @@ const Prelude_split = (s, by) => { parts.forEach(p => { rval = Prelude__$3A$3A_(null, p, rval) }) return rval }; -const Lib_Parser_parseMixfix = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 0, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("infixl"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 1, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("infixr"))), Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 2, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("infix"))))), ( fix ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(4)), ( prec ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))), ( ops ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, null, null, ops, ( op ) => (Lib_Parser_Impl_addOp(op, Prelude_stringToInt(prec), fix))), ( _ ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops1 ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_PMixFix(fc, ops, Prelude_stringToInt(prec), fix), toks, com, ops1)))))))))))))))); +const Lib_Parser_parseMixfix = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 0, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("infixl"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 1, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("infixr"))), Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, 2, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("infix"))))), ( fix ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(4)), ( prec ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_some(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(3))), ( ops ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, null, null, ops, ( op ) => (Lib_Parser_Impl_addOp(op, Prelude_stringToInt(prec), fix))), ( _ ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_PMixFix(fc, ops, Prelude_stringToInt(prec), fix)))))))))))); const Lib_Parser_parseDecl = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseMixfix, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parsePType, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parsePFunc, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseNorm, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseData, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseShortData, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseSig, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseDef, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseClass, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(null, Lib_Parser_parseInstance, Lib_Parser_parseRecord)))))))))); -const Lib_Parser_Impl_partialParse = ( a$$0, _$$1, _$$2, _$$3, _$$4 ) => { const sc$$5 = Lib_Parser_Impl_runP(null, _$$2)(_$$4)(1)(_$$3)(Lib_Common_MkFC(_$$1, Prelude__$2C_(null, null, 0, 0))); switch (sc$$5.tag) { case 1: return Prelude_Left(null, null, Prelude__$2C_(null, null, sc$$5.h2, sc$$5.h3)); case 0: return Prelude_Right(null, null, Prelude__$2C_(null, null, sc$$5.h1, Prelude__$2C_(null, null, sc$$5.h4, sc$$5.h2))); } }; +const Lib_Parser_Impl_partialParse = ( a$$0, _$$1, _$$2, _$$3, _$$4 ) => { const sc$$5 = Lib_Parser_Impl_runP(null, _$$2)(Lib_Common_emptyBounds)(_$$4)(1)(_$$3)(Lib_Common_MkFC(_$$1, Lib_Common_MkBounds(0, 0, 0, 0))); switch (sc$$5.tag) { case 1: return Prelude_Left(null, null, Prelude__$2C_(null, null, sc$$5.h2, sc$$5.h4)); case 0: return Prelude_Right(null, null, Prelude__$2C_(null, null, sc$$5.h1, Prelude__$2C_(null, null, sc$$5.h5, sc$$5.h3))); } }; +const Lib_Common_emptyBounds = Lib_Common_MkBounds(0, 0, 0, 0); const Serialize_loadModule = ( _$$0, _$$1 ) => { const fn = (("build/") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$0))) + (".newtmod"); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(null, Serialize_readModFile(fn)), ( $$sc ) => { switch ($$sc.tag) { case 0: { const ops = Data_SortedMap_mapFromList(null, null, Prelude_Prelude_Ord$20Prim_String, $$sc.h1.h3.h3.h2); const defs = Data_SortedMap_mapFromList(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, ( entry ) => (Prelude__$2C_(null, null, entry.h1, entry)), $$sc.h1.h3.h2)); const mctx = Lib_Types_MC(Data_SortedMap_mapFromList(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, $$sc.h1.h3.h3.h3), Prelude_Nil(null), 0, 2); const sc$$22 = Prelude_jsEq(null, $$sc.h1.h2, _$$1); switch (sc$$22) { case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Just(null, Lib_Types_MkModCtx($$sc.h1.h2, defs, mctx, ops))); } break; } default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude_Nothing(null)); } }); }; const Data_SortedMap_mapFromList = ( k$$0, v$$1, _$$2, _$$3 ) => (Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Data_SortedMap_mapFromList_go(k$$0, v$$1, _$$2, _$$3, null, eta, eta1))), Data_SortedMap_EmptyMap(null, null, _$$2.h1), _$$3)); const Data_SortedMap_mapFromList_go = ( _, _1, _2, _3, _4, _$$5, _$$6 ) => (Data_SortedMap_updateMap(null, null, _$$6.h2, _$$6.h3, _$$5)); @@ -1011,17 +1013,16 @@ const Data_List1__$3A$3A$3A_ = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h const Data_List1_unsnoc = ( a$$0, _$$1 ) => (Data_List1_unsnoc_go(a$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, null, _$$1.h1, _$$1.h2)); const Data_List1_unsnoc_go = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => { switch (_$$7.tag) { case 1: { const sc$$11 = Data_List1_unsnoc_go(_, _1, _2, _3, _4, _5, _$$7.h1, _$$7.h2); return Prelude__$2C_(null, null, Prelude__$3A$3A_(null, _$$6, sc$$11.h2), sc$$11.h3); break; } case 0: return Prelude__$2C_(null, null, Prelude_Nil(null), _$$6); } }; const Lib_Syntax_MkImport = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); -const Lib_Parser_parseImport = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("import")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))), ( rest ) => { const name = Prelude_joinBy("", Prelude__$3A$3A_(null, $$sc, rest)); return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Lib_Syntax_MkImport(fc, name), toks, com, ops)))))); }))))))); +const Lib_Parser_parseImport = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("import")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))), ( rest ) => { const name = Prelude_joinBy("", Prelude__$3A$3A_(null, $$sc, rest)); return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Lib_Syntax_MkImport(fc, name)); }))))))); const Lib_Parser_parseImports = Lib_Parser_Impl_many(null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseImport)); -const Lib_Parser_parseModHeader = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("module"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))), ( rest ) => { const name1 = Prelude_joinBy("", Prelude__$3A$3A_(null, name, rest)); return Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(null, Prelude__$2C_(null, null, fc, name1), toks, com, ops)))))); }))))))); -const Lib_Tokenizer_tokenise = ( _$$0, _$$1 ) => { const sc$$2 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(0, 0, Prelude_Lin(null), Prelude_unpack(_$$1))); switch (sc$$2.tag) { case 1: switch (sc$$2.h2.h3.tag) { case 0: return Prelude_Right(null, null, Prelude__$3C$3E$3E_(null, sc$$2.h2.h2, Prelude_Nil(null))); default: return Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, sc$$2.h2.h0, sc$$2.h2.h1)), "Extra toks")); } break; case 0: switch (sc$$2.h2.tag) { case 0: return Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, sc$$2.h2.h0.h1), sc$$2.h2.h1)); default: return Prelude_Left(null, null, sc$$2.h2); } break; } }; +const Lib_Parser_parseModHeader = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_sameLevel(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_keyword$27("module"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(null, null, Lib_Parser_Impl_many(null, Lib_Parser_Impl_indented(null, Lib_Parser_Impl_token$27(12))), ( rest ) => { const name1 = Prelude_joinBy("", Prelude__$3A$3A_(null, name, rest)); return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(null, Prelude__$2C_(null, null, fc, name1)); }))))))); +const Lib_Tokenizer_tokenise = ( _$$0, _$$1 ) => { const sc$$2 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(0, 0, Prelude_Lin(null), Prelude_unpack(_$$1))); switch (sc$$2.tag) { case 1: switch (sc$$2.h2.h3.tag) { case 0: return Prelude_Right(null, null, Prelude__$3C$3E$3E_(null, sc$$2.h2.h2, Prelude_Nil(null))); default: return Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Lib_Common_MkBounds(sc$$2.h2.h0, sc$$2.h2.h1, sc$$2.h2.h0, sc$$2.h2.h1)), "Extra toks")); } break; case 0: switch (sc$$2.h2.tag) { case 0: return Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, sc$$2.h2.h0.h1), sc$$2.h2.h1)); default: return Prelude_Left(null, null, sc$$2.h2); } break; } }; const Lib_Tokenizer_TS = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Tokenizer_rawTokenise = ( _$$0 ) => (bouncer(Lib_Tokenizer_REC_rawTokenise, { tag: 1, h0: _$$0 })); -const Lib_Tokenizer_REC_rawTokenise = ( arg ) => { switch (arg.tag) { case 1: switch (arg.h0.h3.tag) { case 1: switch (arg.h0.h3.h1) { case " ": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2) }; case "\n": return { tag: 1, h0: Lib_Tokenizer_TS((arg.h0.h0) + (1), 0, arg.h0.h2, arg.h0.h3.h2) }; case "\"": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 17, "\""); const sc$$18 = Lib_Tokenizer_quoteTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2), arg.h0.h0, (arg.h0.h1) + (1), Prelude_Lin(null)); switch (sc$$18.tag) { case 1: switch (sc$$18.h2.h3.tag) { case 1: switch (sc$$18.h2.h3.h1) { case "\"": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$18.h2.h0, (sc$$18.h2.h1) + (1), 18, "\""); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$18.h2.h0, (sc$$18.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$18.h2.h2, tok1), sc$$18.h2.h3.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '\"'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '\"'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } case "}": return { tag: 0, h0: Prelude_Right(null, null, arg.h0) }; case "{": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "{": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (2), 2, "{{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2.h2)); switch (sc$$21.tag) { case 1: switch (sc$$21.h2.h3.tag) { case 1: switch (sc$$21.h2.h3.h1) { case "}": switch (sc$$21.h2.h3.h2.tag) { case 1: switch (sc$$21.h2.h3.h2.h1) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$21.h2.h0, (sc$$21.h2.h1) + (2), 2, "}}"); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$21.h2.h0, (sc$$21.h2.h1) + (2), Prelude__$3A$3C_(null, sc$$21.h2.h2, tok1), sc$$21.h2.h3.h2.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 8, "{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2)); switch (sc$$21.tag) { case 1: switch (sc$$21.h2.h3.tag) { case 1: switch (sc$$21.h2.h3.h1) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$21.h2.h0, (sc$$21.h2.h1) + (1), 8, "}"); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$21.h2.h0, (sc$$21.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$21.h2.h2, tok1), sc$$21.h2.h3.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } } break; default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 8, "{"); const sc$$18 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2)); switch (sc$$18.tag) { case 1: switch (sc$$18.h2.h3.tag) { case 1: switch (sc$$18.h2.h3.h1) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$18.h2.h0, (sc$$18.h2.h1) + (1), 8, "}"); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$18.h2.h0, (sc$$18.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$18.h2.h2, tok1), sc$$18.h2.h3.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '}'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } } break; case ",": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 0, ",")), arg.h0.h3.h2) }; case "_": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case ",": switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h1) { case "_": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 3, "_,_")), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case ".": switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h1) { case "_": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 3, "_._")), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case "'": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "\\": switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h2.h1) { case "'": { const ch = Prelude_ite(null, Prelude_jsEq(null, arg.h0.h3.h2.h2.h1, "n"), "\n", arg.h0.h3.h2.h2.h1); return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (4), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (4), 5, Prelude_pack(Prelude__$3A$3A_(null, ch, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2.h2) }; break; } default: switch (arg.h0.h3.h2.h2.h1) { case "'": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 5, Prelude_pack(Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; } break; default: switch (arg.h0.h3.h2.h2.h1) { case "'": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 5, Prelude_pack(Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h1) { case "'": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 5, Prelude_pack(Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case "#": return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h13: 11, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "#") }; case "/": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "-": return { tag: 4, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case "`": return { tag: 5, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h9: Prelude_Lin(null) }; case ".": return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h13: 12, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), ".") }; case "-": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "-": return { tag: 6, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2) }; default: { const sc$$20 = Prelude_isDigit(arg.h0.h3.h2.h1); switch (sc$$20) { case 1: return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, arg.h0.h3.h2.h2)), h13: 0, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "-") }; case 0: return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2), h13: 4, h14: Prelude_isDigit, h15: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude_Lin(null), "-"), arg.h0.h3.h2.h1) }; } break; } } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case 0: return { tag: 0, h0: Prelude_Right(null, null, arg.h0) }; } break; case 2: { const sc$$15 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_Char, arg.h13, Lib_Tokenizer_standalone); switch (sc$$15) { case 1: { let kind; const sc$$16 = Prelude_isDigit(arg.h13); switch (sc$$16) { case 1: { const sc$$17 = Prelude_isUpper(arg.h13); switch (sc$$17) { case 1: { kind = 0; break; } case 0: { kind = 1; break; } } break; } case 0: { kind = 4; break; } } return { tag: 3, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(arg.h1, arg.h2, arg.h3, Prelude__$3A$3A_(null, arg.h13, arg.h14)), h13: kind, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, eta)), h15: Prelude_Lin(null) }; break; } case 0: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h1, (arg.h2) + (1), Prelude__$3A$3C_(null, arg.h3, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, 0, arg.h1, (arg.h2) + (1), 8, Prelude_pack(Prelude__$3A$3A_(null, arg.h13, Prelude_Nil(null))))), arg.h14) }; } break; } case 3: switch (arg.h12.h3.tag) { case 1: { const sc$$23 = arg.h14(arg.h12.h3.h1); switch (sc$$23) { case 1: { let kind; const sc$$24 = Data_SnocList_snocelem(null, Prelude_Prelude_Eq$20Prim_Char, "_", arg.h15); switch (sc$$24) { case 1: { kind = arg.h13; break; } case 0: { kind = 3; break; } } return { tag: 1, h0: Lib_Tokenizer_TS(arg.h12.h0, arg.h12.h1, Prelude__$3A$3C_(null, arg.h12.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, 0, arg.h12.h0, (arg.h12.h1) - (1), kind, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude__$3A$3A_(null, arg.h12.h3.h1, arg.h12.h3.h2)) }; break; } case 0: return { tag: 3, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(arg.h12.h0, (arg.h12.h1) + (1), arg.h12.h2, arg.h12.h3.h2), h13: arg.h13, h14: arg.h14, h15: Prelude__$3A$3C_(null, arg.h15, arg.h12.h3.h1) }; } break; } case 0: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h12.h0, arg.h12.h1, Prelude__$3A$3C_(null, arg.h12.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, 0, arg.h12.h0, arg.h12.h1, arg.h13, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude_Nil(null)) }; } break; case 4: switch (arg.h11.h3.tag) { case 1: switch (arg.h11.h3.h1) { case "-": switch (arg.h11.h3.h2.tag) { case 1: switch (arg.h11.h3.h2.h1) { case "/": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (2), arg.h11.h2, arg.h11.h3.h2.h2) }; default: return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (1), arg.h11.h2, arg.h11.h3.h2) }; } break; default: return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (1), arg.h11.h2, arg.h11.h3.h2) }; } break; case "\n": return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS((arg.h11.h0) + (1), 0, arg.h11.h2, arg.h11.h3.h2) }; default: return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (1), arg.h11.h2, arg.h11.h3.h2) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, arg.h11.h0, arg.h11.h1)), "EOF in block comment")) }; } break; case 5: switch (arg.h8.h3.tag) { case 1: switch (arg.h8.h3.h1) { case "`": { const tok = Lib_Token_MkBounded(null, Lib_Token_Tok(7, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h9, Prelude_Nil(null)))), Lib_Token_MkBounds(arg.h1, arg.h2, arg.h8.h0, arg.h8.h1)); return { tag: 1, h0: Lib_Tokenizer_TS(arg.h8.h0, (arg.h8.h1) + (1), Prelude__$3A$3C_(null, arg.h8.h2, tok), arg.h8.h3.h2) }; break; } case "\n": return { tag: 5, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS((arg.h8.h0) + (1), 0, arg.h8.h2, arg.h8.h3.h2), h9: Prelude__$3A$3C_(null, arg.h9, "\n") }; default: return { tag: 5, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS(arg.h8.h0, (arg.h8.h1) + (1), arg.h8.h2, arg.h8.h3.h2), h9: Prelude__$3A$3C_(null, arg.h9, arg.h8.h3.h1) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, arg.h8.h0, arg.h8.h1)), "EOF in backtick string")) }; } break; case 6: switch (arg.h10.h3.tag) { case 1: switch (arg.h10.h3.h1) { case "\n": return { tag: 1, h0: Lib_Tokenizer_TS((arg.h10.h0) + (1), 0, arg.h10.h2, arg.h10.h3.h2) }; default: return { tag: 6, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: Lib_Tokenizer_TS(arg.h10.h0, (arg.h10.h1) + (1), arg.h10.h2, arg.h10.h3.h2) }; } break; case 0: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h10.h0, arg.h10.h1, arg.h10.h2, Prelude_Nil(null)) }; } break; } }; -const Lib_Token_MkBounds = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); +const Lib_Tokenizer_REC_rawTokenise = ( arg ) => { switch (arg.tag) { case 1: switch (arg.h0.h3.tag) { case 1: switch (arg.h0.h3.h1) { case " ": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2) }; case "\n": return { tag: 1, h0: Lib_Tokenizer_TS((arg.h0.h0) + (1), 0, arg.h0.h2, arg.h0.h3.h2) }; case "\"": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 17, "\""); const sc$$18 = Lib_Tokenizer_quoteTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2), arg.h0.h0, (arg.h0.h1) + (1), Prelude_Lin(null)); switch (sc$$18.tag) { case 1: switch (sc$$18.h2.h3.tag) { case 1: switch (sc$$18.h2.h3.h1) { case "\"": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$18.h2.h0, (sc$$18.h2.h1) + (1), 18, "\""); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$18.h2.h0, (sc$$18.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$18.h2.h2, tok1), sc$$18.h2.h3.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$18.h2.h0, sc$$18.h2.h1, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '\"'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$18.h2.h0, sc$$18.h2.h1, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '\"'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } case "}": return { tag: 0, h0: Prelude_Right(null, null, arg.h0) }; case "{": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "{": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (2), 2, "{{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2.h2)); switch (sc$$21.tag) { case 1: switch (sc$$21.h2.h3.tag) { case 1: switch (sc$$21.h2.h3.h1) { case "}": switch (sc$$21.h2.h3.h2.tag) { case 1: switch (sc$$21.h2.h3.h2.h1) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$21.h2.h0, (sc$$21.h2.h1) + (2), 2, "}}"); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$21.h2.h0, (sc$$21.h2.h1) + (2), Prelude__$3A$3C_(null, sc$$21.h2.h2, tok1), sc$$21.h2.h3.h2.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$21.h2.h0, sc$$21.h2.h1, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$21.h2.h0, sc$$21.h2.h1, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$21.h2.h0, sc$$21.h2.h1, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$21.h2.h0, sc$$21.h2.h1, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}}'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 8, "{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2)); switch (sc$$21.tag) { case 1: switch (sc$$21.h2.h3.tag) { case 1: switch (sc$$21.h2.h3.h1) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$21.h2.h0, (sc$$21.h2.h1) + (1), 8, "}"); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$21.h2.h0, (sc$$21.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$21.h2.h2, tok1), sc$$21.h2.h3.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$21.h2.h0, sc$$21.h2.h1, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$21.h2.h0, sc$$21.h2.h1, sc$$21.h2.h0, sc$$21.h2.h1)), "Expected '}'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } } break; default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 8, "{"); const sc$$18 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, tok), arg.h0.h3.h2)); switch (sc$$18.tag) { case 1: switch (sc$$18.h2.h3.tag) { case 1: switch (sc$$18.h2.h3.h1) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, sc$$18.h2.h0, (sc$$18.h2.h1) + (1), 8, "}"); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$18.h2.h0, (sc$$18.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$18.h2.h2, tok1), sc$$18.h2.h3.h2) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$18.h2.h0, sc$$18.h2.h1, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '}'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$18.h2.h0, sc$$18.h2.h1, sc$$18.h2.h0, sc$$18.h2.h1)), "Expected '}'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } } break; case ",": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (1), 0, ",")), arg.h0.h3.h2) }; case "_": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case ",": switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h1) { case "_": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 3, "_,_")), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case ".": switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h1) { case "_": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 3, "_._")), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case "'": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "\\": switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h2.h1) { case "'": { const ch = Prelude_ite(null, Prelude_jsEq(null, arg.h0.h3.h2.h2.h1, "n"), "\n", arg.h0.h3.h2.h2.h1); return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (4), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (4), 5, Prelude_pack(Prelude__$3A$3A_(null, ch, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2.h2) }; break; } default: switch (arg.h0.h3.h2.h2.h1) { case "'": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 5, Prelude_pack(Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; } break; default: switch (arg.h0.h3.h2.h2.h1) { case "'": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 5, Prelude_pack(Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: switch (arg.h0.h3.h2.h2.tag) { case 1: switch (arg.h0.h3.h2.h2.h1) { case "'": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (3), Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, null, null, null, 1, arg.h0.h0, (arg.h0.h1) + (3), 5, Prelude_pack(Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, Prelude_Nil(null))))), arg.h0.h3.h2.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case "#": return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h13: 11, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "#") }; case "/": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "-": return { tag: 4, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2) }; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case "`": return { tag: 5, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h9: Prelude_Lin(null) }; case ".": return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h13: 12, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), ".") }; case "-": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "-": return { tag: 6, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2) }; default: { const sc$$20 = Prelude_isDigit(arg.h0.h3.h2.h1); switch (sc$$20) { case 1: return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, Prelude__$3A$3A_(null, arg.h0.h3.h2.h1, arg.h0.h3.h2.h2)), h13: 0, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "-") }; case 0: return { tag: 3, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2), h13: 4, h14: Prelude_isDigit, h15: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude_Lin(null), "-"), arg.h0.h3.h2.h1) }; } break; } } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; default: return { tag: 2, h0: arg.h0, h1: arg.h0.h0, h2: arg.h0.h1, h3: arg.h0.h2, h4: arg.h0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: arg.h0.h3.h1, h14: arg.h0.h3.h2 }; } break; case 0: return { tag: 0, h0: Prelude_Right(null, null, arg.h0) }; } break; case 2: { const sc$$15 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_Char, arg.h13, Lib_Tokenizer_standalone); switch (sc$$15) { case 1: { let kind; const sc$$16 = Prelude_isDigit(arg.h13); switch (sc$$16) { case 1: { const sc$$17 = Prelude_isUpper(arg.h13); switch (sc$$17) { case 1: { kind = 0; break; } case 0: { kind = 1; break; } } break; } case 0: { kind = 4; break; } } return { tag: 3, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(arg.h1, arg.h2, arg.h3, Prelude__$3A$3A_(null, arg.h13, arg.h14)), h13: kind, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, eta)), h15: Prelude_Lin(null) }; break; } case 0: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h1, (arg.h2) + (1), Prelude__$3A$3C_(null, arg.h3, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, 0, arg.h1, (arg.h2) + (1), 8, Prelude_pack(Prelude__$3A$3A_(null, arg.h13, Prelude_Nil(null))))), arg.h14) }; } break; } case 3: switch (arg.h12.h3.tag) { case 1: { const sc$$23 = arg.h14(arg.h12.h3.h1); switch (sc$$23) { case 1: { let kind; const sc$$24 = Data_SnocList_snocelem(null, Prelude_Prelude_Eq$20Prim_Char, "_", arg.h15); switch (sc$$24) { case 1: { kind = arg.h13; break; } case 0: { kind = 3; break; } } return { tag: 1, h0: Lib_Tokenizer_TS(arg.h12.h0, arg.h12.h1, Prelude__$3A$3C_(null, arg.h12.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, 0, arg.h12.h0, (arg.h12.h1) - (1), kind, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude__$3A$3A_(null, arg.h12.h3.h1, arg.h12.h3.h2)) }; break; } case 0: return { tag: 3, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(arg.h12.h0, (arg.h12.h1) + (1), arg.h12.h2, arg.h12.h3.h2), h13: arg.h13, h14: arg.h14, h15: Prelude__$3A$3C_(null, arg.h15, arg.h12.h3.h1) }; } break; } case 0: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h12.h0, arg.h12.h1, Prelude__$3A$3C_(null, arg.h12.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, 0, arg.h12.h0, arg.h12.h1, arg.h13, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude_Nil(null)) }; } break; case 4: switch (arg.h11.h3.tag) { case 1: switch (arg.h11.h3.h1) { case "-": switch (arg.h11.h3.h2.tag) { case 1: switch (arg.h11.h3.h2.h1) { case "/": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (2), arg.h11.h2, arg.h11.h3.h2.h2) }; default: return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (1), arg.h11.h2, arg.h11.h3.h2) }; } break; default: return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (1), arg.h11.h2, arg.h11.h3.h2) }; } break; case "\n": return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS((arg.h11.h0) + (1), 0, arg.h11.h2, arg.h11.h3.h2) }; default: return { tag: 4, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(arg.h11.h0, (arg.h11.h1) + (1), arg.h11.h2, arg.h11.h3.h2) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(arg.h11.h0, arg.h11.h1, arg.h11.h0, arg.h11.h1)), "EOF in block comment")) }; } break; case 5: switch (arg.h8.h3.tag) { case 1: switch (arg.h8.h3.h1) { case "`": { const tok = Lib_Common_MkBounded(null, Lib_Token_Tok(7, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h9, Prelude_Nil(null)))), Lib_Common_MkBounds(arg.h1, arg.h2, arg.h8.h0, arg.h8.h1)); return { tag: 1, h0: Lib_Tokenizer_TS(arg.h8.h0, (arg.h8.h1) + (1), Prelude__$3A$3C_(null, arg.h8.h2, tok), arg.h8.h3.h2) }; break; } case "\n": return { tag: 5, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS((arg.h8.h0) + (1), 0, arg.h8.h2, arg.h8.h3.h2), h9: Prelude__$3A$3C_(null, arg.h9, "\n") }; default: return { tag: 5, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS(arg.h8.h0, (arg.h8.h1) + (1), arg.h8.h2, arg.h8.h3.h2), h9: Prelude__$3A$3C_(null, arg.h9, arg.h8.h3.h1) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(arg.h8.h0, arg.h8.h1, arg.h8.h0, arg.h8.h1)), "EOF in backtick string")) }; } break; case 6: switch (arg.h10.h3.tag) { case 1: switch (arg.h10.h3.h1) { case "\n": return { tag: 1, h0: Lib_Tokenizer_TS((arg.h10.h0) + (1), 0, arg.h10.h2, arg.h10.h3.h2) }; default: return { tag: 6, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: Lib_Tokenizer_TS(arg.h10.h0, (arg.h10.h1) + (1), arg.h10.h2, arg.h10.h3.h2) }; } break; case 0: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h10.h0, arg.h10.h1, arg.h10.h2, Prelude_Nil(null)) }; } break; } }; const Lib_Token_Tok = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); -const Lib_Token_MkBounded = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); -const Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { let kind; const sc$$14 = Prelude__$26$26_(_$$9, Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, _$$13, Lib_Tokenizer_keywords)); switch (sc$$14) { case 1: { kind = _$$12; break; } case 0: { kind = 2; break; } } return Lib_Token_MkBounded(null, Lib_Token_Tok(kind, _$$13), Lib_Token_MkBounds(_1, _2, _$$10, _$$11)); }; +const Lib_Common_MkBounded = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); +const Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { let kind; const sc$$14 = Prelude__$26$26_(_$$9, Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, _$$13, Lib_Tokenizer_keywords)); switch (sc$$14) { case 1: { kind = _$$12; break; } case 0: { kind = 2; break; } } return Lib_Common_MkBounded(null, Lib_Token_Tok(kind, _$$13), Lib_Common_MkBounds(_1, _2, _$$10, _$$11)); }; const Lib_Tokenizer_keywords = Prelude__$3A$3A_(null, "let", Prelude__$3A$3A_(null, "in", Prelude__$3A$3A_(null, "where", Prelude__$3A$3A_(null, "case", Prelude__$3A$3A_(null, "of", Prelude__$3A$3A_(null, "data", Prelude__$3A$3A_(null, "U", Prelude__$3A$3A_(null, "do", Prelude__$3A$3A_(null, "ptype", Prelude__$3A$3A_(null, "pfunc", Prelude__$3A$3A_(null, "module", Prelude__$3A$3A_(null, "infixl", Prelude__$3A$3A_(null, "infixr", Prelude__$3A$3A_(null, "infix", Prelude__$3A$3A_(null, "∀", Prelude__$3A$3A_(null, "forall", Prelude__$3A$3A_(null, "import", Prelude__$3A$3A_(null, "uses", Prelude__$3A$3A_(null, "class", Prelude__$3A$3A_(null, "instance", Prelude__$3A$3A_(null, "record", Prelude__$3A$3A_(null, "constructor", Prelude__$3A$3A_(null, "if", Prelude__$3A$3A_(null, "then", Prelude__$3A$3A_(null, "else", Prelude__$3A$3A_(null, "$", Prelude__$3A$3A_(null, "λ", Prelude__$3A$3A_(null, "?", Prelude__$3A$3A_(null, "@", Prelude__$3A$3A_(null, ".", Prelude__$3A$3A_(null, "->", Prelude__$3A$3A_(null, "→", Prelude__$3A$3A_(null, ":", Prelude__$3A$3A_(null, "=>", Prelude__$3A$3A_(null, ":=", Prelude__$3A$3A_(null, "$=", Prelude__$3A$3A_(null, "=", Prelude__$3A$3A_(null, "<-", Prelude__$3A$3A_(null, "\\", Prelude__$3A$3A_(null, "_", Prelude__$3A$3A_(null, "|", Prelude_Nil(null)))))))))))))))))))))))))))))))))))))))))); const Prelude_Prelude_Eq$20Prim_Char$2C_$3D$3D_ = ( _$$0, _$$1 ) => (Prelude_jsEq(null, _$$0, _$$1)); const Prelude_Prelude_Eq$20Prim_Char = Prelude_MkEq(null, ( eta ) => (( eta1 ) => (Prelude_Prelude_Eq$20Prim_Char$2C_$3D$3D_(eta, eta1)))); @@ -1033,8 +1034,8 @@ const Prelude_isSpace = ( _$$0 ) => { switch (_$$0) { case " ": return 0; case " const Prelude_isUpper = ( _$$0 ) => { const o = Prelude_ord(_$$0); return Prelude__$26$26_(Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, 64, o), 0), Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, o, 91), 0)); }; const Prelude_isDigit = ( _$$0 ) => { switch (_$$0) { case "0": return 0; case "1": return 0; case "2": return 0; case "3": return 0; case "4": return 0; case "5": return 0; case "6": return 0; case "7": return 0; case "8": return 0; case "9": return 0; default: return 1; } }; const Lib_Tokenizer_quoteTokenise = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_Tokenizer_REC_quoteTokenise, { tag: 1, h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); -const Lib_Tokenizer_REC_quoteTokenise = ( arg ) => { switch (arg.h0.h3.tag) { case 1: switch (arg.h0.h3.h1) { case "\"": return { tag: 0, h0: Prelude_Right(null, null, Lib_Tokenizer_TS(arg.h0.h0, arg.h0.h1, Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null)), arg.h0.h3)) }; case "\n": return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, arg.h0.h0, arg.h0.h1)), "Newline in string")) }; case "\\": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "{": { const tok = Lib_Token_MkBounded(null, Lib_Token_Tok(19, "\\{"), Lib_Token_MkBounds(arg.h0.h0, arg.h0.h1, arg.h0.h0, (arg.h0.h1) + (2))); const sc$$17 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null)), tok), arg.h0.h3.h2.h2)); switch (sc$$17.tag) { case 1: switch (sc$$17.h2.h3.tag) { case 1: switch (sc$$17.h2.h3.h1) { case "}": { const tok1 = Lib_Token_MkBounded(null, Lib_Token_Tok(20, "}"), Lib_Token_MkBounds(sc$$17.h2.h0, sc$$17.h2.h1, sc$$17.h2.h0, (sc$$17.h2.h1) + (1))); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$17.h2.h0, (sc$$17.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$17.h2.h2, tok1), sc$$17.h2.h3.h2), h1: sc$$17.h2.h0, h2: (sc$$17.h2.h1) + (1), h3: Prelude_Lin(null) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$17.h2.h0, sc$$17.h2.h1)), "Expected '{'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, sc$$17.h2.h0, sc$$17.h2.h1)), "Expected '{'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$17.h2) }; } break; } case "n": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, "\n") }; default: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, arg.h0.h3.h2.h1) }; } break; default: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, arg.h0.h3.h1) }; } break; default: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, arg.h0.h3.h1) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, arg.h0.h0, arg.h0.h1)), "Expected '\"' at EOF")) }; } }; -const Lib_Tokenizer_quoteTokenise_stok = ( _, _1, _2, _3, _4, _5, _6, _7, _8 ) => (Lib_Token_MkBounded(null, Lib_Token_Tok(6, Prelude_pack(Prelude__$3C$3E$3E_(null, _3, Prelude_Nil(null)))), Lib_Token_MkBounds(_1, _2, _4, _5))); +const Lib_Tokenizer_REC_quoteTokenise = ( arg ) => { switch (arg.h0.h3.tag) { case 1: switch (arg.h0.h3.h1) { case "\"": return { tag: 0, h0: Prelude_Right(null, null, Lib_Tokenizer_TS(arg.h0.h0, arg.h0.h1, Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null)), arg.h0.h3)) }; case "\n": return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(arg.h0.h0, arg.h0.h1, arg.h0.h0, arg.h0.h1)), "Newline in string")) }; case "\\": switch (arg.h0.h3.h2.tag) { case 1: switch (arg.h0.h3.h2.h1) { case "{": { const tok = Lib_Common_MkBounded(null, Lib_Token_Tok(19, "\\{"), Lib_Common_MkBounds(arg.h0.h0, arg.h0.h1, arg.h0.h0, (arg.h0.h1) + (2))); const sc$$17 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h0.h0, arg.h0.h1, arg.h0.h2, arg.h0.h3, null)), tok), arg.h0.h3.h2.h2)); switch (sc$$17.tag) { case 1: switch (sc$$17.h2.h3.tag) { case 1: switch (sc$$17.h2.h3.h1) { case "}": { const tok1 = Lib_Common_MkBounded(null, Lib_Token_Tok(20, "}"), Lib_Common_MkBounds(sc$$17.h2.h0, sc$$17.h2.h1, sc$$17.h2.h0, (sc$$17.h2.h1) + (1))); return { tag: 1, h0: Lib_Tokenizer_TS(sc$$17.h2.h0, (sc$$17.h2.h1) + (1), Prelude__$3A$3C_(null, sc$$17.h2.h2, tok1), sc$$17.h2.h3.h2), h1: sc$$17.h2.h0, h2: (sc$$17.h2.h1) + (1), h3: Prelude_Lin(null) }; break; } default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$17.h2.h0, sc$$17.h2.h1, sc$$17.h2.h0, sc$$17.h2.h1)), "Expected '{'")) }; } break; default: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(sc$$17.h2.h0, sc$$17.h2.h1, sc$$17.h2.h0, sc$$17.h2.h1)), "Expected '{'")) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, sc$$17.h2) }; } break; } case "n": return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, "\n") }; default: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (2), arg.h0.h2, arg.h0.h3.h2.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, arg.h0.h3.h2.h1) }; } break; default: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, arg.h0.h3.h1) }; } break; default: return { tag: 1, h0: Lib_Tokenizer_TS(arg.h0.h0, (arg.h0.h1) + (1), arg.h0.h2, arg.h0.h3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, arg.h0.h3.h1) }; } break; case 0: return { tag: 0, h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Lib_Common_MkBounds(arg.h0.h0, arg.h0.h1, arg.h0.h0, arg.h0.h1)), "Expected '\"' at EOF")) }; } }; +const Lib_Tokenizer_quoteTokenise_stok = ( _, _1, _2, _3, _4, _5, _6, _7, _8 ) => (Lib_Common_MkBounded(null, Lib_Token_Tok(6, Prelude_pack(Prelude__$3C$3E$3E_(null, _3, Prelude_Nil(null)))), Lib_Common_MkBounds(_1, _2, _4, _5))); const Node_readFile = (fn) => (w) => { let fs = require('fs') let result @@ -1042,15 +1043,14 @@ const Node_readFile = (fn) => (w) => { let content = fs.readFileSync(fn, 'utf8') result = Prelude_Right(null, null, content) } catch (e) { - let err = ""+e - result = Prelude_Left(null, null, e) + result = Prelude_Left(null, null, e+'') } return Prelude_MkIORes(null, result, w) }; const Lib_Types_emptyModCtx = ( _$$0 ) => (Lib_Types_MkModCtx(_$$0, Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Lib_Types_MC(Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(null), 0, 2), Data_SortedMap_EmptyMap(null, null, ( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))))); -const Lib_Util_getBaseDir = ( _$$0, _$$1 ) => { const sc$$3 = Data_List1_unsnoc(null, Data_List1_split1(_$$1, ".")); const parts = Data_List1_split1(_$$0, "/"); const sc$$9 = Data_List1_unsnoc(null, parts); const sc$$14 = Data_List1_splitFileName(sc$$9.h3); const parts1 = Data_List1_split1(_$$0, "/"); const sc$$20 = Data_List1_unsnoc(null, parts1); const sc$$25 = Data_List1_unsnoc(null, Data_List1_split1(_$$1, ".")); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Prelude_jsEq(null, sc$$25.h3, sc$$14.h2)), ( _ ) => (Lib_Types_MkM(null, ( _1 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), (((("module name ") + (sc$$25.h3)) + (" doesn't match ")) + (sc$$14.h2)) + (""))), eta)))))), ( _ ) => { const sc$$31 = Lib_Util_getBaseDir_baseDir(_$$0, _$$1, null, Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sc$$20.h2), Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sc$$25.h2)); switch (sc$$31.tag) { case 1: { let base; const sc$$35 = Prelude_jsEq(null, sc$$31.h2, ""); switch (sc$$35) { case 1: { base = sc$$31.h2; break; } case 0: { base = "."; break; } } return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude__$2C_(null, null, base, Lib_Common_QN(sc$$25.h2, sc$$25.h3))); break; } case 0: return Lib_Types_MkM(null, ( _1 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), sc$$31.h2)), eta)))); } }); }; -const Lib_Util_getBaseDir_baseDir = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Lib_Util_REC_getBaseDir_baseDir, { tag: 1, h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); -const Lib_Util_REC_getBaseDir_baseDir = ( arg ) => { switch (arg.h4.tag) { case 1: switch (arg.h3.tag) { case 1: { const sc$$11 = Prelude_jsEq(null, arg.h3.h2, arg.h4.h2); switch (sc$$11) { case 1: return { tag: 0, h0: Prelude_Left(null, null, "module path doesn't match directory") }; case 0: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3.h1, h4: arg.h4.h1 }; } break; } case 0: return { tag: 0, h0: Prelude_Left(null, null, "module path doesn't match directory") }; } break; case 0: return { tag: 0, h0: Prelude_Right(null, null, Prelude_joinBy("/", Prelude__$3C$3E$3E_(null, arg.h3, Prelude_Nil(null)))) }; } }; +const Lib_Util_getBaseDir = ( _$$0, _$$1, _$$2 ) => { const sc$$4 = Data_List1_unsnoc(null, Data_List1_split1(_$$2, ".")); const parts = Data_List1_split1(_$$0, "/"); const sc$$10 = Data_List1_unsnoc(null, parts); const sc$$15 = Data_List1_splitFileName(sc$$10.h3); const parts1 = Data_List1_split1(_$$0, "/"); const sc$$21 = Data_List1_unsnoc(null, parts1); const sc$$26 = Data_List1_unsnoc(null, Data_List1_split1(_$$2, ".")); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(null, null, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not(Prelude_jsEq(null, sc$$26.h3, sc$$15.h2)), ( _ ) => (Lib_Types_MkM(null, ( _1 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1, (((("module name ") + (sc$$26.h3)) + (" doesn't match ")) + (sc$$15.h2)) + (""))), eta)))))), ( _ ) => { const sc$$32 = Lib_Util_getBaseDir_baseDir(_$$0, _$$1, _$$2, null, Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sc$$21.h2), Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sc$$26.h2)); switch (sc$$32.tag) { case 1: { let base; const sc$$36 = Prelude_jsEq(null, sc$$32.h2, ""); switch (sc$$36) { case 1: { base = sc$$32.h2; break; } case 0: { base = "."; break; } } return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(null, Prelude__$2C_(null, null, base, Lib_Common_QN(sc$$26.h2, sc$$26.h3))); break; } case 0: return Lib_Types_MkM(null, ( _1 ) => (( eta ) => (Prelude_MkIORes(null, Prelude_Left(null, null, Lib_Common_E(_$$1, sc$$32.h2)), eta)))); } }); }; +const Lib_Util_getBaseDir_baseDir = ( _, _1, _2, _3, _$$4, _$$5 ) => (bouncer(Lib_Util_REC_getBaseDir_baseDir, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _$$4, h5: _$$5 })); +const Lib_Util_REC_getBaseDir_baseDir = ( arg ) => { switch (arg.h5.tag) { case 1: switch (arg.h4.tag) { case 1: { const sc$$12 = Prelude_jsEq(null, arg.h4.h2, arg.h5.h2); switch (sc$$12) { case 1: return { tag: 0, h0: Prelude_Left(null, null, "module path doesn't match directory") }; case 0: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4.h1, h5: arg.h5.h1 }; } break; } case 0: return { tag: 0, h0: Prelude_Left(null, null, "module path doesn't match directory") }; } break; case 0: return { tag: 0, h0: Prelude_Right(null, null, Prelude_joinBy("/", Prelude__$3C$3E$3E_(null, arg.h4, Prelude_Nil(null)))) }; } }; const Data_List1_splitFileName = ( _$$0 ) => { const sc$$1 = Data_List1_split1(_$$0, "."); switch (sc$$1.h2.tag) { case 0: return Prelude__$2C_(null, null, sc$$1.h1, ""); default: return Prelude_mapFst(null, null, null, null, Prelude_Prelude_Bifunctor$20Prelude__$D7_, ( eta ) => (Prelude_joinBy(".", eta)), Data_List1_unsnoc(null, sc$$1)); } }; const Prelude_MkBifunctor = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); const Prelude_Prelude_Bifunctor$20Prelude__$D7_ = Prelude_MkBifunctor(null, ( a ) => (( b ) => (( c ) => (( d ) => (( eta ) => (( eta1 ) => (( eta2 ) => (Prelude_Prelude_Bifunctor$20Prelude__$D7_$2Cbimap(null, null, null, null, eta, eta1, eta2)))))))));