diff --git a/bootstrap/newt.js b/bootstrap/newt.js index 294d820..0dc0c4c 100644 --- a/bootstrap/newt.js +++ b/bootstrap/newt.js @@ -38,7 +38,7 @@ const Node_writeFile = (fn, content) => (w) => { const Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO = ( _$$1 ) => (Lib_Types_MkM(( tc ) => (( eta ) => (Prelude_Prelude_Monad$20Prelude_IO$2Cbind(_$$1, ( result ) => (( eta ) => (Prelude_MkIORes(Prelude_Right(Prelude__$2C_(tc, result)), eta))), eta))))); const Prelude_Prelude_Monad$20Prelude_IO$2Cbind = ( _$$2, _$$3, w ) => { const sc$$5 = _$$2(w); return _$$3(sc$$5.h1)(sc$$5.h2); }; const Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind = ( _$$2, _$$3 ) => (Lib_Types_MkM(( tc ) => (( eta ) => (Prelude_Prelude_Monad$20Prelude_IO$2Cbind(_$$2.h1(tc), ( $$sc ) => (( ($$sc.tag) == (1) ? Lib_Types__runM(_$$3($$sc.h2.h3))($$sc.h2.h2) : ( eta ) => (Prelude_MkIORes(Prelude_Left($$sc.h2), eta)) )), eta))))); -const Lib_Types__runM = ( _$$1 ) => (_$$1.h1); +const Lib_Types__runM = ( $$self$$1 ) => ($$self$$1.h1); const Prelude_Lin = ( ) => ({ tag: 0 }); const Lib_Prettier_noAlt = ( _$$0 ) => (bouncer(Lib_Prettier_REC_noAlt, { tag: 1, h0: _$$0 })); const Lib_Prettier_REC_noAlt = ( arg ) => { switch (arg.h0.tag) { case 5: return { tag: 1, h0: arg.h0.h0 }; case 4: return { tag: 0, h0: Lib_Prettier_Seq(Lib_Prettier_noAlt(arg.h0.h0), Lib_Prettier_noAlt(arg.h0.h1)) }; case 3: return { tag: 1, h0: arg.h0.h1 }; case 2: return { tag: 0, h0: Lib_Prettier_Text(arg.h0.h0) }; case 1: return { tag: 0, h0: Lib_Prettier_Line }; case 0: return { tag: 0, h0: Lib_Prettier_Empty }; } }; @@ -525,7 +525,7 @@ const Lib_Common_JsonObj = ( h0 ) => ({ tag: 0, h0: h0 }); const Lib_Common_JsonArray = ( h0 ) => ({ tag: 4, h0: h0 }); const Data_SortedMap_listValues = ( _$$2 ) => (Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h3), Data_SortedMap_toList(_$$2))); const Main_jsonTopContext = Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const defs = Prelude_Prelude_Monad$20Prelude_List$2Cbind(Prelude_Prelude_Functor$20Prelude_List$2Cmap(( mod ) => (Data_SortedMap_listValues(mod.h1)), Data_SortedMap_listValues(top.h0)), ( _$$1 ) => (_$$1)); return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Common_JsonObj(Prelude__$3A$3A_(Prelude__$2C_("context", Lib_Common_JsonArray(Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Main_jsonTopContext_jsonDef(eta)), defs))), Prelude_Nil()))); }); -const Main_processFile = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn((("*** Process ") + (_$$0)) + (""))), ( _ ) => { const parts = Data_List1_split1(_$$0, "/"); const sc$$3 = Data_List1_unsnoc(parts); let dir; const sc$$8 = Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(Prelude_Prelude_Eq$20Prim_String, sc$$3.h2, Prelude_Nil()); switch (sc$$8) { case true: { dir = "."; break; } case false: { dir = Prelude_joinBy("/", sc$$3.h2); break; } } const sc$$9 = Data_List1_splitFileName(sc$$3.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _1 ) => ((((((("") + (dir)) + (" ")) + (sc$$9.h2)) + (" ")) + (sc$$9.h3)) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_readFile(_$$0)), ( $$sc ) => { if (($$sc.tag) == (1)) { const sc$$20 = Lib_Tokenizer_tokenise(_$$0, $$sc.h2); if ((sc$$20.tag) == (1)) { const sc$$24 = Lib_Parser_Impl_partialParse(_$$0, Lib_Parser_parseModHeader, Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))), sc$$20.h2); return ( (sc$$24.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Util_getBaseDir(_$$0, sc$$24.h2.h2.h2, sc$$24.h2.h2.h3), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Int", Prelude_Nothing())), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "String", Prelude_Nothing())), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Char", Prelude_Nothing())), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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()), Prelude_Nil()), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const modules = Data_SortedMap_updateMap(Lib_Common_primNS, Lib_Types_MkModCtx("", top.h4, Lib_Types_MC(Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), 0, 0), top.h8), top.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, Prelude__$3A$3A_(Lib_Common_primNS, Prelude_Nil()), Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), Data_SortedMap_EmptyMap(( 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(Main_processModule(Lib_Common_emptyFC, $$sc1.h2, Prelude_Nil(), $$sc1.h3), ( src ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_showErrors(_$$0, src), ( _7 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0))))))))); }))))))))))) : Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(sc$$24.h2.h2), eta)))) ); } else { return Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(sc$$20.h2), eta)))); } } else { return Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_MkFC(_$$0, Lib_Common_MkBounds(0, 0, 0, 0)), (((("error reading ") + (_$$0)) + (": ")) + ($$sc.h2)) + (""))), eta)))); } }))); })); +const Main_processFile = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn((("*** Process ") + (_$$0)) + (""))), ( _ ) => { const parts = Data_List1_split1(_$$0, "/"); const sc$$3 = Data_List1_unsnoc(parts); let dir; const sc$$8 = Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(Prelude_Prelude_Eq$20Prim_String, sc$$3.h2, Prelude_Nil()); switch (sc$$8) { case true: { dir = "."; break; } case false: { dir = Prelude_joinBy("/", sc$$3.h2); break; } } const sc$$9 = Data_List1_splitFileName(sc$$3.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _1 ) => ((((((("") + (dir)) + (" ")) + (sc$$9.h2)) + (" ")) + (sc$$9.h3)) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_readFile(_$$0)), ( $$sc ) => { if (($$sc.tag) == (1)) { const sc$$20 = Lib_Tokenizer_tokenise(_$$0, $$sc.h2); if ((sc$$20.tag) == (1)) { const sc$$24 = Lib_Parser_Impl_partialParse(_$$0, Lib_Parser_parseModHeader, Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))), sc$$20.h2); return ( (sc$$24.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Util_getBaseDir(_$$0, sc$$24.h2.h2.h2, sc$$24.h2.h2.h3), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Int", Prelude_Nothing())), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "String", Prelude_Nothing())), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(Lib_Common_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Char", Prelude_Nothing())), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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()), Prelude_Nil()), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const modules = Data_SortedMap_updateMap(Lib_Common_primNS, Lib_Types_MkModCtx("", top.h4, Lib_Types_MC(Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), 0, 0), top.h8, Prelude_Nil()), top.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(modules, Prelude__$3A$3A_(Lib_Common_primNS, Prelude_Nil()), Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), Data_SortedMap_EmptyMap(( 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(Main_processModule(Lib_Common_emptyFC, $$sc1.h2, Prelude_Nil(), $$sc1.h3), ( src ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_showErrors(_$$0, src), ( _7 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0))))))))); }))))))))))) : Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(sc$$24.h2.h2), eta)))) ); } else { return Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(sc$$20.h2), eta)))); } } else { return Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(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(Lib_Types_getTop, ( top ) => (( (top.h7.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( _$$5 ) => (Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError(_$$1, _$$5)))), top.h7), ( _ ) => (Node_exitFailure(null, "Compile failed"))) )))); const Lib_Common_showError = ( _$$0, _$$1 ) => (( (_$$1.tag) == (1) ? ((((((("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, 0, Prelude_lines(_$$0))) : ((((("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, 0, Prelude_lines(_$$0))) )); const Prelude_arrayToList = (a,arr) => { @@ -540,7 +540,7 @@ const Lib_Common_showError_go$27 = ( _, _1, _2, _3, _$$5, _$$6 ) => (bouncer(Lib const Lib_Common_REC_showError_go$27 = ( arg ) => { if ((arg.h6.tag) == (1)) { const sc$$10 = (arg.h5) == (arg.h2.h1.h0); switch (sc$$10) { case true: { const width = ((arg.h2.h1.h3) - (arg.h2.h1.h1)) + (1); return { tag: 0, h0: ((((((" ") + (arg.h6.h1)) + ("\n ")) + (Prelude_replicate(Prelude_intToNat(arg.h2.h1.h1), " "))) + ("")) + (Prelude_replicate(Prelude_intToNat(width), "^"))) + ("\n") }; break; } case false: { 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 true: return { tag: 0, h0: (" ") + ((arg.h6.h1) + (("\n") + (Lib_Common_showError_go$27(arg.h0, arg.h1, arg.h2, arg.h3, (arg.h5) + (1), arg.h6.h2)))) }; case false: 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 }; } break; } } } else { return { tag: 0, h0: "" }; } }; const Lib_Common_showError_go = ( _, _1, _2, _3, _4, _$$6, _$$7 ) => (bouncer(Lib_Common_REC_showError_go, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: null, h6: _$$6, h7: _$$7 })); const Lib_Common_REC_showError_go = ( arg ) => { if ((arg.h7.tag) == (1)) { const sc$$11 = (arg.h6) == (arg.h2.h1.h0); switch (sc$$11) { case true: return { tag: 0, h0: ((((" ") + (arg.h7.h1)) + ("\n ")) + (Prelude_replicate(Prelude_intToNat(arg.h2.h1.h1), " "))) + ("^\n") }; case false: { 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 true: return { tag: 0, h0: (" ") + ((arg.h7.h1) + (("\n") + (Lib_Common_showError_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, (arg.h6) + (1), arg.h7.h2)))) }; case false: 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 }; } break; } } } else { return { tag: 0, h0: "" }; } }; -const Main_processModule = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const modns = Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(_$$3.h0, Prelude__$3A$3A_(_$$3.h1, Prelude_Nil())); const name = Prelude_joinBy(".", modns); const sc$$10 = Data_SortedMap_lookupMap(modns, top.h0); return ( (sc$$10.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(Data_SortedMap_updateMap(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_(_$$1, _$$3.h0))) + (("/") + ((_$$3.h1) + (".newt"))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_readFile(fn)), ( $$sc ) => { if (($$sc.tag) == (1)) { const sc$$19 = Lib_Tokenizer_tokenise(fn, $$sc.h2); if ((sc$$19.tag) == (1)) { const sc$$23 = Lib_Parser_Impl_partialParse(fn, Lib_Parser_parseModHeader, top.h8, sc$$19.h2); return ( (sc$$23.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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(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 true: { const sc$$47 = Lib_Parser_Impl_partialParse(fn, Lib_Parser_parseImports, sc$$23.h2.h3.h2, sc$$23.h2.h3.h3); return ( (sc$$47.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, sc$$47.h2.h2, ( $$case ) => { const sc$$63 = Data_List1_unsnoc(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(Prelude_when(Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_elem(Prelude_Prelude_Eq$20Prim_String, $$case.h1, _$$2), ( _2 ) => (Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (((("import loop ") + (name)) + (" -> ")) + ($$case.h1)) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_processModule($$case.h0, _$$1, Prelude__$3A$3A_(name, _$$2), qname), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_split($$case.h1, ".")))))); }), ( imported ) => { const imported1 = Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(imported, Prelude__$3A$3A_(Lib_Common_primNS, Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Serialize_checksum($$sc.h2)), ( srcSum ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_moduleHash(srcSum, imported1), ( csum ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn((("module ") + (sc$$23.h2.h2.h3)) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Serialize_loadModule(_$$3, csum), ( $$sc1 ) => { if (($$sc1.tag) == (1)) { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _3 ) => (("MODNS ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, modns)))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_parseDecls(fn, top2.h8, sc$$47.h2.h3.h3, Prelude_Lin()), ( $$sc2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top3 ) => { const freshMC = Lib_Types_MC(Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), 0, 0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, imported1, Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), modns, Data_SortedMap_EmptyMap(( 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(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, imported1, ( ns1 ) => { const sc$$80 = Data_SortedMap_lookupMap$27(ns1, top3.h0); return ( (sc$$80.tag) == (0) ? Main_importHints(Data_SortedMap_listValues(sc$$80.h1.h1)) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("namespace ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, ns1))) + (" missing"))), eta)))) ); }), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _6 ) => ("process Decls")), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Main_processModule_tryProcessDecl(_$$0, _$$1, _$$2, _$$3, _$$3.h0, _$$3.h1, $$sc.h2, ns, eta)), Lib_Elab_collectDecl($$sc2.h2)), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top4 ) => { const mod = Lib_Types_MkModCtx(csum, top4.h4, top4.h5, top4.h8); const sc$$84 = (Prelude_not(Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(Prelude_Prelude_Eq$20Prim_String, _$$2, Prelude_Nil()))) && ((Prelude_length$27(top4.h7)) == (0)); switch (sc$$84) { case true: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Serialize_dumpModule(_$$3, $$sc.h2, mod), ( _8 ) => { const modules = Data_SortedMap_updateMap(modns, mod, top4.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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 ) => (( (top4.h7.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_logMetas(Prelude_reverse()(Data_SortedMap_listValues(top4.h5.h0))), ( _10 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc.h2))) : Node_exitFailure(null, "Compile failed") ))); }); case false: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0), ( _8 ) => { const modules = Data_SortedMap_updateMap(modns, mod, top4.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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 ) => (( (top4.h7.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_logMetas(Prelude_reverse()(Data_SortedMap_listValues(top4.h5.h0))), ( _10 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc.h2))) : Node_exitFailure(null, "Compile failed") ))); }); } }))))))))); }))))))); } else { const modules = Data_SortedMap_updateMap(modns, $$sc1.h1, top1.h0); const ops = Data_SortedMap_foldMap(( _$$21 ) => (( _$$31 ) => (_$$21)), top1.h8, Data_SortedMap_toList($$sc1.h1.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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($$sc.h2))); } }))))))))); }) : 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)) + ("")); } }) : Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$23.h2.h2)) ); } else { return Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$19.h2)); } } else { return Node_exitFailure(null, (((((("ERROR at ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(_$$0))) + (": error reading ")) + (fn)) + (": ")) + ($$sc.h2)) + ("")); } }); }) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn("") ); })); +const Main_processModule = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const modns = Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(_$$3.h0, Prelude__$3A$3A_(_$$3.h1, Prelude_Nil())); const name = Prelude_joinBy(".", modns); const sc$$10 = Data_SortedMap_lookupMap(modns, top.h0); return ( (sc$$10.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(Data_SortedMap_updateMap(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_(_$$1, _$$3.h0))) + (("/") + ((_$$3.h1) + (".newt"))); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_readFile(fn)), ( $$sc ) => { if (($$sc.tag) == (1)) { const sc$$19 = Lib_Tokenizer_tokenise(fn, $$sc.h2); if ((sc$$19.tag) == (1)) { const sc$$23 = Lib_Parser_Impl_partialParse(fn, Lib_Parser_parseModHeader, top.h8, sc$$19.h2); return ( (sc$$23.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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(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 true: { const sc$$47 = Lib_Parser_Impl_partialParse(fn, Lib_Parser_parseImports, sc$$23.h2.h3.h2, sc$$23.h2.h3.h3); if ((sc$$47.tag) == (1)) { const importNames = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Main_importToQN(eta)), sc$$47.h2.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, sc$$47.h2.h2, ( $$case ) => { const sc$$64 = Data_List1_unsnoc(Data_List1_split1($$case.h1, ".")); const qname = Lib_Common_QN(sc$$64.h2, sc$$64.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_when(Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_elem(Prelude_Prelude_Eq$20Prim_String, $$case.h1, _$$2), ( _2 ) => (Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (((("import loop ") + (name)) + (" -> ")) + ($$case.h1)) + (""))), eta)))))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_processModule($$case.h0, _$$1, Prelude__$3A$3A_(name, _$$2), qname), ( _3 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_split($$case.h1, ".")))))); }), ( imported ) => { const imported1 = Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(imported, Prelude__$3A$3A_(Lib_Common_primNS, Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Serialize_checksum($$sc.h2)), ( srcSum ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_moduleHash(srcSum, imported1), ( csum ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn((("module ") + (sc$$23.h2.h2.h3)) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Serialize_loadModule(_$$3, csum), ( $$sc1 ) => { if (($$sc1.tag) == (1)) { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _3 ) => (("MODNS ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, modns)))), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_parseDecls(fn, top2.h8, sc$$47.h2.h3.h3, Prelude_Lin()), ( $$sc2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top3 ) => { const freshMC = Lib_Types_MC(Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), 0, 0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, imported1, Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), modns, Data_SortedMap_EmptyMap(( 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(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, imported1, ( ns1 ) => { const sc$$81 = Data_SortedMap_lookupMap$27(ns1, top3.h0); return ( (sc$$81.tag) == (0) ? Main_importHints(Data_SortedMap_listValues(sc$$81.h1.h1)) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("namespace ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, ns1))) + (" missing"))), eta)))) ); }), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _6 ) => ("process Decls")), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Main_processModule_tryProcessDecl(_$$0, _$$1, _$$2, _$$3, _$$3.h0, _$$3.h1, $$sc.h2, ns, eta)), Lib_Elab_collectDecl($$sc2.h2)), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top4 ) => { const mod = Lib_Types_MkModCtx(csum, top4.h4, top4.h5, top4.h8, importNames); const sc$$85 = (Prelude_not(Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29$2C_$3D$3D_(Prelude_Prelude_Eq$20Prim_String, _$$2, Prelude_Nil()))) && ((Prelude_length$27(top4.h7)) == (0)); switch (sc$$85) { case true: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Serialize_dumpModule(_$$3, $$sc.h2, mod), ( _8 ) => { const modules = Data_SortedMap_updateMap(modns, mod, top4.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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 ) => (( (top4.h7.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_logMetas(Prelude_reverse()(Data_SortedMap_listValues(top4.h5.h0))), ( _10 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc.h2))) : Node_exitFailure(null, "Compile failed") ))); }); case false: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0), ( _8 ) => { const modules = Data_SortedMap_updateMap(modns, mod, top4.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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 ) => (( (top4.h7.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_logMetas(Prelude_reverse()(Data_SortedMap_listValues(top4.h5.h0))), ( _10 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc.h2))) : Node_exitFailure(null, "Compile failed") ))); }); } }))))))))); }))))))); } else { const modules = Data_SortedMap_updateMap(modns, $$sc1.h1, top1.h0); const ops = Data_SortedMap_foldMap(( _$$21 ) => (( _$$31 ) => (_$$21)), top1.h8, Data_SortedMap_toList($$sc1.h1.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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($$sc.h2))); } }))))))))); }); } else { 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)) + ("")); } }) : Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$23.h2.h2)) ); } else { return Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$19.h2)); } } else { return Node_exitFailure(null, (((((("ERROR at ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(_$$0))) + (": error reading ")) + (fn)) + (": ")) + ($$sc.h2)) + ("")); } }); }) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn("") ); })); 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(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Right(Prelude__$2C_(_$$0, 0)), eta))))); const Lib_ProcessDecl_logMetas = ( _$$0 ) => (bouncer(Lib_ProcessDecl_REC_logMetas, { tag: 1, h0: _$$0 })); @@ -550,8 +550,8 @@ const Lib_Common_Prelude_Show$20Lib_Common_QName = Prelude_MkShow(( eta ) => (Li const Lib_Elab_findMatches = ( _$$0, _$$1, _$$2 ) => (bouncer(Lib_Elab_REC_findMatches, { tag: 1, h0: _$$0, h1: _$$1, h2: _$$2 })); const Lib_Elab_REC_findMatches = ( arg ) => { if ((arg.h2.tag) == (1)) { const sc$$10 = Lib_Elab_isCandidate(arg.h1, arg.h2.h1.h3); switch (sc$$10) { case true: return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const fc = Lib_Types_getValFC(arg.h1); return Lib_Types_catchError(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("TRY ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(arg.h2.h1.h2))) + (" : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), arg.h2.h1.h3))), Prelude_Lin()))) + (" for ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1))) + (""))), ( _ ) => { const sc$$18 = Lib_Util_splitTele(arg.h2.h1.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_setMetaMode(1), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(arg.h0, Lib_Syntax_RVar(fc, arg.h2.h1.h2.h1), arg.h1), ( tm ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((((("Found ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), tm))), Prelude_Lin()))) + (" for ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, tc.h1, tc.h2, tc.h3, tc.h4, top.h5, tc.h6, tc.h7, tc.h8)))), ( _3 ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Prelude__$3A$3A_(arg.h2.h1.h2, eta)), Lib_Elab_findMatches(arg.h0, arg.h1, arg.h2.h2)))))))))); }), ( err ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("No match ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1))) + (" ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), arg.h2.h1.h3))), Prelude_Lin()))) + (" ")) + (Lib_Common_showError("", err))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, tc.h1, tc.h2, tc.h3, tc.h4, top.h5, tc.h6, tc.h7, tc.h8)))), ( _1 ) => (Lib_Elab_findMatches(arg.h0, arg.h1, arg.h2.h2))))))); }) }; case false: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2.h2 }; } } else { return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nil()) }; } }; const Lib_Syntax_RVar = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); -const Lib_Elab_check = ( _$$0, _$$1, _$$2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_forceType(_$$0.h1, _$$2), ( ty$27 ) => { const sc$$4 = Prelude__$2C_(_$$1, ty$27); switch (sc$$4.h2.tag) { case 16: return Lib_Elab_updateRec(_$$0, sc$$4.h2.h0, sc$$4.h2.h1, sc$$4.h2.h2, sc$$4.h3); case 14: return Lib_Elab_checkWhere(_$$0, Lib_Elab_collectDecl(sc$$4.h2.h1), sc$$4.h2.h2, sc$$4.h3); case 13: { const tm$27 = Lib_Syntax_RCase(sc$$4.h2.h0, sc$$4.h2.h1, Prelude_Nothing(), Prelude__$3A$3A_(Lib_Syntax_MkAlt(Lib_Syntax_RVar(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2.h2), "True"), Prelude_Just(sc$$4.h2.h2)), Prelude__$3A$3A_(Lib_Syntax_MkAlt(Lib_Syntax_RVar(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2.h3), "False"), Prelude_Just(sc$$4.h2.h3)), Prelude_Nil()))); return Lib_Elab_check(_$$0, tm$27, sc$$4.h3); break; } case 12: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_undo(sc$$4.h2.h0, sc$$4.h2.h1), ( stmts$27 ) => (Lib_Elab_check(_$$0, stmts$27, sc$$4.h3))); case 11: return Lib_Elab_freshMeta(_$$0, sc$$4.h2.h0, sc$$4.h3, 1); case 10: return Lib_Elab_freshMeta(_$$0, sc$$4.h2.h0, sc$$4.h3, 0); case 9: return ( (sc$$4.h2.h2.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, sc$$4.h2.h1), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3), ( scty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("SCTM ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2), $$sc.h2))), Prelude_Lin()))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("SCTY ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty))) + (""))), ( _1 ) => { const scnm = Lib_Elab_fresh(_$$0, "sc"); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, sc$$4.h2.h3, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_mkPat(Prelude__$2C_($$case.h0, 1)), ( pat$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$case.h0), Prelude__$3A$3A_(Lib_Types_PC(scnm, pat$27, scty), Prelude_Nil()), Prelude_Nil(), $$case.h1)))))), ( clauses ) => { let ctx$27; const _sc$$22 = Lib_Types_extend(_$$0, scnm, scty); ctx$27 = Lib_Types_MkCtx(_sc$$22.h0, _sc$$22.h1, _sc$$22.h2, _sc$$22.h3, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, sc$$4.h3)), ( tree ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Let(sc$$4.h2.h0, scnm, $$sc.h2, tree)))); }))); }))))))) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h2.h1, Lib_Types_VU(Lib_Common_emptyFC)), ( scty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, scty), ( vscty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h1, vscty), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(sc, vscty)))))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3), ( scty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("SCTM ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2), $$sc.h2))), Prelude_Lin()))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("SCTY ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty))) + (""))), ( _1 ) => { const scnm = Lib_Elab_fresh(_$$0, "sc"); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, sc$$4.h2.h3, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_mkPat(Prelude__$2C_($$case.h0, 1)), ( pat$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$case.h0), Prelude__$3A$3A_(Lib_Types_PC(scnm, pat$27, scty), Prelude_Nil()), Prelude_Nil(), $$case.h1)))))), ( clauses ) => { let ctx$27; const _sc$$22 = Lib_Types_extend(_$$0, scnm, scty); ctx$27 = Lib_Types_MkCtx(_sc$$22.h0, _sc$$22.h1, _sc$$22.h2, _sc$$22.h3, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, sc$$4.h3)), ( tree ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Let(sc$$4.h2.h0, scnm, $$sc.h2, tree)))); }))); }))))))) ); case 6: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h2, Lib_Types_VU(Lib_Common_emptyFC)), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty$271), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h3, vty), ( v$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, v$27), ( vv ) => { const ctx$27 = Lib_Types_define(_$$0, sc$$4.h2.h1, vv, vty); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(ctx$27, sc$$4.h2.h4, sc$$4.h3), ( sc$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Let(sc$$4.h2.h0, sc$$4.h2.h1, v$27, sc$27)))); }))))))); case 1: return ( (sc$$4.h3.tag) == (5) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((("icits ") + (sc$$4.h2.h1.h1)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(sc$$4.h2.h1.h2))) + (" ")) + (sc$$4.h3.h1)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(sc$$4.h3.h2))) + (""))), ( _ ) => { const sc$$23 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(sc$$4.h2.h1.h2, sc$$4.h3.h2); switch (sc$$23) { case true: { const $var = Lib_Types_VVar(sc$$4.h2.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); const ctx$27 = Lib_Types_extend(_$$0, sc$$4.h2.h1.h1, sc$$4.h3.h4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( bapp ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(ctx$27, sc$$4.h2.h2, bapp), ( tm$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(sc$$4.h2.h0, sc$$4.h2.h1.h1, sc$$4.h2.h1.h2, sc$$4.h3.h3, tm$27)))))); break; } case false: { const sc$$24 = Prelude_not(Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(sc$$4.h3.h2, 1)); switch (sc$$24) { case true: { const $var = Lib_Types_VVar(sc$$4.h2.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), sc$$4.h2, ty$271), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(sc$$4.h2.h0, sc$$4.h3.h1, sc$$4.h2.h1.h2, sc$$4.h3.h3, sc)))))); break; } case false: return Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$4.h2.h0, (((("Icity issue checking ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" at ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3))) + (""))), eta)))); } break; } } }) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_prvalCtx(_$$0, sc$$4.h3), ( pty ) => (Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$4.h2.h1.h0, (("Expected pi type, got ") + (pty)) + (""))), eta)))))) ); default: { if ((sc$$4.h3.tag) == (5)) { switch (sc$$4.h3.h2) { case 2: { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("XXX edge case add auto lambda {") + (sc$$4.h3.h1)) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3.h4))) + ("} to ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" "))), ( _ ) => { const $var = Lib_Types_VVar(sc$$4.h3.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_logM(2, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_prvalCtx(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), ty$271), ( pty$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn((("XXX ty' is ") + (pty$27)) + (""))))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), sc$$4.h2, ty$271), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), sc$$4.h3.h1, 2, sc$$4.h3.h3, sc)))))))); }); break; } case 0: { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("XXX edge case add implicit lambda {") + (sc$$4.h3.h1)) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3.h4))) + ("} to ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" "))), ( _ ) => { const $var = Lib_Types_VVar(sc$$4.h3.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_logM(2, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_prvalCtx(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), ty$271), ( pty$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn((("XXX ty' is ") + (pty$27)) + (""))))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), sc$$4.h2, ty$271), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), sc$$4.h3.h1, 0, sc$$4.h3.h3, sc)))))))); }); break; } default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, sc$$4.h2), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((("INFER ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" to (")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, $$sc1.h2))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc1.h3))) + (") expect ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), _$$0, $$sc1.h3, sc$$4.h3), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc1.h2))))); }))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, sc$$4.h2), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((("INFER ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" to (")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, $$sc1.h2))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc1.h3))) + (") expect ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), _$$0, $$sc1.h3, sc$$4.h3), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc1.h2))))); }))); } break; } } })); -const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { case 16: return _$$0.h0; case 15: return _$$0.h0; case 14: return _$$0.h0; case 13: return _$$0.h0; case 12: return _$$0.h0; case 11: return _$$0.h0; case 10: return _$$0.h0; case 9: return _$$0.h0; case 8: return _$$0.h0; case 7: return _$$0.h0; case 6: return _$$0.h0; case 5: return _$$0.h0; case 4: return _$$0.h0; case 3: return _$$0.h0; case 2: return _$$0.h0; case 1: return _$$0.h0; case 0: return _$$0.h0; } }; +const Lib_Elab_check = ( _$$0, _$$1, _$$2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_forceType(_$$0.h1, _$$2), ( ty$27 ) => { const sc$$4 = Prelude__$2C_(_$$1, ty$27); switch (sc$$4.h2.tag) { case 15: return Lib_Elab_updateRec(_$$0, sc$$4.h2.h0, sc$$4.h2.h1, sc$$4.h2.h2, sc$$4.h3); case 13: return Lib_Elab_checkWhere(_$$0, Lib_Elab_collectDecl(sc$$4.h2.h1), sc$$4.h2.h2, sc$$4.h3); case 12: { const tm$27 = Lib_Syntax_RCase(sc$$4.h2.h0, sc$$4.h2.h1, Prelude_Nothing(), Prelude__$3A$3A_(Lib_Syntax_MkAlt(Lib_Syntax_RVar(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2.h2), "True"), Prelude_Just(sc$$4.h2.h2)), Prelude__$3A$3A_(Lib_Syntax_MkAlt(Lib_Syntax_RVar(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2.h3), "False"), Prelude_Just(sc$$4.h2.h3)), Prelude_Nil()))); return Lib_Elab_check(_$$0, tm$27, sc$$4.h3); break; } case 11: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_undo(sc$$4.h2.h0, sc$$4.h2.h1), ( stmts$27 ) => (Lib_Elab_check(_$$0, stmts$27, sc$$4.h3))); case 10: return Lib_Elab_freshMeta(_$$0, sc$$4.h2.h0, sc$$4.h3, 1); case 9: return Lib_Elab_freshMeta(_$$0, sc$$4.h2.h0, sc$$4.h3, 0); case 8: return ( (sc$$4.h2.h2.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, sc$$4.h2.h1), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3), ( scty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("SCTM ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2), $$sc.h2))), Prelude_Lin()))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("SCTY ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty))) + (""))), ( _1 ) => { const scnm = Lib_Elab_fresh(_$$0, "sc"); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, sc$$4.h2.h3, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_mkPat(Prelude__$2C_($$case.h0, 1)), ( pat$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$case.h0), Prelude__$3A$3A_(Lib_Types_PC(scnm, pat$27, scty), Prelude_Nil()), Prelude_Nil(), $$case.h1)))))), ( clauses ) => { let ctx$27; const _sc$$22 = Lib_Types_extend(_$$0, scnm, scty); ctx$27 = Lib_Types_MkCtx(_sc$$22.h0, _sc$$22.h1, _sc$$22.h2, _sc$$22.h3, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, sc$$4.h3)), ( tree ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Let(sc$$4.h2.h0, scnm, $$sc.h2, tree)))); }))); }))))))) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h2.h1, Lib_Types_VU(Lib_Common_emptyFC)), ( scty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, scty), ( vscty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h1, vscty), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(sc, vscty)))))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3), ( scty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("SCTM ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2), $$sc.h2))), Prelude_Lin()))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("SCTY ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(scty))) + (""))), ( _1 ) => { const scnm = Lib_Elab_fresh(_$$0, "sc"); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, sc$$4.h2.h3, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_mkPat(Prelude__$2C_($$case.h0, 1)), ( pat$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$case.h0), Prelude__$3A$3A_(Lib_Types_PC(scnm, pat$27, scty), Prelude_Nil()), Prelude_Nil(), $$case.h1)))))), ( clauses ) => { let ctx$27; const _sc$$22 = Lib_Types_extend(_$$0, scnm, scty); ctx$27 = Lib_Types_MkCtx(_sc$$22.h0, _sc$$22.h1, _sc$$22.h2, _sc$$22.h3, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, sc$$4.h3)), ( tree ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Let(sc$$4.h2.h0, scnm, $$sc.h2, tree)))); }))); }))))))) ); case 6: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h2, Lib_Types_VU(Lib_Common_emptyFC)), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty$271), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, sc$$4.h2.h3, vty), ( v$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, v$27), ( vv ) => { const ctx$27 = Lib_Types_define(_$$0, sc$$4.h2.h1, vv, vty); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(ctx$27, sc$$4.h2.h4, sc$$4.h3), ( sc$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Let(sc$$4.h2.h0, sc$$4.h2.h1, v$27, sc$27)))); }))))))); case 1: return ( (sc$$4.h3.tag) == (5) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((("icits ") + (sc$$4.h2.h1.h1)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(sc$$4.h2.h1.h2))) + (" ")) + (sc$$4.h3.h1)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(sc$$4.h3.h2))) + (""))), ( _ ) => { const sc$$23 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(sc$$4.h2.h1.h2, sc$$4.h3.h2); switch (sc$$23) { case true: { const $var = Lib_Types_VVar(sc$$4.h2.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); const ctx$27 = Lib_Types_extend(_$$0, sc$$4.h2.h1.h1, sc$$4.h3.h4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( bapp ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(ctx$27, sc$$4.h2.h2, bapp), ( tm$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(sc$$4.h2.h0, sc$$4.h2.h1.h1, sc$$4.h2.h1.h2, sc$$4.h3.h3, tm$27)))))); break; } case false: { const sc$$24 = Prelude_not(Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(sc$$4.h3.h2, 1)); switch (sc$$24) { case true: { const $var = Lib_Types_VVar(sc$$4.h2.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), sc$$4.h2, ty$271), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(sc$$4.h2.h0, sc$$4.h3.h1, sc$$4.h2.h1.h2, sc$$4.h3.h3, sc)))))); break; } case false: return Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$4.h2.h0, (((("Icity issue checking ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" at ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3))) + (""))), eta)))); } break; } } }) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_prvalCtx(_$$0, sc$$4.h3), ( pty ) => (Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$4.h2.h1.h0, (("Expected pi type, got ") + (pty)) + (""))), eta)))))) ); default: { if ((sc$$4.h3.tag) == (5)) { switch (sc$$4.h3.h2) { case 2: { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("XXX edge case add auto lambda {") + (sc$$4.h3.h1)) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3.h4))) + ("} to ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" "))), ( _ ) => { const $var = Lib_Types_VVar(sc$$4.h3.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_logM(2, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_prvalCtx(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), ty$271), ( pty$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn((("XXX ty' is ") + (pty$27)) + (""))))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), sc$$4.h2, ty$271), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), sc$$4.h3.h1, 2, sc$$4.h3.h3, sc)))))))); }); break; } case 0: { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("XXX edge case add implicit lambda {") + (sc$$4.h3.h1)) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3.h4))) + ("} to ")) + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" "))), ( _ ) => { const $var = Lib_Types_VVar(sc$$4.h3.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_($var, sc$$4.h3.h5.h0), sc$$4.h3.h5.h1), ( ty$271 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_logM(2, Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_prvalCtx(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), ty$271), ( pty$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn((("XXX ty' is ") + (pty$27)) + (""))))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, sc$$4.h3.h1, sc$$4.h3.h4), sc$$4.h2, ty$271), ( sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lam(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), sc$$4.h3.h1, 0, sc$$4.h3.h3, sc)))))))); }); break; } default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, sc$$4.h2), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((("INFER ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" to (")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, $$sc1.h2))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc1.h3))) + (") expect ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), _$$0, $$sc1.h3, sc$$4.h3), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc1.h2))))); }))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, sc$$4.h2), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$0.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((("INFER ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$4.h2))) + (" to (")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, $$sc1.h2))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc1.h3))) + (") expect ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$4.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$4.h2), _$$0, $$sc1.h3, sc$$4.h3), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn($$sc1.h2))))); }))); } break; } } })); +const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { case 15: return _$$0.h0; case 14: return _$$0.h0; case 13: return _$$0.h0; case 12: return _$$0.h0; case 11: return _$$0.h0; case 10: return _$$0.h0; case 9: return _$$0.h0; case 8: return _$$0.h0; case 7: return _$$0.h0; case 6: return _$$0.h0; case 5: return _$$0.h0; case 4: return _$$0.h0; case 3: return _$$0.h0; case 2: return _$$0.h0; case 1: return _$$0.h0; case 0: return _$$0.h0; } }; const Lib_Elab_unifyCatch = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_catchError(Lib_Elab_unify(_$$1.h1, false, _$$2, _$$3), ( err ) => { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$1.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((("fail ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_$$1.h0, _$$2), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_$$1.h0, _$$3), ( b ) => { const msg = (((((("unification failure: ") + (Lib_Types_errorMsg(err))) + ("\n failed to unify ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, a))), Prelude_Lin()))) + ("\n with ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, b))), Prelude_Lin()))) + ("\n "); return Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$0, msg)), eta)))); }))))); }), ( res ) => (( (res.h0.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("fail with constraints ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_MkShow(( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, eta))), res.h0))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_$$1.h0, _$$2), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_$$1.h0, _$$3), ( b ) => { const names = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$1.h2); const msg = (((("unification failure\n failed to unify ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, a))), Prelude_Lin()))) + ("\n with ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, names, b))), Prelude_Lin()))) + (""); const msg1 = (msg) + ((("\nconstraints ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_MkShow(( eta ) => (Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2Cshow(Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val, eta))), res.h0))) + ("")); return Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$0, msg1)), eta)))); }))))) )))); const Prelude_Prelude_Show$20Prim_Int$2Cshow = ( eta ) => (Prelude_showInt(eta)); const Prelude_Prelude_Show$20Prim_Int = Prelude_MkShow(Prelude_Prelude_Show$20Prim_Int$2Cshow); @@ -615,7 +615,7 @@ const Prelude_REC_Prelude_Ord$20Prelude_Nat$2Ccompare = ( arg ) => { switch (arg const Lib_Elab_unify_unifyRest_unifyRef_unifyVar_unifyLam_unifyMeta_unifyPattern = ( _, _1, _2, _3, _$$10, _$$11 ) => { if ((_$$11.tag) == (0)) { if ((_$$10.tag) == (0)) { const sc$$18 = (_$$10.h1) == (_$$11.h1); switch (sc$$18) { case true: return Lib_Elab_unifySpine(_, _1, (_$$10.h1) == (_$$11.h1), _$$10.h2, _$$11.h2); case false: { const sc$$19 = Prelude__$2C_(_$$10.h2, _$$11.h2); if ((sc$$19.h2.tag) == (0)) { if ((sc$$19.h3.tag) == (0)) { const sc$$26 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$10.h1, _$$11.h1), 0); switch (sc$$26) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude__$3A$3A_(Prelude__$2C_(_$$10.h1, _$$11), Prelude_Nil()))); case false: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude__$3A$3A_(Prelude__$2C_(_$$11.h1, _$$10), Prelude_Nil()))); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude__$3A$3A_(Prelude__$2C_(_$$10.h1, _$$11), Prelude_Nil()))); } } else { return ( (sc$$19.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude__$3A$3A_(Prelude__$2C_(_$$11.h1, _$$10), Prelude_Nil()))) : Lib_Types_MkM(( _4 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$10.h0, (((((("Failed to unify ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$10))) + (" and ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$11))) + (" at ")) + (Lib_Elab_Prelude_Show$20Lib_Elab_UnifyMode$2Cshow(_1))) + (""))), eta)))) ); } break; } } } else { return ( (_$$11.h2.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude__$3A$3A_(Prelude__$2C_(_$$11.h1, _$$10), Prelude_Nil()))) : Lib_Elab_unify_unifyRest_unifyRef_unifyVar_unifyLam_unifyMeta(_, _1, _2, _3, _$$10, _$$11) ); } } else { return ( (_$$10.tag) == (0) ? ( (_$$10.h2.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude__$3A$3A_(Prelude__$2C_(_$$10.h1, _$$11), Prelude_Nil()))) : Lib_Elab_unify_unifyRest_unifyRef_unifyVar_unifyLam_unifyMeta(_, _1, _2, _3, _$$10, _$$11) ) : Lib_Elab_unify_unifyRest_unifyRef_unifyVar_unifyLam_unifyMeta(_, _1, _2, _3, _$$10, _$$11) ); } }; const Lib_Elab_Prelude_Show$20Lib_Elab_UnifyMode$2Cshow = ( _$$0 ) => { switch (_$$0) { case true: return "UPattern"; case false: return "UNormal"; } }; const Lib_Elab_forceMeta = ( _$$0 ) => (( (_$$0.tag) == (3) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_lookupMeta(_$$0.h1), ( meta ) => (( (meta.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_vappSpine(meta.h2, _$$0.h2), ( eta ) => (Lib_Elab_forceMeta(eta))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_VMeta(_$$0.h0, _$$0.h1, _$$0.h2)) ))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(_$$0) )); -const Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case 16: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RUpdateRec", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_UpdateClause, _$$0.h1), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, _$$0.h2), Prelude_Nil()))))) + (")")); case 15: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RAs", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude_Nil()))))) + (")")); case 14: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Where", Prelude__$3A$3A_("FIXME", Prelude_Nil())))) + (")")); case 13: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("If", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 12: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("DO", Prelude__$3A$3A_("FIXME", Prelude_Nil())))) + (")")); case 11: return "?"; case 10: return "_"; case 9: return ( (_$$0.h2.tag) == (1) ? ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Case", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(" of ", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt, _$$0.h3), Prelude_Nil())))))) + (")")) : ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Case", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(" : ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2.h1), Prelude__$3A$3A_(" of ", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt, _$$0.h3), Prelude_Nil())))))))) + (")")) ); case 8: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RLit", Prelude__$3A$3A_(Lib_Types_Prelude_Show$20Lib_Types_Literal$2Cshow(_$$0.h1), Prelude_Nil())))) + (")")); case 7: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RAnn", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude_Nil()))))) + (")")); case 6: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Let", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(" : ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(" = ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude__$3A$3A_(" in ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h4), Prelude_Nil())))))))))) + (")")); case 5: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Pi", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 4: return "()"; case 3: return "U"; case 2: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("App", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 1: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Lam", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude_Nil()))))) + (")")); case 0: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RVar", Prelude__$3A$3A_(_$$0.h1, Prelude_Nil())))) + (")")); } }; +const Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case 15: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RUpdateRec", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_UpdateClause, _$$0.h1), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, _$$0.h2), Prelude_Nil()))))) + (")")); case 14: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RAs", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude_Nil()))))) + (")")); case 13: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Where", Prelude__$3A$3A_("FIXME", Prelude_Nil())))) + (")")); case 12: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("If", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 11: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("DO", Prelude__$3A$3A_("FIXME", Prelude_Nil())))) + (")")); case 10: return "?"; case 9: return "_"; case 8: return ( (_$$0.h2.tag) == (1) ? ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Case", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(" of ", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt, _$$0.h3), Prelude_Nil())))))) + (")")) : ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Case", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(" : ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2.h1), Prelude__$3A$3A_(" of ", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt, _$$0.h3), Prelude_Nil())))))))) + (")")) ); case 7: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RLit", Prelude__$3A$3A_(Lib_Types_Prelude_Show$20Lib_Types_Literal$2Cshow(_$$0.h1), Prelude_Nil())))) + (")")); case 6: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Let", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(" : ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(" = ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude__$3A$3A_(" in ", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h4), Prelude_Nil())))))))))) + (")")); case 5: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Pi", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 4: return "()"; case 3: return "U"; case 2: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("App", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 1: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Lam", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo$2Cshow(_$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude_Nil()))))) + (")")); case 0: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("RVar", Prelude__$3A$3A_(_$$0.h1, Prelude_Nil())))) + (")")); } }; const Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo$2Cshow = ( _$$0 ) => (("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("BI", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(_$$0.h2), Prelude__$3A$3A_(Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")"))); const Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow = ( _$$0 ) => { switch (_$$0) { case 2: return "Auto"; case 1: return "Explicit"; case 0: return "Implicit"; } }; const Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt$2Cshow = ( _$$0 ) => (("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("MkAlt", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h0), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, _$$0.h1), Prelude_Nil()))))) + (")"))); @@ -628,7 +628,7 @@ const Lib_Elab_insert = ( ctx$$0, _$$1, _$$2 ) => (Lib_Types_Prelude_Monad$20Lib const Lib_Elab_freshMeta = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("fresh meta ") + (Prelude_showInt(top.h5.h2))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$2))) + (" (")) + (Lib_Types_Prelude_Show$20Lib_Types_MetaKind$2Cshow(_$$3))) + (")"))), ( _ ) => { const qn = Lib_Common_QN(top.h3, (("$m") + (Prelude_showInt(top.h5.h2))) + ("")); const newmeta = Lib_Types_Unsolved(_$$1, qn, _$$0, _$$2, _$$3, Prelude_Nil()); let autos; switch (_$$3) { case 2: { autos = Prelude__$3A$3A_(qn, top.h5.h1); break; } default: { autos = top.h5.h1; break; } } return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, tc.h1, tc.h2, tc.h3, tc.h4, Lib_Types_MC(Data_SortedMap_updateMap(qn, newmeta, top.h5.h0), autos, (1) + (top.h5.h2), top.h5.h3), tc.h6, tc.h7, tc.h8)))), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_freshMeta_applyBDs(_$$0, _$$1, _$$2, _$$3, 0, Lib_Types_Meta(_$$1, qn), _$$0.h3)))); })))); const Lib_Elab_freshMeta_applyBDs = ( _, _1, _2, _3, _$$5, _$$6, _$$7 ) => (bouncer(Lib_Elab_REC_freshMeta_applyBDs, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: null, h5: _$$5, h6: _$$6, h7: _$$7 })); const Lib_Elab_REC_freshMeta_applyBDs = ( arg ) => { if ((arg.h7.tag) == (1)) { switch (arg.h7.h1) { case true: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: (1) + (arg.h5), h6: arg.h6, h7: arg.h7.h2 }; case false: return { tag: 0, h0: Lib_Types_App(Lib_Common_emptyFC, Lib_Elab_freshMeta_applyBDs(arg.h0, arg.h1, arg.h2, arg.h3, (1) + (arg.h5), arg.h6, arg.h7.h2), Lib_Types_Bnd(Lib_Common_emptyFC, arg.h5)) }; } } else { return { tag: 0, h0: arg.h6 }; } }; -const Lib_Elab_infer = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 16: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, "I can't infer record updates")), eta)))); case 15: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, "@ can only be used in patterns")), eta)))); case 10: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( ty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, vty, 0), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tm, vty)))))))); case 8: switch (_$$1.h1.tag) { case 2: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_primType(_$$1.h0, Lib_Elab_charType), ( ty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lit(_$$1.h0, Lib_Types_LChar(_$$1.h1.h0)), ty)))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_primType(_$$1.h0, Lib_Elab_intType), ( ty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lit(_$$1.h0, Lib_Types_LInt(_$$1.h1.h0)), ty)))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_primType(_$$1.h0, Lib_Elab_stringType), ( ty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lit(_$$1.h0, Lib_Types_LString(_$$1.h1.h0)), ty)))); default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1), (("Implement infer ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$1))) + (""))), eta)))); } break; case 7: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, Lib_Types_VU(_$$1.h0)), ( ty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h1, vty), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tm, vty)))))))); case 6: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, Lib_Types_VU(Lib_Common_emptyFC)), ( ty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty$27), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h3, vty), ( v$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, v$27), ( vv ) => { const ctx$27 = Lib_Types_define(_$$0, _$$1.h1, vv, vty); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(ctx$27, _$$1.h4), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Let(_$$1.h0, _$$1.h1, v$27, $$sc.h2), $$sc.h3)))); }))))))); case 5: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, Lib_Types_VU(_$$1.h1.h0)), ( ty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty$27), ( vty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, _$$1.h1.h1, vty$27), _$$1.h3, Lib_Types_VU(_$$1.h1.h0)), ( ty2$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Pi(_$$1.h1.h0, _$$1.h1.h1, _$$1.h1.h2, _$$1.h1.h3, ty$27, ty2$27), Lib_Types_VU(_$$1.h1.h0))))))))); case 3: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_UU(_$$1.h0), Lib_Types_VU(_$$1.h0))); case 2: switch (_$$1.h3) { case 2: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, _$$1.h1), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(2, Prelude__$2C_($$sc.h2, $$sc.h3))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3.h3), ( tty$27 ) => { if ((tty$27.tag) == (5)) { const sc$$24 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(tty$27.h2, $$sc.h2); switch (sc$$24) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tty$27.h4, tty$27.h5)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (((("IcitMismatch ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow($$sc.h2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(tty$27.h2))) + (""))), eta)))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("unify PI for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(tty$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_MkClosure(_$$0.h1, eta)), Lib_Elab_freshMeta(Lib_Types_extend(_$$0, ":ins", a), _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0)), ( b ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(_$$1.h0, _$$0, tty$27, Lib_Types_VPi(_$$1.h0, ":ins", $$sc.h2, true, a, b)), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(a, b)))))))))); } }), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, $$sc1.h2), ( u ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, u), ( u$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(u$27, $$sc1.h3.h0), $$sc1.h3.h1), ( bappu ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_App(_$$1.h0, $$sc.h3.h2, u), bappu)))))))))))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, _$$1.h1), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(1, Prelude__$2C_($$sc1.h2, $$sc1.h3))))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3.h3), ( tty$27 ) => { if ((tty$27.tag) == (5)) { const sc$$24 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(tty$27.h2, $$sc.h2); switch (sc$$24) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tty$27.h4, tty$27.h5)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (((("IcitMismatch ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow($$sc.h2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(tty$27.h2))) + (""))), eta)))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("unify PI for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(tty$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_MkClosure(_$$0.h1, eta)), Lib_Elab_freshMeta(Lib_Types_extend(_$$0, ":ins", a), _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0)), ( b ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(_$$1.h0, _$$0, tty$27, Lib_Types_VPi(_$$1.h0, ":ins", $$sc.h2, true, a, b)), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(a, b)))))))))); } }), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, $$sc1.h2), ( u ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, u), ( u$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(u$27, $$sc1.h3.h0), $$sc1.h3.h1), ( bappu ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_App(_$$1.h0, $$sc.h3.h2, u), bappu)))))))))))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, _$$1.h1), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(0, Prelude__$2C_($$sc.h2, $$sc.h3))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3.h3), ( tty$27 ) => { if ((tty$27.tag) == (5)) { const sc$$24 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(tty$27.h2, $$sc.h2); switch (sc$$24) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tty$27.h4, tty$27.h5)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (((("IcitMismatch ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow($$sc.h2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(tty$27.h2))) + (""))), eta)))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("unify PI for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(tty$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_MkClosure(_$$0.h1, eta)), Lib_Elab_freshMeta(Lib_Types_extend(_$$0, ":ins", a), _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0)), ( b ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(_$$1.h0, _$$0, tty$27, Lib_Types_VPi(_$$1.h0, ":ins", $$sc.h2, true, a, b)), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(a, b)))))))))); } }), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, $$sc1.h2), ( u ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, u), ( u$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(u$27, $$sc1.h3.h0), $$sc1.h3.h1), ( bappu ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_App(_$$1.h0, $$sc.h3.h2, u), bappu)))))))))))); } break; case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => { const ctx$27 = Lib_Types_extend(_$$0, _$$1.h1.h1, a); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(ctx$27, _$$1.h2), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("make lam for ") + (_$$1.h1.h1)) + (" scope ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$2 ) => (_$$2.h2), _$$0.h2), $$sc.h2))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote((1) + (_$$0.h0), $$sc.h3), ( tyb ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lam(_$$1.h1.h0, _$$1.h1.h1, _$$1.h1.h2, _$$1.h1.h3, $$sc.h2), Lib_Types_VPi(_$$1.h1.h0, _$$1.h1.h1, _$$1.h1.h2, _$$1.h1.h3, a, Lib_Types_MkClosure(_$$0.h1, tyb)))))))))); }); case 0: return Lib_Elab_infer_go(_$$0, _$$1, _$$1.h0, _$$1.h1, 0, _$$0.h2); default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1), (("Implement infer ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$1))) + (""))), eta)))); } }; +const Lib_Elab_infer = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 15: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, "I can't infer record updates")), eta)))); case 14: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, "@ can only be used in patterns")), eta)))); case 9: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( ty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, vty, 0), ( tm ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tm, vty)))))))); case 7: switch (_$$1.h1.tag) { case 2: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_primType(_$$1.h0, Lib_Elab_charType), ( ty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lit(_$$1.h0, Lib_Types_LChar(_$$1.h1.h0)), ty)))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_primType(_$$1.h0, Lib_Elab_intType), ( ty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lit(_$$1.h0, Lib_Types_LInt(_$$1.h1.h0)), ty)))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_primType(_$$1.h0, Lib_Elab_stringType), ( ty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lit(_$$1.h0, Lib_Types_LString(_$$1.h1.h0)), ty)))); default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1), (("Implement infer ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$1))) + (""))), eta)))); } break; case 6: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, Lib_Types_VU(Lib_Common_emptyFC)), ( ty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty$27), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h3, vty), ( v$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, v$27), ( vv ) => { const ctx$27 = Lib_Types_define(_$$0, _$$1.h1, vv, vty); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(ctx$27, _$$1.h4), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Let(_$$1.h0, _$$1.h1, v$27, $$sc.h2), $$sc.h3)))); }))))))); case 5: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, Lib_Types_VU(_$$1.h1.h0)), ( ty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, ty$27), ( vty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_extend(_$$0, _$$1.h1.h1, vty$27), _$$1.h3, Lib_Types_VU(_$$1.h1.h0)), ( ty2$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Pi(_$$1.h1.h0, _$$1.h1.h1, _$$1.h1.h2, _$$1.h1.h3, ty$27, ty2$27), Lib_Types_VU(_$$1.h1.h0))))))))); case 3: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_UU(_$$1.h0), Lib_Types_VU(_$$1.h0))); case 2: switch (_$$1.h3) { case 2: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, _$$1.h1), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(2, Prelude__$2C_($$sc.h2, $$sc.h3))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3.h3), ( tty$27 ) => { if ((tty$27.tag) == (5)) { const sc$$24 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(tty$27.h2, $$sc.h2); switch (sc$$24) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tty$27.h4, tty$27.h5)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (((("IcitMismatch ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow($$sc.h2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(tty$27.h2))) + (""))), eta)))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("unify PI for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(tty$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_MkClosure(_$$0.h1, eta)), Lib_Elab_freshMeta(Lib_Types_extend(_$$0, ":ins", a), _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0)), ( b ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(_$$1.h0, _$$0, tty$27, Lib_Types_VPi(_$$1.h0, ":ins", $$sc.h2, true, a, b)), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(a, b)))))))))); } }), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, $$sc1.h2), ( u ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, u), ( u$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(u$27, $$sc1.h3.h0), $$sc1.h3.h1), ( bappu ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_App(_$$1.h0, $$sc.h3.h2, u), bappu)))))))))))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, _$$1.h1), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(1, Prelude__$2C_($$sc1.h2, $$sc1.h3))))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3.h3), ( tty$27 ) => { if ((tty$27.tag) == (5)) { const sc$$24 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(tty$27.h2, $$sc.h2); switch (sc$$24) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tty$27.h4, tty$27.h5)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (((("IcitMismatch ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow($$sc.h2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(tty$27.h2))) + (""))), eta)))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("unify PI for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(tty$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_MkClosure(_$$0.h1, eta)), Lib_Elab_freshMeta(Lib_Types_extend(_$$0, ":ins", a), _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0)), ( b ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(_$$1.h0, _$$0, tty$27, Lib_Types_VPi(_$$1.h0, ":ins", $$sc.h2, true, a, b)), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(a, b)))))))))); } }), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, $$sc1.h2), ( u ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, u), ( u$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(u$27, $$sc1.h3.h0), $$sc1.h3.h1), ( bappu ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_App(_$$1.h0, $$sc.h3.h2, u), bappu)))))))))))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(_$$0, _$$1.h1), ( $$sc ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(0, Prelude__$2C_($$sc.h2, $$sc.h3))))), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta($$sc.h3.h3), ( tty$27 ) => { if ((tty$27.tag) == (5)) { const sc$$24 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(tty$27.h2, $$sc.h2); switch (sc$$24) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(tty$27.h4, tty$27.h5)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (((("IcitMismatch ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow($$sc.h2))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(tty$27.h2))) + (""))), eta)))); } } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("unify PI for ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(tty$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_MkClosure(_$$0.h1, eta)), Lib_Elab_freshMeta(Lib_Types_extend(_$$0, ":ins", a), _$$1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0)), ( b ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_unifyCatch(_$$1.h0, _$$0, tty$27, Lib_Types_VPi(_$$1.h0, ":ins", $$sc.h2, true, a, b)), ( _1 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(a, b)))))))))); } }), ( $$sc1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h2, $$sc1.h2), ( u ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, u), ( u$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(u$27, $$sc1.h3.h0), $$sc1.h3.h1), ( bappu ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_App(_$$1.h0, $$sc.h3.h2, u), bappu)))))))))))); } break; case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(_$$0, _$$1.h1.h0, Lib_Types_VU(Lib_Common_emptyFC), 0), ( eta ) => (Lib_Eval_eval(_$$0.h1, eta))), ( a ) => { const ctx$27 = Lib_Types_extend(_$$0, _$$1.h1.h1, a); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_infer(ctx$27, _$$1.h2), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("make lam for ") + (_$$1.h1.h1)) + (" scope ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$2 ) => (_$$2.h2), _$$0.h2), $$sc.h2))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$sc.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote((1) + (_$$0.h0), $$sc.h3), ( tyb ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Lam(_$$1.h1.h0, _$$1.h1.h1, _$$1.h1.h2, _$$1.h1.h3, $$sc.h2), Lib_Types_VPi(_$$1.h1.h0, _$$1.h1.h1, _$$1.h1.h2, _$$1.h1.h3, a, Lib_Types_MkClosure(_$$0.h1, tyb)))))))))); }); case 0: return Lib_Elab_infer_go(_$$0, _$$1, _$$1.h0, _$$1.h1, 0, _$$0.h2); default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$1), (("Implement infer ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$1))) + (""))), eta)))); } }; const Lib_Elab_infer_go = ( _, _1, _2, _3, _$$5, _$$6 ) => (bouncer(Lib_Elab_REC_infer_go, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: null, h5: _$$5, h6: _$$6 })); const Lib_Elab_REC_infer_go = ( arg ) => { if ((arg.h6.tag) == (1)) { const sc$$14 = (arg.h6.h1.h2) == (arg.h3); switch (sc$$14) { case true: return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Bnd(arg.h2, arg.h5), arg.h6.h1.h3)) }; case false: 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 }; } } else { return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const sc$$9 = Lib_TopContext_lookupRaw(arg.h3, top); return ( (sc$$9.tag) == (1) ? Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(arg.h2, (("") + (arg.h3)) + (" not in scope"))), eta)))) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((("lookup ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$9.h1.h1))) + (" as ")) + (Lib_Types_Prelude_Show$20Lib_Types_Def$2Cshow(sc$$9.h1.h3))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), sc$$9.h1.h2), ( vty ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Lib_Types_Ref(arg.h2, sc$$9.h1.h1), vty)))))) ); }) }; } }; const Lib_Types_Prelude_Show$20Lib_Types_Def$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case 6: return (("PrimOp ") + (_$$0.h0)) + (""); case 5: return (((((("PrimFn ") + (_$$0.h0)) + (" ")) + (Prelude_showInt(Prelude_natToInt(_$$0.h1)))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, _$$0.h2))) + (""); case 4: return "PrimTCon"; case 3: return (("Fn ") + (Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow(_$$0.h0))) + (""); case 2: return (((((((("DCon ") + (Prelude_showInt(Prelude_natToInt(_$$0.h0)))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Quant, _$$0.h2))) + (" ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$0.h3))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_ConInfo$2Cshow(_$$0.h1))) + (""); case 1: return (("TCon ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, _$$0.h1))) + (""); case 0: return "axiom"; } }; @@ -679,7 +679,7 @@ const Lib_Types_Prelude_Show$20Lib_Types_Constraint = Prelude_MkShow(( eta ) => const Lib_Elab_buildDefault = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { const defclauses = Prelude_filter(( eta ) => (Lib_Elab_isDefaultCase(_$$3, eta)), _$$1.h0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_when(Lib_Types_Prelude_Applicative$20Lib_Types_M, (Prelude_length$27(defclauses)) == (0), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_buildDefault_applied(_$$0, _$$1, _$$2, _$$3, _$$4, eta)), _$$4), ( missing ) => (Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$2, (("missing cases: ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, missing))) + (""))), eta)))))))), ( _ ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_CaseDefault(eta)), Lib_Elab_buildTree(_$$0, Lib_Elab_MkProb(defclauses, _$$1.h1))))); }; const Lib_Elab_buildDefault_applied = ( _, _1, _2, _3, _4, _$$6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const sc$$9 = Lib_TopContext_lookup(_$$6, top); return ( (sc$$9.tag) == (0) ? ( (sc$$9.h1.h3.tag) == (2) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_buildDefault_applied_go(_, _1, _2, _3, _4, _$$6, _$$6.h1, sc$$9.h1.h2)) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(_$$6.h1) ) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(_$$6.h1) ); })); const Lib_Elab_buildDefault_applied_go = ( _, _1, _2, _3, _4, _5, _$$8, _$$9 ) => (bouncer(Lib_Elab_REC_buildDefault_applied_go, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: null, h6: _5, h7: null, h8: _$$8, h9: _$$9 })); -const Lib_Elab_REC_buildDefault_applied_go = ( arg ) => { if ((arg.h9.tag) == (6)) { switch (arg.h9.h2) { 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)) + (" _"), h9: arg.h9.h5 }; default: 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, h9: arg.h9.h5 }; } } else { return { tag: 0, h0: arg.h8 }; } }; +const Lib_Elab_REC_buildDefault_applied_go = ( arg ) => { if ((arg.h9.tag) == (6)) { switch (arg.h9.h2) { 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)) + (" ")) + (arg.h9.h1)) + (""), h9: arg.h9.h5 }; default: 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, h9: arg.h9.h5 }; } } else { return { tag: 0, h0: arg.h8 }; } }; const Lib_Elab_isDefaultCase = ( _$$0, _$$1 ) => { const sc$$2 = Prelude_find(( _$$11 ) => ((_$$0) == (_$$11.h0)), _$$1.h1); if ((sc$$2.tag) == (1)) { return true; } else { switch (sc$$2.h1.h1.tag) { case 2: return true; case 0: return true; default: return false; } } }; const Lib_Types_Prelude_Show$20Lib_Types_CaseAlt$2Cshow = ( eta ) => (Lib_Types_showCaseAlt(eta)); const Lib_Types_Prelude_Show$20Lib_Types_CaseAlt = Prelude_MkShow(Lib_Types_Prelude_Show$20Lib_Types_CaseAlt$2Cshow); @@ -733,7 +733,7 @@ const Lib_Elab_REC_lookupName_go = ( arg ) => { if ((arg.h4.tag) == (1)) { const const Lib_Elab_findSplit = ( _$$0 ) => (bouncer(Lib_Elab_REC_findSplit, { tag: 1, h0: _$$0 })); const Lib_Elab_REC_findSplit = ( arg ) => { if ((arg.h0.tag) == (1)) { switch (arg.h0.h1.h1.tag) { case 3: return { tag: 0, h0: Prelude_Just(arg.h0.h1) }; case 1: return { tag: 0, h0: Prelude_Just(arg.h0.h1) }; default: return { tag: 1, h0: arg.h0.h2 }; } } else { return { tag: 0, h0: Prelude_Nothing() }; } }; const Lib_Elab_introClause = ( _$$0, _$$1, _$$2, _$$3 ) => { if ((_$$3.h2.tag) == (1)) { const sc$$11 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(_$$1, Lib_Types_getIcit(_$$3.h2.h1)); switch (sc$$11) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(_$$3.h0, Prelude__$3A$3A_(Lib_Types_PC(_$$0, _$$3.h2.h1, _$$2), _$$3.h1), _$$3.h2.h2, _$$3.h3)); case false: { const sc$$12 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(_$$1, 0); switch (sc$$12) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(_$$3.h0, Prelude__$3A$3A_(Lib_Types_PC(_$$0, Lib_Types_PatWild(_$$3.h0, 0), _$$2), _$$3.h1), Prelude__$3A$3A_(_$$3.h2.h1, _$$3.h2.h2), _$$3.h3)); case false: { const sc$$13 = Lib_Types_Prelude_Eq$20Lib_Types_Icit$2C_$3D$3D_(_$$1, 2); switch (sc$$13) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(_$$3.h0, Prelude__$3A$3A_(Lib_Types_PC(_$$0, Lib_Types_PatWild(_$$3.h0, 2), _$$2), _$$3.h1), Prelude__$3A$3A_(_$$3.h2.h1, _$$3.h2.h2), _$$3.h3)); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$3.h0, (((((("Explicit arg and ") + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(Lib_Types_getIcit(_$$3.h2.h1)))) + (" pattern ")) + (_$$0)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Pattern$2Cshow(_$$3.h2.h1))) + (""))), eta)))); } break; } } break; } } } else { switch (_$$1) { case 2: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(_$$3.h0, Prelude__$3A$3A_(Lib_Types_PC(_$$0, Lib_Types_PatWild(_$$3.h0, 2), _$$2), _$$3.h1), Prelude_Nil(), _$$3.h3)); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(_$$3.h0, Prelude__$3A$3A_(Lib_Types_PC(_$$0, Lib_Types_PatWild(_$$3.h0, 0), _$$2), _$$3.h1), Prelude_Nil(), _$$3.h3)); default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$3.h0, "Clause size doesn't match")), eta)))); } } }; -const Lib_Elab_mkPat = ( _$$0 ) => (( (_$$0.h2.tag) == (15) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_mkPat(Prelude__$2C_(_$$0.h2.h2, _$$0.h3)), ( pat ) => (( (pat.tag) == (1) ? ( (pat.h4.tag) == (1) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatCon(pat.h0, pat.h1, pat.h2, pat.h3, Prelude_Just(_$$0.h2.h1))) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(pat.h0, (("Double as pattern ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2.h2))) + (""))), eta)))) ) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$0.h2.h0, (("Can't put as on non-constructor ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2.h2))) + (""))), eta)))) ))) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const sc$$6 = Lib_Elab_splitArgs(_$$0.h2, Prelude_Nil()); switch (sc$$6.h2.tag) { case 10: return ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatWild(sc$$6.h2.h0, _$$0.h3)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$6.h2.h0, "implicit pat can't be applied to arguments")), eta)))) ); case 8: return ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatLit(sc$$6.h2.h0, sc$$6.h2.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$6.h2.h0, "lit cannot be applied to arguments")), eta)))) ); case 4: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatImpossible(sc$$6.h2.h0)); case 0: { const sc$$13 = Lib_TopContext_lookupRaw(sc$$6.h2.h1, top); return ( (sc$$13.tag) == (0) ? ( (sc$$13.h1.h3.tag) == (2) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_mkPat(eta)), sc$$6.h3), ( bpat ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatCon(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), _$$0.h3, sc$$13.h1.h1, bpat, Prelude_Nothing())))) : ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatVar(sc$$6.h2.h0, _$$0.h3, sc$$6.h2.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), "patvar applied to args")), eta)))) ) ) : ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatVar(sc$$6.h2.h0, _$$0.h3, sc$$6.h2.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), "patvar applied to args")), eta)))) ) ); break; } default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$6.h2), (("expected pat var or constructor, got ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$6.h2))) + (""))), eta)))); } }) )); +const Lib_Elab_mkPat = ( _$$0 ) => (( (_$$0.h2.tag) == (14) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_mkPat(Prelude__$2C_(_$$0.h2.h2, _$$0.h3)), ( pat ) => (( (pat.tag) == (1) ? ( (pat.h4.tag) == (1) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatCon(pat.h0, pat.h1, pat.h2, pat.h3, Prelude_Just(_$$0.h2.h1))) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(pat.h0, (("Double as pattern ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2.h2))) + (""))), eta)))) ) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$0.h2.h0, (("Can't put as on non-constructor ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2.h2))) + (""))), eta)))) ))) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const sc$$6 = Lib_Elab_splitArgs(_$$0.h2, Prelude_Nil()); switch (sc$$6.h2.tag) { case 9: return ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatWild(sc$$6.h2.h0, _$$0.h3)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$6.h2.h0, "implicit pat can't be applied to arguments")), eta)))) ); case 7: return ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatLit(sc$$6.h2.h0, sc$$6.h2.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(sc$$6.h2.h0, "lit cannot be applied to arguments")), eta)))) ); case 4: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatImpossible(sc$$6.h2.h0)); case 0: { const sc$$13 = Lib_TopContext_lookupRaw(sc$$6.h2.h1, top); return ( (sc$$13.tag) == (0) ? ( (sc$$13.h1.h3.tag) == (2) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_mkPat(eta)), sc$$6.h3), ( bpat ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatCon(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), _$$0.h3, sc$$13.h1.h1, bpat, Prelude_Nothing())))) : ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatVar(sc$$6.h2.h0, _$$0.h3, sc$$6.h2.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), "patvar applied to args")), eta)))) ) ) : ( (sc$$6.h3.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_PatVar(sc$$6.h2.h0, _$$0.h3, sc$$6.h2.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), "patvar applied to args")), eta)))) ) ); break; } default: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$6.h2), (("expected pat var or constructor, got ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(sc$$6.h2))) + (""))), eta)))); } }) )); const Lib_Types_PatCon = ( h0, h1, h2, h3, h4 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Lib_Types_PatImpossible = ( h0 ) => ({ tag: 4, h0: h0 }); const Lib_Types_PatLit = ( h0, h1 ) => ({ tag: 3, h0: h0, h1: h1 }); @@ -743,10 +743,10 @@ const Lib_Elab_undo = ( _$$0, _$$1 ) => { if ((_$$1.tag) == (1)) { switch (_$$1. const Lib_Types_BI = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Syntax_RLam = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); const Lib_Syntax_RApp = ( h0, h1, h2, h3 ) => ({ tag: 2, h0: h0, h1: h1, h2: h2, h3: h3 }); -const Lib_Syntax_RImplicit = ( h0 ) => ({ tag: 10, h0: h0 }); +const Lib_Syntax_RImplicit = ( h0 ) => ({ tag: 9, h0: h0 }); const Lib_Syntax_RLet = ( h0, h1, h2, h3, h4 ) => ({ tag: 6, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Lib_Syntax_MkAlt = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); -const Lib_Syntax_RCase = ( h0, h1, h2, h3 ) => ({ tag: 9, h0: h0, h1: h1, h2: h2, h3: h3 }); +const Lib_Syntax_RCase = ( h0, h1, h2, h3 ) => ({ tag: 8, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Elab_collectDecl = ( _$$0 ) => (bouncer(Lib_Elab_REC_collectDecl, { tag: 1, h0: _$$0 })); const Lib_Elab_REC_collectDecl = ( arg ) => { if ((arg.h0.tag) == (1)) { if ((arg.h0.h1.tag) == (1)) { if ((arg.h0.h2.tag) == (1)) { if ((arg.h0.h2.h1.tag) == (1)) { const sc$$13 = (arg.h0.h1.h1) == (arg.h0.h2.h1.h1); switch (sc$$13) { case true: return { tag: 1, h0: Prelude__$3A$3A_(Lib_Syntax_FunDef(arg.h0.h1.h0, arg.h0.h1.h1, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(arg.h0.h1.h2, arg.h0.h2.h1.h2)), arg.h0.h2.h2) }; case false: return { tag: 0, h0: Prelude__$3A$3A_(Lib_Syntax_FunDef(arg.h0.h1.h0, arg.h0.h1.h1, arg.h0.h1.h2), Lib_Elab_collectDecl(arg.h0.h2)) }; } } else { return { tag: 0, h0: Prelude__$3A$3A_(arg.h0.h1, Lib_Elab_collectDecl(arg.h0.h2)) }; } } else { return { tag: 0, h0: Prelude__$3A$3A_(arg.h0.h1, Lib_Elab_collectDecl(arg.h0.h2)) }; } } else { return { tag: 0, h0: Prelude__$3A$3A_(arg.h0.h1, Lib_Elab_collectDecl(arg.h0.h2)) }; } } else { return { tag: 0, h0: Prelude_Nil() }; } }; const Lib_Syntax_FunDef = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); @@ -767,7 +767,7 @@ const Lib_Util_MkBinder = ( h0, h1, h2, h3, h4 ) => ({ tag: 0, h0: h0, h1: h1, const Lib_ProcessDecl_dumpEnv = ( _$$0 ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( _$$5 ) => (Prelude_joinBy("\n", Prelude_reverse()(_$$5))), Lib_ProcessDecl_dumpEnv_isVar_go(_$$0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$2 ) => (_$$2.h2), _$$0.h2), 0, Prelude_reverse()(Prelude_zip(_$$0.h1, _$$0.h2)), Prelude_Nil()))); const Lib_ProcessDecl_dumpEnv_isVar_go = ( _, _$$3, _$$4, _$$5, _$$6 ) => { if ((_$$5.tag) == (1)) { const sc$$18 = Lib_ProcessDecl_dumpEnv_isVar(_, _$$4, _$$5.h1.h2); switch (sc$$18) { case true: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_.h0, _$$5.h1.h3.h3), ( ty$27 ) => (Lib_ProcessDecl_dumpEnv_isVar_go(_, _$$3, (1) + (_$$4), _$$5.h2, Prelude__$3A$3A_(((((" ") + (_$$5.h1.h3.h2)) + (" : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, _$$3, ty$27))), Prelude_Lin()))) + (""), _$$6)))); case false: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_.h0, _$$5.h1.h2), ( v$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_.h0, _$$5.h1.h3.h3), ( ty$27 ) => (Lib_ProcessDecl_dumpEnv_isVar_go(_, _$$3, (1) + (_$$4), _$$5.h2, Prelude__$3A$3A_(((((((" ") + (_$$5.h1.h3.h2)) + (" = ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, _$$3, v$27))), Prelude_Lin()))) + (" : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, _$$3, ty$27))), Prelude_Lin()))) + (""), _$$6)))))); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(_$$6); } }; const Lib_ProcessDecl_dumpEnv_isVar = ( _, _$$2, _$$3 ) => (( (_$$3.tag) == (0) ? ( (_$$3.h2.tag) == (0) ? (_$$2) == (_$$3.h1) : false ) : false )); -const Serialize_dumpModule = ( _$$0, _$$1, _$$2 ) => { const fn = (("build/") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$0))) + (".newtmod"); const defs = Data_SortedMap_listValues(_$$2.h1); const ops = Data_SortedMap_toList(_$$2.h3); const mctx = Data_SortedMap_toList(_$$2.h2.h0); return Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Serialize_dumpModFile(fn, Prelude__$2C_(_$$2.h0, Prelude__$2C_(defs, Prelude__$2C_(ops, mctx))))); }; +const Serialize_dumpModule = ( _$$0, _$$1, _$$2 ) => { const fn = (("build/") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$0))) + (".newtmod"); const defs = Data_SortedMap_listValues(_$$2.h1); const ops = Data_SortedMap_toList(_$$2.h3); const mctx = Data_SortedMap_toList(_$$2.h2.h0); return Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Serialize_dumpModFile(fn, Prelude__$2C_(_$$2.h0, Prelude__$2C_(defs, Prelude__$2C_(ops, Prelude__$2C_(mctx, _$$2.h4)))))); }; const Serialize_dumpModFile = (fn,a) => (w) => { let fs = require('fs') try { @@ -777,7 +777,7 @@ const Serialize_dumpModFile = (fn,a) => (w) => { } catch (e) {} return Prelude_MkIORes(Prelude_MkUnit, w) }; -const Lib_Types_MkModCtx = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); +const Lib_Types_MkModCtx = ( h0, h1, h2, h3, h4 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Main_processModule_tryProcessDecl = ( _, _1, _2, _3, _4, _5, _$$7, _$$8, _$$9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_tryError(Lib_ProcessDecl_processDecl(_$$8, _$$9)), ( $$sc ) => (( ($$sc.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError(_$$7, $$sc.h2))), ( _6 ) => (Lib_TopContext_addError($$sc.h2))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0) )))); const Lib_TopContext_addError = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(tc.h0, tc.h1, tc.h2, tc.h3, tc.h4, tc.h5, tc.h6, Prelude__$3A$3A_(_$$0, tc.h7), tc.h8))))))); const Lib_ProcessDecl_processDecl = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 10: return Lib_ProcessDecl_processRecord(_$$0, _$$1.h0, _$$1.h1, _$$1.h2, _$$1.h3, _$$1.h4); case 9: return Lib_ProcessDecl_processInstance(_$$0, _$$1.h0, _$$1.h1, _$$1.h2); case 8: return Lib_ProcessDecl_processClass(_$$0, _$$1.h0, _$$1.h1, _$$1.h2, _$$1.h3); case 7: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); case 6: return Lib_ProcessDecl_processPrimFn(_$$0, _$$1.h0, _$$1.h1, _$$1.h2, _$$1.h3, _$$1.h4); case 5: return Lib_ProcessDecl_processPrimType(_$$0, _$$1.h0, _$$1.h1, _$$1.h2); case 4: return Lib_ProcessDecl_processShortData(_$$0, _$$1.h0, _$$1.h1, _$$1.h2); case 3: return Lib_ProcessDecl_processData(_$$0, _$$1.h0, _$$1.h1, _$$1.h2, _$$1.h3); case 2: return Lib_ProcessDecl_processCheck(_$$0, _$$1.h0, _$$1.h1, _$$1.h2); case 1: return Lib_ProcessDecl_processDef(_$$0, _$$1.h0, _$$1.h1, _$$1.h2); case 0: return Lib_ProcessDecl_processTypeSig(_$$0, _$$1.h0, _$$1.h1, _$$1.h2); } }; @@ -809,7 +809,7 @@ const Prelude_Prelude_Applicative$20Prelude_Maybe = Prelude_MkApplicative(( a ) const Lib_ProcessDecl_processData_makeConEntry_binderName = ( _, _1, _2, _3, _4, _$$7 ) => (_$$7.h1); const Lib_ProcessDecl_processShortData = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processShortData_mkPi_getArgs(_$$0, _$$1, _$$2, _$$3, _$$2, Prelude_Nil()), ( $$sc ) => { const ty = Prelude_foldr(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processShortData_mkPi(_$$0, _$$1, _$$2, _$$3, eta, eta1))), Lib_Syntax_RU(_$$1), $$sc.h3); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_ProcessDecl_processShortData_mkPi_getArgs_mkDecl(_$$0, _$$1, _$$2, _$$3, $$sc.h3, Prelude_Nil(), eta)), _$$3), ( cons ) => { const dataDecl = Lib_Syntax_Data(_$$1, $$sc.h2, ty, cons); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _ ) => ("SHORTDATA")), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _1 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(dataDecl))), Prelude_Lin()))) + (""))), ( _1 ) => (Lib_ProcessDecl_processDecl(_$$0, dataDecl))))); }); })); const Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty = ( _$$0 ) => { switch (_$$0.tag) { case 10: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("record"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier_Prelude_Semigroup$20Lib_Prettier_Doc$2C_$3C$2B$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_prettyBind(eta)), _$$0.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Nest(2, Lib_Prettier_Seq(Lib_Prettier_Text("where"), Lib_Prettier_Seq(Lib_Prettier_line, Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier__$3C$2F$3E_(eta, eta1))), Prelude__$3A$3A_(Prelude_maybe(Lib_Prettier_empty, ( nm$27 ) => (Lib_Prettier_Seq(Lib_Prettier_Text("constructor"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(nm$27)))), _$$0.h3), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(eta)), _$$0.h4)))))))); case 9: return Lib_Prettier_Text("TODO pretty Instance"); case 8: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("class"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier_Prelude_Semigroup$20Lib_Prettier_Doc$2C_$3C$2B$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_prettyBind(eta)), _$$0.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Nest(2, Lib_Prettier_Seq(Lib_Prettier_Text("where"), Lib_Prettier_Seq(Lib_Prettier_line, Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier__$3C$2F$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(eta)), _$$0.h3))))))); case 7: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text(Lib_Common_Prelude_Show$20Lib_Common_Fixity$2Cshow(_$$0.h3)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(Prelude_showInt(_$$0.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier_Prelude_Semigroup$20Lib_Prettier_Doc$2C_$3C$2B$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Prettier_text, _$$0.h1)))); case 6: return ( (_$$0.h2.tag) == (0) ? Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("pfunc"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Nest(2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h3), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":="))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Text(_$$0.h4)))))) : Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("pfunc"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("uses"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier_Prelude_Semigroup$20Lib_Prettier_Doc$2C_$3C$2B$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Prettier_text, _$$0.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Nest(2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h3), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":="))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Text(_$$0.h4)))))) ); case 5: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("ptype"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Prelude_maybe(Lib_Prettier_empty, ( ty ) => (Lib_Prettier_Seq(Lib_Prettier_Text(":"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(ty)))), _$$0.h2))); case 4: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("data"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("="))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_folddoc(( a ) => (( b ) => (Lib_Prettier_Seq(a, Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("|"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), b)))))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty, _$$0.h2)))); case 3: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("data"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h2))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Nest(2, Lib_Prettier_Seq(Lib_Prettier_Text("where"), Lib_Prettier_Seq(Lib_Prettier_line, Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier__$3C$2F$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(eta)), _$$0.h3))))))); case 2: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("#check"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h2))); case 1: return Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier__$3C$2F$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty_prettyPair(_$$0, _$$0.h0, _$$0.h1, _$$0.h2, eta)), _$$0.h2)); case 0: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_folddoc(( eta ) => (( eta1 ) => (Lib_Prettier_Prelude_Semigroup$20Lib_Prettier_Doc$2C_$3C$2B$3E_(eta, eta1))), Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Prettier_text, _$$0.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Nest(2, Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$0.h2)))); } }; -const Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc = ( _$$3, _$$4 ) => { switch (_$$4.tag) { case 16: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("{"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("TODO RUpdateRec"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("}"))); case 15: return Lib_Prettier_Seq(Lib_Prettier_Text(_$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text("@("), Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2), Lib_Prettier_Text(")")))); case 14: return Lib_Prettier_Text("TODO pretty RWhere"); case 13: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 0, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("if"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h1))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("then"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2))))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("else"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h3)))))); case 12: return Lib_Prettier_Text("TODO - Pretty RDo"); case 11: return Lib_Prettier_Text("?"); case 10: return Lib_Prettier_Text("_"); case 9: return Lib_Prettier_Text("TODO - Pretty RCase"); case 8: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Types_Literal$2Cpretty(_$$4.h1); case 7: return Lib_Prettier_Text("TODO - Pretty RAnn"); case 6: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 0, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("let"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$4.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h3))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("="))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("in"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h4)))))); case 5: switch (_$$4.h1.h1) { case "_": switch (_$$4.h1.h2) { case 1: switch (_$$4.h1.h3) { case true: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h3)))); default: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$4.h1.h3)) + (_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(1, _$$4.h3)))); } break; default: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$4.h1.h3)) + (_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(1, _$$4.h3)))); } break; default: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$4.h1.h3)) + (_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(1, _$$4.h3)))); } break; case 4: return Lib_Prettier_Text("()"); case 3: return Lib_Prettier_Text("U"); case 2: switch (_$$4.h3) { case 2: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(2, _$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("{{"))), Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2), Lib_Prettier_Text("}}")))); case 1: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 2, Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(2, _$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(3, _$$4.h2)))); case 0: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(2, _$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("{"))), Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2), Lib_Prettier_Text("}")))); } break; case 1: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 0, Lib_Prettier_Seq(Lib_Prettier_Text("\\"), Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Text(_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("=>"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2))))); case 0: return Lib_Prettier_Text(_$$4.h1); } }; +const Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc = ( _$$3, _$$4 ) => { switch (_$$4.tag) { case 15: return Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("{"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("TODO RUpdateRec"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("}"))); case 14: return Lib_Prettier_Seq(Lib_Prettier_Text(_$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text("@("), Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2), Lib_Prettier_Text(")")))); case 13: return Lib_Prettier_Text("TODO pretty RWhere"); case 12: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 0, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("if"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h1))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("then"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2))))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("else"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h3)))))); case 11: return Lib_Prettier_Text("TODO - Pretty RDo"); case 10: return Lib_Prettier_Text("?"); case 9: return Lib_Prettier_Text("_"); case 8: return Lib_Prettier_Text("TODO - Pretty RCase"); case 7: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Types_Literal$2Cpretty(_$$4.h1); case 6: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 0, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text("let"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(_$$4.h1))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h3))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("="))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Prettier_Seq(Lib_Prettier_Text("in"), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h4)))))); case 5: switch (_$$4.h1.h1) { case "_": switch (_$$4.h1.h2) { case 1: switch (_$$4.h1.h3) { case true: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h3)))); default: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$4.h1.h3)) + (_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(1, _$$4.h3)))); } break; default: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$4.h1.h3)) + (_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(1, _$$4.h3)))); } break; default: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 1, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$4.h1.h3)) + (_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text(":"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(_$$3, _$$4.h2)))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("->"))), Lib_Prettier_Seq(Lib_Prettier_Alt(Lib_Prettier_Text(" "), Lib_Prettier_line), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(1, _$$4.h3)))); } break; case 4: return Lib_Prettier_Text("()"); case 3: return Lib_Prettier_Text("U"); case 2: switch (_$$4.h3) { case 2: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(2, _$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("{{"))), Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2), Lib_Prettier_Text("}}")))); case 1: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 2, Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(2, _$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(3, _$$4.h2)))); case 0: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(2, _$$4.h1), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("{"))), Lib_Prettier_Seq(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2), Lib_Prettier_Text("}")))); } break; case 1: return Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par(_$$3, 0, Lib_Prettier_Seq(Lib_Prettier_Text("\\"), Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Syntax_wrap(_$$4.h1.h2, Lib_Prettier_Text(_$$4.h1.h1)), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Prettier_Text("=>"))), Lib_Prettier_Seq(Lib_Prettier_Text(" "), Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, _$$4.h2))))); case 0: return Lib_Prettier_Text(_$$4.h1); } }; const Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty = ( eta ) => (Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par_asDoc(0, eta)); const Lib_Syntax_wrap = ( _$$0, _$$1 ) => { switch (_$$0) { case 2: return Lib_Prettier_Seq(Lib_Prettier_Text("{{"), Lib_Prettier_Seq(_$$1, Lib_Prettier_Text("}}"))); case 1: return Lib_Prettier_Seq(Lib_Prettier_Text("("), Lib_Prettier_Seq(_$$1, Lib_Prettier_Text(")"))); case 0: return Lib_Prettier_Seq(Lib_Prettier_Text("{"), Lib_Prettier_Seq(_$$1, Lib_Prettier_Text("}"))); } }; const Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty_bindDoc_par = ( _$$2, _$$3, _$$4 ) => { const sc$$5 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$3, _$$2), 0); switch (sc$$5) { case true: return Lib_Prettier_Seq(Lib_Prettier_Text("("), Lib_Prettier_Seq(_$$4, Lib_Prettier_Text(")"))); case false: return _$$4; } }; @@ -859,7 +859,30 @@ const Lib_TopContext_REC_typeName = ( arg ) => { switch (arg.h0.tag) { case 6: s const Lib_Util_Prelude_Show$20Lib_Util_Binder$2Cshow = ( _$$0 ) => ((((((("[") + (Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$0.h3))) + ("")) + (_$$0.h1)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(_$$0.h2))) + (" : ...]")); const Lib_Util_Prelude_Show$20Lib_Util_Binder = Prelude_MkShow(( eta ) => (Lib_Util_Prelude_Show$20Lib_Util_Binder$2Cshow(eta))); const Lib_ProcessDecl_processInstance_getFields_tenv = ( _, _1, _2, _3, _$$6 ) => { switch (_$$6) { case 0: return Prelude_Nil(); default: { const x = (_$$6) - (1); return Prelude__$3A$3A_(Lib_Types_VVar(Lib_Common_emptyFC, Prelude_natToInt(x), Prelude_Lin()), Lib_ProcessDecl_processInstance_getFields_tenv(_, _1, _2, _3, x)); break; } } }; -const Lib_ProcessDecl_processRecord = ( _$$0, _$$1, _$$2, _$$3, _$$4, _$$5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _ ) => ("-----")), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _1 ) => ("Record")), ( _1 ) => { const fields = Lib_ProcessDecl_getSigs(_$$5); const dcName = Prelude_fromMaybe((("Mk") + (_$$2)) + (""), _$$4); const tcType = Lib_ProcessDecl_teleToPi(_$$3, Lib_Syntax_RU(_$$1)); const tail = Prelude_foldl(( acc ) => (( bi ) => (Lib_Syntax_RApp(bi.h2.h0, acc, Lib_Syntax_RVar(bi.h2.h0, bi.h2.h1), bi.h2.h2))), Lib_Syntax_RVar(_$$1, _$$2), _$$3); const dcType = Lib_ProcessDecl_teleToPi(Lib_ProcessDecl_impTele(_$$3), Prelude_foldr(( x ) => (( acc ) => (Lib_Syntax_RPi(x.h2, Lib_Types_BI(x.h2, x.h3.h2, 1, true), x.h3.h3, acc))), tail, fields)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _2 ) => ((("tcon type ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(tcType))), Prelude_Lin()))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _3 ) => ((("dcon type ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(dcType))), Prelude_Lin()))) + (""))), ( _3 ) => { const decl = Lib_Syntax_Data(_$$1, _$$2, tcType, Prelude__$3A$3A_(Lib_Syntax_TypeSig(_$$1, Prelude__$3A$3A_(dcName, Prelude_Nil()), dcType), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _4 ) => ("Decl:")), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _5 ) => (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, decl), ( _6 ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( _$$31 ) => (0), Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, fields, ( $$case ) => { const funType = Lib_ProcessDecl_teleToPi(Lib_ProcessDecl_impTele(_$$3), Lib_Syntax_RPi($$case.h2, Lib_Types_BI($$case.h2, "_", 1, true), tail, $$case.h3.h3)); const autoPat = Prelude_foldl(( acc ) => (( x ) => (Lib_Syntax_RApp(x.h2, acc, Lib_Syntax_RVar(x.h2, x.h3.h2), 1))), Lib_Syntax_RVar(_$$1, dcName), fields); const pname = (".") + ($$case.h3.h2); const lhs = Prelude_foldl(( acc ) => (( x ) => (Lib_Syntax_RApp(x.h2.h0, acc, Lib_Syntax_RVar(x.h2.h0, x.h2.h1), 0))), Lib_Syntax_RVar($$case.h2, pname), _$$3); const lhs1 = Lib_Syntax_RApp(_$$1, lhs, autoPat, 1); const pdecl = Lib_Syntax_FunDef($$case.h2, pname, Prelude__$3A$3A_(Prelude__$2C_(lhs1, Prelude_Just(Lib_Syntax_RVar($$case.h2, $$case.h3.h2))), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _7 ) => ((((("") + (pname)) + (" : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(funType))), Prelude_Lin()))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _8 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(pdecl))), Prelude_Lin()))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, Lib_Syntax_TypeSig($$case.h2, Prelude__$3A$3A_(pname, Prelude_Nil()), funType)), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, pdecl), ( _10 ) => (Lib_TopContext_setFlag(Lib_Common_QN(_$$0, pname), $$case.h2, true))))))))); })))))))); }))); })))); +const Lib_ProcessDecl_processRecord = ( _$$0, _$$1, _$$2, _$$3, _$$4, _$$5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _ ) => ("-----")), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _1 ) => ("Record")), ( _1 ) => { const fields = Lib_ProcessDecl_getSigs(_$$5); const dcName = Prelude_fromMaybe((("Mk") + (_$$2)) + (""), _$$4); const tcType = Lib_ProcessDecl_teleToPi(_$$3, Lib_Syntax_RU(_$$1)); const tail = Prelude_foldl(( acc ) => (( bi ) => (Lib_Syntax_RApp(bi.h2.h0, acc, Lib_Syntax_RVar(bi.h2.h0, bi.h2.h1), bi.h2.h2))), Lib_Syntax_RVar(_$$1, _$$2), _$$3); const dcType = Lib_ProcessDecl_teleToPi(Lib_ProcessDecl_impTele(_$$3), Prelude_foldr(( x ) => (( acc ) => (Lib_Syntax_RPi(x.h2, Lib_Types_BI(x.h2, x.h3.h2, 1, true), x.h3.h3, acc))), tail, fields)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _2 ) => ((("tcon type ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(tcType))), Prelude_Lin()))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _3 ) => ((("dcon type ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(dcType))), Prelude_Lin()))) + (""))), ( _3 ) => { const decl = Lib_Syntax_Data(_$$1, _$$2, tcType, Prelude__$3A$3A_(Lib_Syntax_TypeSig(_$$1, Prelude__$3A$3A_(dcName, Prelude_Nil()), dcType), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _4 ) => ("Decl:")), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _5 ) => (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, decl), ( _6 ) => { const autoPat = Prelude_foldl(( acc ) => (( x ) => (Lib_Syntax_RApp(x.h2, acc, Lib_Syntax_RVar(x.h2, x.h3.h2), 1))), Lib_Syntax_RVar(_$$1, dcName), fields); return Lib_ProcessDecl_processRecord_processFields(_$$0, _$$1, _$$2, _$$3, _$$4, _$$5, autoPat, tail, Prelude_Nil(), fields); }))))); }))); })))); +const Lib_ProcessDecl_processRecord_processFields = ( _, _1, _2, _3, _4, _5, _$$7, _$$8, _$$9, _$$10 ) => { if ((_$$10.tag) == (1)) { const funType = Lib_Syntax_substRaw(_$$9, Lib_ProcessDecl_teleToPi(Lib_ProcessDecl_impTele(_3), Lib_Syntax_RPi(_$$10.h1.h2, Lib_Types_BI(_$$10.h1.h2, "$self", 1, true), _$$8, _$$10.h1.h3.h3))); const pname = (".") + (_$$10.h1.h3.h2); const lhs = Prelude_foldl(( acc ) => (( x ) => (Lib_Syntax_RApp(x.h2.h0, acc, Lib_Syntax_RVar(x.h2.h0, x.h2.h1), 0))), Lib_Syntax_RVar(_$$10.h1.h2, pname), _3); const lhs1 = Lib_Syntax_RApp(_1, lhs, _$$7, 1); const pdecl = Lib_Syntax_FunDef(_$$10.h1.h2, pname, Prelude__$3A$3A_(Prelude__$2C_(lhs1, Prelude_Just(Lib_Syntax_RVar(_$$10.h1.h2, _$$10.h1.h3.h2))), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _6 ) => ((((("") + (pname)) + (" : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(funType))), Prelude_Lin()))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _7 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(pdecl))), Prelude_Lin()))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_, Lib_Syntax_TypeSig(_$$10.h1.h2, Prelude__$3A$3A_(pname, Prelude_Nil()), funType)), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_, pdecl), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setFlag(Lib_Common_QN(_, pname), _$$10.h1.h2, true), ( _10 ) => { const deps = Prelude__$3A$3A_(Prelude__$2C_(_$$10.h1.h3.h2, Lib_Syntax_RApp(_$$10.h1.h2, Lib_Syntax_RVar(_$$10.h1.h2, pname), Lib_Syntax_RVar(_$$10.h1.h2, "$self"), 1)), _$$9); return Lib_ProcessDecl_processRecord_processFields(_, _1, _2, _3, _4, _5, _$$7, _$$8, deps, _$$10.h2); }))))))))); } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); } }; +const Lib_Syntax_substRaw = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 15: return Lib_Syntax_RUpdateRec(_$$1.h0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_substRaw_filter_filterBind_substUC(_$$0, _$$1, eta)), _$$1.h1), Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Syntax_substRaw(_$$0, eta)), _$$1.h2)); case 14: return Lib_Syntax_RAs(_$$1.h0, _$$1.h1, Lib_Syntax_substRaw(_$$0, _$$1.h2)); case 13: return Lib_Syntax_RWhere(_$$1.h0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl(_$$0, _$$1, eta)), _$$1.h1), Lib_Syntax_substRaw(_$$0, _$$1.h2)); case 12: return Lib_Syntax_RIf(_$$1.h0, Lib_Syntax_substRaw(_$$0, _$$1.h1), Lib_Syntax_substRaw(_$$0, _$$1.h2), Lib_Syntax_substRaw(_$$0, _$$1.h3)); case 11: return Lib_Syntax_RDo(_$$1.h0, Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt_substStmts(_$$0, _$$1, _$$0, _$$1.h1)); case 10: return _$$1; case 9: return _$$1; case 8: return Lib_Syntax_RCase(_$$1.h0, Lib_Syntax_substRaw(_$$0, _$$1.h1), Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Syntax_substRaw(_$$0, eta)), _$$1.h2), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt(_$$0, _$$1, eta)), _$$1.h3)); case 7: return _$$1; case 6: return Lib_Syntax_RLet(_$$1.h0, _$$1.h1, Lib_Syntax_substRaw(_$$0, _$$1.h2), Lib_Syntax_substRaw(_$$0, _$$1.h3), Lib_Syntax_substRaw(_$$0, _$$1.h4)); case 5: return Lib_Syntax_RPi(_$$1.h0, _$$1.h1, Lib_Syntax_substRaw(_$$0, _$$1.h2), Lib_Syntax_substRaw(Lib_Syntax_substRaw_filter_filterBind(_$$0, _$$1, _$$1.h1, _$$0), _$$1.h3)); case 4: return _$$1; case 3: return _$$1; case 2: return Lib_Syntax_RApp(_$$1.h0, Lib_Syntax_substRaw(_$$0, _$$1.h1), Lib_Syntax_substRaw(_$$0, _$$1.h2), _$$1.h3); case 1: return Lib_Syntax_RLam(_$$1.h0, _$$1.h1, Lib_Syntax_substRaw(Lib_Syntax_substRaw_filter_filterBind(_$$0, _$$1, _$$1.h1, _$$0), _$$1.h2)); case 0: return Prelude_fromMaybe(_$$1, Data_List_lookup(Prelude_Prelude_Eq$20Prim_String, _$$1.h1, _$$0)); } }; +const Data_List_lookup = ( _$$2, _$$3, _$$4 ) => (bouncer(Data_List_REC_lookup, { tag: 1, h0: null, h1: null, h2: _$$2, h3: _$$3, h4: _$$4 })); +const Data_List_REC_lookup = ( arg ) => { if ((arg.h4.tag) == (1)) { const sc$$12 = Prelude__$3D$3D_(arg.h2)(arg.h4.h1.h2)(arg.h3); switch (sc$$12) { case true: return { tag: 0, h0: Prelude_Just(arg.h4.h1.h3) }; case false: return { tag: 1, h0: null, h1: null, h2: arg.h2, h3: arg.h3, h4: arg.h4.h2 }; } } else { return { tag: 0, h0: Prelude_Nothing() }; } }; +const Lib_Syntax_substRaw_filter_filterBind = ( _, _1, _$$5, _$$6 ) => (Lib_Syntax_substRaw_filter(_, _1, Prelude__$3A$3A_(_$$5.h1, Prelude_Nil()), _$$6)); +const Lib_Syntax_substRaw_filter = ( _, _1, _$$4, _$$5 ) => (bouncer(Lib_Syntax_REC_substRaw_filter, { tag: 1, h0: _, h1: _1, h2: null, h3: null, h4: _$$4, h5: _$$5 })); +const Lib_Syntax_REC_substRaw_filter = ( arg ) => { if ((arg.h5.tag) == (1)) { const sc$$13 = Prelude_elem(Prelude_Prelude_Eq$20Prim_String, arg.h5.h1.h2, arg.h4); switch (sc$$13) { case true: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: null, h4: arg.h4, h5: arg.h5.h2 }; case false: return { tag: 0, h0: Prelude__$3A$3A_(arg.h5.h1, Lib_Syntax_substRaw_filter(arg.h0, arg.h1, arg.h4, arg.h5.h2)) }; } } else { return { tag: 0, h0: Prelude_Nil() }; } }; +const Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt = ( _, _1, _$$8 ) => (Lib_Syntax_MkAlt(Lib_Syntax_substRaw(_, _$$8.h0), Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Syntax_substRaw(Lib_Syntax_substRaw_filter(_, _1, Lib_Syntax_lhsNames(_$$8.h0), _), eta)), _$$8.h1))); +const Lib_Syntax_lhsNames = ( _$$0 ) => { switch (_$$0.tag) { case 14: return Prelude__$3A$3A_(_$$0.h1, Lib_Syntax_lhsNames(_$$0.h2)); case 2: return Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(Lib_Syntax_lhsNames(_$$0.h1), Lib_Syntax_lhsNames(_$$0.h2)); case 0: return Prelude__$3A$3A_(_$$0.h1, Prelude_Nil()); default: return Prelude_Nil(); } }; +const Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt_substStmts = ( _, _1, _$$9, _$$10 ) => { if ((_$$10.tag) == (1)) { switch (_$$10.h1.tag) { case 2: return Prelude__$3A$3A_(Lib_Syntax_DoArrow(_$$10.h1.h0, Lib_Syntax_substRaw(_$$9, _$$10.h1.h1), Lib_Syntax_substRaw(_$$9, _$$10.h1.h2), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt(_, _1, eta)), _$$10.h1.h3)), Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt_substStmts(_, _1, Lib_Syntax_substRaw_filter(_, _1, Lib_Syntax_lhsNames(_$$10.h1.h1), _$$9), _$$10.h2)); case 1: return Prelude__$3A$3A_(Lib_Syntax_DoLet(_$$10.h1.h0, _$$10.h1.h1, Lib_Syntax_substRaw(_$$9, _$$10.h1.h2)), Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt_substStmts(_, _1, Lib_Syntax_substRaw_filter(_, _1, Prelude__$3A$3A_(_$$10.h1.h1, Prelude_Nil()), _$$9), _$$10.h2)); case 0: return Prelude__$3A$3A_(Lib_Syntax_DoExpr(_$$10.h1.h0, Lib_Syntax_substRaw(_$$9, _$$10.h1.h1)), Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl_substAlt_substStmts(_, _1, _$$9, _$$10.h2)); } } else { return Prelude_Nil(); } }; +const Lib_Syntax_DoExpr = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); +const Lib_Syntax_DoLet = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); +const Lib_Syntax_DoArrow = ( h0, h1, h2, h3 ) => ({ tag: 2, h0: h0, h1: h1, h2: h2, h3: h3 }); +const Lib_Syntax_RDo = ( h0, h1 ) => ({ tag: 11, h0: h0, h1: h1 }); +const Lib_Syntax_RIf = ( h0, h1, h2, h3 ) => ({ tag: 12, h0: h0, h1: h1, h2: h2, h3: h3 }); +const Lib_Syntax_substRaw_filter_filterBind_substUC_substClause_substDecl = ( _, _1, _$$7 ) => { switch (_$$7.tag) { case 1: return Lib_Syntax_FunDef(_$$7.h0, _$$7.h1, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_substRaw_filter_filterBind_substUC_substClause(_, _1, eta)), _$$7.h2)); case 0: return Lib_Syntax_TypeSig(_$$7.h0, _$$7.h1, Lib_Syntax_substRaw(_, _$$7.h2)); default: return _$$7; } }; +const Lib_Syntax_substRaw_filter_filterBind_substUC_substClause = ( _, _1, _$$6 ) => (Prelude__$2C_(Lib_Syntax_substRaw(_, _$$6.h2), Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Syntax_substRaw(_, eta)), _$$6.h3))); +const Lib_Syntax_RWhere = ( h0, h1, h2 ) => ({ tag: 13, h0: h0, h1: h1, h2: h2 }); +const Lib_Syntax_RAs = ( h0, h1, h2 ) => ({ tag: 14, h0: h0, h1: h1, h2: h2 }); +const Lib_Syntax_substRaw_filter_filterBind_substUC = ( _, _1, _$$5 ) => (( (_$$5.tag) == (1) ? Lib_Syntax_ModifyField(_$$5.h0, _$$5.h1, Lib_Syntax_substRaw(_, _$$5.h2)) : Lib_Syntax_AssignField(_$$5.h0, _$$5.h1, Lib_Syntax_substRaw(_, _$$5.h2)) )); +const Lib_Syntax_AssignField = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); +const Lib_Syntax_ModifyField = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 }); +const Lib_Syntax_RUpdateRec = ( h0, h1, h2 ) => ({ tag: 15, h0: h0, h1: h1, h2: h2 }); const Main_importHints = ( _$$0 ) => (( (_$$0.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_when(Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_elem(Lib_Types_Prelude_Eq$20Lib_Types_EFlag, false, _$$0.h1.h4), ( _ ) => (Lib_TopContext_addHint(_$$0.h1.h1))), ( _ ) => (Main_importHints(_$$0.h2))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0) )); 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 ) => { if ((arg.h2.tag) == (1)) { const sc$$8 = Lib_Parser_Impl_partialParse(arg.h0, Lib_Parser_Impl_sameLevel(Lib_Parser_parseDecl), arg.h1, arg.h2); return ( (sc$$8.tag) == (1) ? { tag: 1, h0: arg.h0, h1: sc$$8.h2.h3.h2, h2: sc$$8.h2.h3.h3, h3: Prelude__$3A$3C_(arg.h3, sc$$8.h2.h2) } : { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError("", sc$$8.h2.h2))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(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, sc$$8.h2.h3), arg.h3))))) } ); } else { return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(Prelude__$3C$3E$3E_(arg.h3, Prelude_Nil()), arg.h1)) }; } }; @@ -902,28 +925,20 @@ const Lib_Parser_pratt_projectHead_runProject = ( _, _1, _2, _3, _4, _$$7 ) => ( const Lib_Parser_REC_pratt_projectHead_runProject = ( arg ) => { if ((arg.h7.tag) == (1)) { switch (arg.h7.h1.h2) { case 1: { if ((arg.h7.h2.tag) == (1)) { switch (arg.h7.h2.h1.h2) { case 1: { if ((arg.h7.h2.h1.h3.h3.tag) == (0)) { const sc$$32 = Prelude_isPrefixOf(".", arg.h7.h2.h1.h3.h3.h1); switch (sc$$32) { case true: { const _sc$$16 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(arg.h7.h1.h3.h3); 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_(Prelude__$2C_(1, Prelude__$2C_(arg.h7.h1.h3.h2, Lib_Syntax_RApp(Lib_Common_MkFC(arg.h7.h2.h1.h3.h3.h0.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(arg.h7.h2.h1.h3.h3.h0.h1, _sc$$16.h1)), 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; } case false: return { tag: 0, h0: Prelude__$3A$3A_(arg.h7.h1, Prelude__$3A$3A_(arg.h7.h2.h1, arg.h7.h2.h2)) }; } } else { return { tag: 0, h0: arg.h7 }; } break; } default: return { tag: 0, h0: arg.h7 }; } } else { return { tag: 0, h0: arg.h7 }; } break; } default: return { tag: 0, h0: arg.h7 }; } } else { return { tag: 0, h0: arg.h7 }; } }; const Lib_Parser_pratt_projectHead = ( _, _1, _2, _3, _4, _$$6, _$$7 ) => (bouncer(Lib_Parser_REC_pratt_projectHead, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: null, h6: _$$6, h7: _$$7 })); const Lib_Parser_REC_pratt_projectHead = ( arg ) => { if ((arg.h7.tag) == (1)) { switch (arg.h7.h1.h2) { case 1: { if ((arg.h7.h1.h3.h3.tag) == (0)) { const sc$$21 = Prelude_isPrefixOf(".", arg.h7.h1.h3.h3.h1); switch (sc$$21) { case true: { const _sc$$5 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(arg.h6); 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(Lib_Common_MkFC(arg.h7.h1.h3.h3.h0.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(arg.h7.h1.h3.h3.h0.h1, _sc$$5.h1)), Lib_Syntax_RVar(arg.h7.h1.h3.h3.h0, arg.h7.h1.h3.h3.h1), arg.h6, 1), h7: arg.h7.h2 }; break; } case false: return { tag: 0, h0: Prelude__$2C_(arg.h6, arg.h7) }; } } else { return { tag: 0, h0: Prelude__$2C_(arg.h6, arg.h7) }; } break; } default: return { tag: 0, h0: Prelude__$2C_(arg.h6, arg.h7) }; } } else { return { tag: 0, h0: Prelude__$2C_(arg.h6, arg.h7) }; } }; -const Lib_Syntax_RUpdateRec = ( h0, h1, h2 ) => ({ tag: 16, 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 = ( _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("{{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(_$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("}}")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(t)))))))); const Lib_Parser_braces = ( _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("{")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(_$$1, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("}")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(t)))))))); const Lib_Parser_Impl_getPos = Lib_Parser_Impl_P(( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => (( (toks.tag) == (1) ? Lib_Parser_Impl_OK(Lib_Common_MkFC(indent.h0, toks.h1.h2), last, toks, com, ops) : Lib_Parser_Impl_OK(Lib_Common_MkFC(indent.h0, last), last, toks, com, ops) ))))))); const Lib_Parser_Impl_many = ( _$$1 ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_some(_$$1), Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Nil()))); const Lib_Parser_Impl_some = ( _$$1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(_$$1, ( x ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_many(_$$1), ( xs ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$3A$3A_(x, xs))))))); const Lib_Parser_Impl_getOps = Lib_Parser_Impl_P(( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_OK(ops, last, toks, com, ops))))))); -const Lib_Syntax_RIf = ( h0, h1, h2, h3 ) => ({ tag: 13, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Parser_parseIfThen = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("if")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( a ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("then")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( b ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("else")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( c ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(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(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(0), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("=>")), ( _1 ) => (Lib_Parser_term))), ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_MkAlt(pat, t)))))))); const Lib_Parser_Impl_sameLevel = ( _$$1 ) => (Lib_Parser_Impl_P(( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => { if ((toks.tag) == (1)) { const sc$$13 = Prelude__$2C_(toks.h1.h2.h0, toks.h1.h2.h1); const sc$$25 = (sc$$13.h3) == (indent.h1.h1); switch (sc$$25) { case true: return _$$1.h1(last)(toks)(com)(ops)(Lib_Common_MkFC(indent.h0, toks.h1.h2)); case false: { 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 true: return Lib_Parser_Impl_Fail(false, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected indent"), last, toks, com, ops); case false: return Lib_Parser_Impl_Fail(false, Lib_Parser_Impl_perror(indent.h0, toks, "unexpected indent"), last, toks, com, ops); } break; } } } else { return _$$1.h1(last)(toks)(com)(ops)(indent); } })))))); const Lib_Parser_Impl_startBlock = ( _$$1 ) => (Lib_Parser_Impl_P(( last ) => (( toks ) => (( com ) => (( ops ) => (( indent ) => { if ((toks.tag) == (1)) { const sc$$13 = Prelude__$2C_(toks.h1.h2.h0, toks.h1.h2.h1); return _$$1.h1(last)(toks)(com)(ops)(Lib_Common_MkFC(indent.h0, Prelude_ite(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))); } else { return _$$1.h1(last)(toks)(com)(ops)(indent); } })))))); const Lib_Parser_doArrow = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( left ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("<-"))), ( $$sc ) => (( ($$sc.tag) == (0) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( right ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_startBlock(Lib_Parser_Impl_many(Lib_Parser_Impl_sameLevel(Prelude__$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_DoArrow(fc, left, right, alts)))))) : Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(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 ) => ((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_(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(0)), Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(3))); const Lib_Parser_doLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("=")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( tm ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_DoLet(fc, nm, tm)))))))))))); -const Lib_Syntax_RDo = ( h0, h1 ) => ({ tag: 12, h0: h0, h1: h1 }); const Lib_Parser_Impl_try = ( _$$1 ) => (Lib_Parser_Impl_P(( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => { const sc$$9 = _$$1.h1(last)(toks)(com)(ops)(col); return ( (sc$$9.tag) == (1) ? Lib_Parser_Impl_Fail(sc$$9.h1, sc$$9.h2, sc$$9.h3, sc$$9.h4, false, sc$$9.h6) : sc$$9 ); })))))); const Lib_Parser_doCaseLet = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_try(Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("let")), ( _ ) => (Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("("))))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( pat ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("=")), ( _2 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_startBlock(Lib_Parser_Impl_many(Lib_Parser_Impl_sameLevel(Prelude__$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("|")), Lib_Parser_caseAlt)))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( bodyFC ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (( eta1 ) => (Lib_Syntax_RDo(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_some(Lib_Parser_Impl_sameLevel(Lib_Parser_doStmt))), ( body ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_DoExpr(fc, Lib_Syntax_RCase(fc, sc, Prelude_Nothing(), Prelude__$3A$3A_(Lib_Syntax_MkAlt(pat, Prelude_Just(body)), alts)))))))))))))))))))))); const Lib_Parser_doStmt = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_doCaseLet, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_doLet, Lib_Parser_doArrow)); @@ -949,9 +964,9 @@ const Lib_Parser_updateClause = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_ const Lib_Parser_Impl_sepBy = ( _$$2, _$$3 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (( eta1 ) => (Prelude__$3A$3A_(eta, eta1))), _$$3), Lib_Parser_Impl_many(Prelude__$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, _$$2, _$$3)))); const Lib_Syntax_RImpossible = ( h0 ) => ({ tag: 4, h0: h0 }); const Lib_Parser_parenTypeExp = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("(")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc$27 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27(")"))), ( $$sc ) => (( ($$sc.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27(")")), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(t))))) : Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RImpossible(Lib_Common_MkFC(fc.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(fc.h1, fc$27.h1)))) ))))))))); -const Lib_Syntax_RHole = ( h0 ) => ({ tag: 11, h0: h0 }); +const Lib_Syntax_RHole = ( h0 ) => ({ tag: 10, h0: h0 }); const Prelude_strIndex = (s, ix) => s[ix]; -const Lib_Syntax_RLit = ( h0, h1 ) => ({ tag: 8, h0: h0, h1: h1 }); +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(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(5)), ( v ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(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(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(6)), ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(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); const _sc$$0 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$2); return Lib_Syntax_RApp(Lib_Common_MkFC(fc.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(fc.h1, _sc$$0.h1)), Lib_Syntax_RApp(fc, Lib_Syntax_RVar(fc, "_++_"), _$$1, 1), _$$2, 1); }; @@ -964,7 +979,6 @@ const Prelude_stringToInt = (s) => { }; const Lib_Parser_intLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(4)), ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(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_(Lib_Parser_intLit, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_interpString, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_stringLit, Lib_Parser_charLit))); -const Lib_Syntax_RAs = ( h0, h1, h2 ) => ({ tag: 15, h0: h0, h1: h1, h2: h2 }); const Lib_Parser_asAtom = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_ident, ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Prelude__$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("@")), Lib_Parser_parenWrap(Lib_Parser_typeExpr))), ( asPat ) => (( (asPat.tag) == (1) ? Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RVar(fc, nm)) : Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RAs(fc, nm, asPat.h1)) ))))))); const Lib_Parser_recordUpdate = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("[")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_sepBy(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27(";")), Lib_Parser_updateClause), ( clauses ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("]")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Lib_Parser_atom), ( tm ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RUpdateRec(fc, clauses, tm)))))))))))); const Lib_Parser_atom = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(0), ( _ ) => (Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Prelude__$3C$2A_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (Lib_Syntax_RU(eta)), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("U"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_asAtom, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( 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_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (( eta1 ) => (Lib_Syntax_RVar(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(12))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_lit, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Prelude__$3C$2A_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (Lib_Syntax_RImplicit(eta)), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("_"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Prelude__$3C$2A_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (Lib_Syntax_RHole(eta)), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("?"))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parenTypeExp, Lib_Parser_recordUpdate)))))))))); @@ -989,7 +1003,6 @@ const Lib_Parser_nakedBind_makeBind = ( _$$1 ) => (Prelude__$2C_(Lib_Types_BI(_$ const Lib_Parser_nakedBind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_some(Lib_Parser_addPos(Lib_Parser_varname)), ( $$sc ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Parser_nakedBind_makeBind(eta)), $$sc)))); const Lib_Parser_parseRecord = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("record")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_uident, ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_many(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ebind, Lib_Parser_nakedBind)), ( teles ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("where")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Prelude__$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("constructor")), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_uident, Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(3))))), ( cname ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_startBlock(Lib_Parser_Impl_many(Lib_Parser_Impl_sameLevel(Lib_Parser_parseSig))), ( decls ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_Record(fc, name, Prelude_Prelude_Monad$20Prelude_List$2Cbind(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: 14, 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_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(arg.h0.h1) }; default: return { tag: 0, h0: Lib_Parser_Impl_fail("bad LHS") }; } }; const Lib_Parser_parseDef = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_getName(t), ( nm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("="))), ( $$sc ) => (( ($$sc.tag) == (1) ? Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_FunDef(fc, nm, Prelude__$3A$3A_(Prelude__$2C_(t, Prelude_Nothing()), Prelude_Nil()))) : Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( body ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( wfc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_optional(Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("where")), ( _ ) => (Lib_Parser_Impl_startBlock(Lib_Parser_Impl_many(Lib_Parser_Impl_sameLevel(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseSig, Lib_Parser_parseDef))))))), ( w ) => { const body1 = Prelude_maybe(body, ( decls ) => (Lib_Syntax_RWhere(wfc, decls, body)), w); return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_FunDef(fc, nm, Prelude__$3A$3A_(Prelude__$2C_(t, Prelude_Just(body1)), Prelude_Nil()))); }))))) ))))))))); @@ -1019,7 +1032,7 @@ const Lib_Parser_parseMixfix = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_P const Lib_Parser_parseDecl = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseMixfix, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parsePType, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parsePFunc, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseNorm, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseData, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseShortData, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseSig, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseDef, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseClass, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_parseInstance, Lib_Parser_parseRecord)))))))))); const Lib_Parser_Impl_partialParse = ( _$$1, _$$2, _$$3, _$$4 ) => { const sc$$5 = Lib_Parser_Impl_runP(_$$2)(Lib_Common_emptyBounds)(_$$4)(false)(_$$3)(Lib_Common_MkFC(_$$1, Lib_Common_MkBounds(0, 0, 0, 0))); return ( (sc$$5.tag) == (1) ? Prelude_Left(Prelude__$2C_(sc$$5.h2, sc$$5.h4)) : Prelude_Right(Prelude__$2C_(sc$$5.h1, Prelude__$2C_(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(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Serialize_readModFile(fn)), ( $$sc ) => { if (($$sc.tag) == (0)) { const ops = Data_SortedMap_mapFromList(Prelude_Prelude_Ord$20Prim_String, $$sc.h1.h3.h3.h2); const defs = Data_SortedMap_mapFromList(Lib_Common_Prelude_Ord$20Lib_Common_QName, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( entry ) => (Prelude__$2C_(entry.h1, entry)), $$sc.h1.h3.h2)); const mctx = Lib_Types_MC(Data_SortedMap_mapFromList(Lib_Common_Prelude_Ord$20Lib_Common_QName, $$sc.h1.h3.h3.h3), Prelude_Nil(), 0, 2); const sc$$22 = ($$sc.h1.h2) == (_$$1); switch (sc$$22) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Just(Lib_Types_MkModCtx($$sc.h1.h2, defs, mctx, ops))); case false: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } }); }; +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(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Serialize_readModFile(fn)), ( $$sc ) => { if (($$sc.tag) == (0)) { const ops = Data_SortedMap_mapFromList(Prelude_Prelude_Ord$20Prim_String, $$sc.h1.h3.h3.h2); const defs = Data_SortedMap_mapFromList(Lib_Common_Prelude_Ord$20Lib_Common_QName, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( entry ) => (Prelude__$2C_(entry.h1, entry)), $$sc.h1.h3.h2)); const mctx = Lib_Types_MC(Data_SortedMap_mapFromList(Lib_Common_Prelude_Ord$20Lib_Common_QName, $$sc.h1.h3.h3.h3.h2), Prelude_Nil(), 0, 2); const sc$$26 = ($$sc.h1.h2) == (_$$1); switch (sc$$26) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Just(Lib_Types_MkModCtx($$sc.h1.h2, defs, mctx, ops, $$sc.h1.h3.h3.h3.h3))); case false: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } }); }; const Data_SortedMap_mapFromList = ( _$$2, _$$3 ) => (Prelude_foldl(( eta ) => (( eta1 ) => (Data_SortedMap_mapFromList_go(_$$2, _$$3, eta, eta1))), Data_SortedMap_EmptyMap(_$$2.h1), _$$3)); const Data_SortedMap_mapFromList_go = ( _, _1, _$$5, _$$6 ) => (Data_SortedMap_updateMap(_$$6.h2, _$$6.h3, _$$5)); const Serialize_readModFile = (fn) => (w) => { @@ -1047,6 +1060,7 @@ const Data_List1_split1 = ( _$$0, _$$1 ) => { const sc$$2 = Prelude_split(_$$0, const Data_List1__$3A$3A$3A_ = ( h1, h2 ) => ({ tag: 0, h1: h1, h2: h2 }); const Data_List1_unsnoc = ( _$$1 ) => (Data_List1_unsnoc_go(_$$1, _$$1.h0, _$$1.h1, _$$1.h2, _$$1.h1, _$$1.h2)); const Data_List1_unsnoc_go = ( _, _1, _2, _3, _$$6, _$$7 ) => { if ((_$$7.tag) == (1)) { const sc$$11 = Data_List1_unsnoc_go(_, _1, _2, _3, _$$7.h1, _$$7.h2); return Prelude__$2C_(Prelude__$3A$3A_(_$$6, sc$$11.h2), sc$$11.h3); } else { return Prelude__$2C_(Prelude_Nil(), _$$6); } }; +const Main_importToQN = ( _$$0 ) => { const _sc$$0 = Data_List1_unsnoc(Data_List1_split1(_$$0.h1, ".")); return Lib_Common_QN(_sc$$0.h2, _sc$$0.h3); }; 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(Lib_Parser_Impl_getPos, ( fc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("import")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_uident, ( $$sc ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_many(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(12))), ( rest ) => { const name = Prelude_joinBy("", Prelude__$3A$3A_($$sc, rest)); return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_MkImport(fc, name)); }))))))); const Lib_Parser_parseImports = Lib_Parser_Impl_many(Lib_Parser_Impl_sameLevel(Lib_Parser_parseImport)); @@ -1083,7 +1097,7 @@ const Node_readFile = (fn) => (w) => { } return Prelude_MkIORes(result, w) }; -const Lib_Types_emptyModCtx = ( _$$0 ) => (Lib_Types_MkModCtx(_$$0, Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Lib_Types_MC(Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), 0, 2), Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))))); +const Lib_Types_emptyModCtx = ( _$$0 ) => (Lib_Types_MkModCtx(_$$0, Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Lib_Types_MC(Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))), Prelude_Nil(), 0, 2), Data_SortedMap_EmptyMap(( eta ) => (( eta1 ) => (Prelude_Prelude_Ord$20Prim_String$2Ccompare(eta, eta1)))), Prelude_Nil())); const Lib_Util_getBaseDir = ( _$$0, _$$1, _$$2 ) => { const sc$$4 = Data_List1_unsnoc(Data_List1_split1(_$$2, ".")); const parts = Data_List1_split1(_$$0, "/"); const sc$$10 = Data_List1_unsnoc(parts); const sc$$15 = Data_List1_splitFileName(sc$$10.h3); const parts1 = Data_List1_split1(_$$0, "/"); const sc$$21 = Data_List1_unsnoc(parts1); const sc$$26 = Data_List1_unsnoc(Data_List1_split1(_$$2, ".")); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_when(Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not((sc$$26.h3) == (sc$$15.h2)), ( _ ) => (Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(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, Prelude__$3C$3E$3C_(Prelude_Lin(), sc$$21.h2), Prelude__$3C$3E$3C_(Prelude_Lin(), sc$$26.h2)); if ((sc$$32.tag) == (1)) { let base; const sc$$36 = (sc$$32.h2) == (""); switch (sc$$36) { case true: { base = "."; break; } case false: { base = sc$$32.h2; break; } } return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(base, Lib_Common_QN(sc$$26.h2, sc$$26.h3))); } else { return Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, sc$$32.h2)), eta)))); } }); }; const Lib_Util_getBaseDir_baseDir = ( _, _1, _2, _$$4, _$$5 ) => (bouncer(Lib_Util_REC_getBaseDir_baseDir, { tag: 1, h0: _, h1: _1, h2: _2, h3: null, h4: _$$4, h5: _$$5 })); const Lib_Util_REC_getBaseDir_baseDir = ( arg ) => { if ((arg.h5.tag) == (1)) { if ((arg.h4.tag) == (1)) { const sc$$12 = (arg.h4.h2) == (arg.h5.h2); switch (sc$$12) { case true: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4.h1, h5: arg.h5.h1 }; case false: return { tag: 0, h0: Prelude_Left("module path doesn't match directory") }; } } else { return { tag: 0, h0: Prelude_Left("module path doesn't match directory") }; } } else { return { tag: 0, h0: Prelude_Right(Prelude_joinBy("/", Prelude__$3C$3E$3E_(arg.h4, Prelude_Nil()))) }; } };