From 79ab29f09054631ad5293ecaccee7431f4333b41 Mon Sep 17 00:00:00 2001 From: Steve Dunham Date: Fri, 6 Feb 2026 21:14:17 -0800 Subject: [PATCH] update bootstrap --- bootstrap/newt.js | 90 +++++++++++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 39 deletions(-) diff --git a/bootstrap/newt.js b/bootstrap/newt.js index b878f08..3496e01 100644 --- a/bootstrap/newt.js +++ b/bootstrap/newt.js @@ -23,6 +23,7 @@ const Lib_Types_MkM = ( h1 ) => ({ tag: 0, h1: h1 }); const Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn = ( _$$1 ) => (Lib_Types_MkM(( tc ) => (( eta ) => (Prelude_MkIORes(Prelude_Right(Prelude__$2C_(tc, _$$1)), eta))))); const Prelude__$2C_ = ( h2, h3 ) => ({ tag: 0, h2: h2, h3: h3 }); const Prelude_Right = ( h2 ) => ({ tag: 1, h2: h2 }); +const Main_runString = ( _$$0 ) => { const sc$$1 = Lib_Tokenizer_tokenise("", _$$0); if ((sc$$1.tag) == (1)) { const sc$$5 = Lib_Parser_Impl_parse("", Lib_ReplParser_parseCommand, sc$$1.h2); return ( (sc$$5.tag) == (1) ? Lib_Types_catchError(Main_runCommand(sc$$5.h2), ( err ) => (Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError(_$$0, err))))) : Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError(_$$0, sc$$5.h2))) ); } else { return Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError(_$$0, sc$$1.h2))); } }; 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_Nil = ( ) => ({ tag: 0 }); const Prelude__$3A$3A_ = ( h1, h2 ) => ({ tag: 1, h1: h1, h2: h2 }); @@ -51,10 +52,8 @@ const Prelude_joinBy = ( _$$0, _$$1 ) => (bouncer(Prelude_REC_joinBy, { tag: 1, const Prelude_REC_joinBy = ( arg ) => (( (arg.h1.tag) == (1) ? ( (arg.h1.h2.tag) == (1) ? { tag: 1, h0: arg.h0, h1: Prelude__$3A$3A_((arg.h1.h1) + ((arg.h0) + (arg.h1.h2.h1)), arg.h1.h2.h2) } : { tag: 0, h0: arg.h1.h1 } ) : { tag: 0, h0: "" } )); 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 = ( $$self$$1 ) => ($$self$$1.h1); const Main_runCommand = ( _$$0 ) => { switch (_$$0.tag) { case 5: return Main_replHelp; case 4: return Main_browseTop(_$$0.h0); case 3: return Main_getDoc(_$$0.h0); case 2: return ( (_$$0.h0.tag) == (1) ? 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, (1) + (tc.h6), tc.h7, tc.h8)))) : 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, _$$0.h0.h1, tc.h7, tc.h8)))) ); case 1: return Main_writeSource(_$$0.h0); case 0: return Main_processFile(_$$0.h0); } }; -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_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_invalidateModule($$sc1.h3), ( _7 ) => (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), ( _8 ) => (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_Types_Prelude_Applicative$20Lib_Types_M$2C_$3C$2A$3E_ = ( _$$2, _$$3 ) => (Lib_Types_MkM(( tc ) => (( eta ) => (Prelude_Prelude_Monad$20Prelude_IO$2Cbind(_$$2.h1(tc), ( $$sc ) => (( ($$sc.tag) == (1) ? ( eta ) => (Prelude_Prelude_Monad$20Prelude_IO$2Cbind(_$$3.h1($$sc.h2.h2), ( $$sc1 ) => (( ($$sc1.tag) == (1) ? ( eta ) => (Prelude_MkIORes(Prelude_Right(Prelude__$2C_($$sc1.h2.h2, $$sc.h2.h3($$sc1.h2.h3))), eta)) : ( eta ) => (Prelude_MkIORes(Prelude_Left($$sc1.h2), eta)) )), eta)) : ( eta ) => (Prelude_MkIORes(Prelude_Left($$sc.h2), eta)) )), eta))))); const Prelude_MkApplicative = ( h1, h2 ) => ({ tag: 0, h1: h1, h2: h2 }); @@ -62,8 +61,10 @@ const Lib_Types_Prelude_Applicative$20Lib_Types_M = Prelude_MkApplicative(( a ) const Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse = ( _$$3, _$$4, _$$5 ) => (( (_$$5.tag) == (1) ? Prelude__$3C$2A$3E_(_$$3)(null)(null)(Prelude__$3C$2A$3E_(_$$3)(null)(null)(Prelude_return(_$$3)(null)(( eta ) => (( eta1 ) => (Prelude__$3A$3A_(eta, eta1)))))(_$$4(_$$5.h1)))(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(_$$3, _$$4, _$$5.h2)) : Prelude_return(_$$3)(null)(Prelude_Nil()) )); const Prelude_return = ( _$$1 ) => (( a ) => (_$$1.h1(null))); const Prelude__$3C$2A$3E_ = ( _$$1 ) => (( a ) => (( b ) => (_$$1.h2(null)(null)))); +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 = ( $$self$$1 ) => ($$self$$1.h1); const Lib_Types_getTop = Lib_Types_MkM(( tc ) => (( eta ) => (Prelude_MkIORes(Prelude_Right(Prelude__$2C_(tc, tc)), eta)))); -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 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 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_logMetas(Prelude_reverse()(Data_SortedMap_listValues(top4.h5.h0))), ( _10 ) => (( (top4.h7.tag) == (0) ? 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 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_logMetas(Prelude_reverse()(Data_SortedMap_listValues(top4.h5.h0))), ( _10 ) => (( (top4.h7.tag) == (0) ? 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 Data_SortedMap_toList = ( _$$2 ) => (( (_$$2.tag) == (1) ? Prelude_reverse()(Data_SortedMap_toList_go(_$$2, _$$2.h0, _$$2.h1, _$$2.h2, _$$2.h3, _$$2.h4, _$$2.h4, Prelude_Nil())) : Prelude_Nil() )); @@ -265,8 +266,8 @@ const Lib_Elab_MkResult = ( h0 ) => ({ tag: 0, h0: h0 }); const Lib_Elab_Prelude_Monoid$20Lib_Elab_UnifyResult$2Cneutral = Lib_Elab_MkResult(Prelude_Nil()); const Lib_Types_Prelude_Eq$20Lib_Types_Literal$2C_$3D$3D_ = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 2: return ( (_$$0.tag) == (2) ? (_$$0.h0) == (_$$1.h0) : false ); case 1: return ( (_$$0.tag) == (1) ? (_$$0.h0) == (_$$1.h0) : false ); case 0: return ( (_$$0.tag) == (0) ? (_$$0.h0) == (_$$1.h0) : false ); default: return false; } }; const Lib_Elab_unifySpine = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { switch (_$$2) { case true: return ( (_$$3.tag) == (1) ? ( (_$$4.tag) == (1) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2C_$3C$2A$3E_(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (( eta1 ) => (Lib_Elab_Prelude_Semigroup$20Lib_Elab_UnifyResult$2C_$3C$2B$3E_(eta, eta1))), Lib_Elab_unify(_$$0, _$$1, _$$3.h2, _$$4.h2)), Lib_Elab_unifySpine(_$$0, _$$1, true, _$$3.h1, _$$4.h1)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, "meta spine length mismatch")), eta)))) ) : ( (_$$4.tag) == (0) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Elab_MkResult(Prelude_Nil())) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, "meta spine length mismatch")), eta)))) ) ); case false: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, "unify failed at head")), eta)))); } }; -const Lib_Elab_solve = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_lookupMeta(_$$1), ( $$sc ) => (( ($$sc.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((((("SOLVE ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_MetaKind$2Cshow($$sc.h4))) + (" lvl ")) + (Prelude_showInt(Prelude_length$27(_$$0)))) + (" sp ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" is ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _ ) => { const size = Prelude_length(Prelude_filter(( x ) => (Lib_Types_Prelude_Eq$20Lib_Types_BD$2C_$3D$3D_(x, false)), $$sc.h2.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((((((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" size is ")) + (Prelude_showInt(Prelude_natToInt(size)))) + (" sps ")) + (Prelude_showInt(Prelude_natToInt(Data_SnocList_snoclen(_$$2))))) + (""))), ( _1 ) => { const sc$$15 = Prelude_Prelude_Eq$20Prelude_Nat$2C_$3D$3D_(Data_SnocList_snoclen(_$$2), size); switch (sc$$15) { case true: { const l = Prelude_length$27(_$$0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((("meta ") + (Lib_Types_Prelude_Show$20Lib_Types_MetaEntry$2Cshow($$sc))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_invert(l, _$$2), ( ren ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(l, _$$3), ( hack ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0, hack), ( t ) => (Lib_Types_catchError(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_rename(_$$1, ren, l, t), ( tm ) => { const tm1 = Lib_Elab_lams(Data_SnocList_snoclen(_$$2), Prelude_reverse()(Lib_Elab__boundNames($$sc.h2)), tm); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), tm1), ( soln ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_updateMeta(_$$1, ( $$case ) => { switch ($$case.tag) { case 2: return Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" out of scope"))), eta)))); case 1: return Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E($$case.h0, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" already solved! [solve2]"))), eta)))); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Solved($$case.h0, $$case.h1, soln)); } }), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_maybeCheck(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for_(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, $$sc.h5, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_vappSpine(soln, $$case.h2), ( val ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _4 ) => ((((((("discharge l=") + (Prelude_showInt(Prelude_length$27($$case.h1)))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(val))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$case.h3))) + (""))), ( _4 ) => (Lib_Elab_unify($$case.h1, false, val, $$case.h3))))))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => { switch (top1.h5.h3) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _5 ) => ((((("check autos depending on ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" ")) + (Prelude_debugStr(null, top1.h5.h3))) + (""))), ( _5 ) => (Lib_Elab_checkAutos($$sc.h1, top1.h5.h1))); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); } })))), ( _4 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0))))))))); }), ( $$case ) => (( ($$case.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((((((("CONSTRAINT2 m") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$case.h1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(t))) + (""))), ( _3 ) => (Lib_Elab_addConstraint(_$$0, _$$1, _$$2, t))) : Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left($$case), eta)))) ))))))))))); break; } default: { const l = Prelude_length$27(_$$0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((((((((("meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" (")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (") applied to ")) + (Prelude_showInt(Prelude_natToInt(Data_SnocList_snoclen(_$$2))))) + (" args instead of ")) + (Prelude_showInt(Prelude_natToInt(size)))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((((((("CONSTRAINT m") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _3 ) => (Lib_Elab_addConstraint(_$$0, _$$1, _$$2, _$$3))))); break; } } }); }) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC(_$$3), (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" already solved! [solve]"))), eta)))) )))); -const Lib_Elab_addConstraint = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { switch (top.h5.h3) { case 0: return Lib_Elab_updateMeta(_$$1, ( $$case ) => { switch ($$case.tag) { case 2: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" out of scope"))), eta)))); case 1: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E($$case.h0, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$case.h1))) + (" already solved [addConstraint]"))), eta)))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("Add constraint m") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Unsolved($$case.h0, $$case.h1, $$case.h2, $$case.h3, $$case.h4, Prelude__$3A$3A_(Lib_Types_MkMc(Lib_Types_getValFC(_$$3), _$$0, _$$2, _$$3), $$case.h5))))); } }); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); } })); +const Lib_Elab_solve = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_lookupMeta(_$$1), ( $$sc ) => (( ($$sc.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((((((("SOLVE ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_MetaKind$2Cshow($$sc.h4))) + (" lvl ")) + (Prelude_showInt(Prelude_length$27(_$$0)))) + (" sp ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" is ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _ ) => { const size = Prelude_length(Prelude_filter(( x ) => (Lib_Types_Prelude_Eq$20Lib_Types_BD$2C_$3D$3D_(x, false)), $$sc.h2.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((((((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" size is ")) + (Prelude_showInt(Prelude_natToInt(size)))) + (" sps ")) + (Prelude_showInt(Prelude_natToInt(Data_SnocList_snoclen(_$$2))))) + (""))), ( _1 ) => { const sc$$15 = Prelude_Prelude_Eq$20Prelude_Nat$2C_$3D$3D_(Data_SnocList_snoclen(_$$2), size); switch (sc$$15) { case true: { const l = Prelude_length$27(_$$0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((("meta ") + (Lib_Types_Prelude_Show$20Lib_Types_MetaEntry$2Cshow($$sc))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_tryError(Lib_Elab_invert(l, _$$2)), ( $$sc1 ) => (( ($$sc1.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(l, _$$3), ( hack ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0, hack), ( t ) => (Lib_Types_catchError(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_rename(_$$1, $$sc1.h2, l, t), ( tm ) => { const tm1 = Lib_Elab_lams(Data_SnocList_snoclen(_$$2), Prelude_reverse()(Lib_Elab__boundNames($$sc.h2)), tm); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), tm1), ( soln ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_updateMeta(_$$1, ( $$case ) => { switch ($$case.tag) { case 2: return Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" out of scope"))), eta)))); case 1: return Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E($$case.h0, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" already solved! [solve2]"))), eta)))); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Solved($$case.h0, $$case.h1, soln)); } }), ( _3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_maybeCheck(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for_(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, $$sc.h5, ( $$case ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_vappSpine(soln, $$case.h2), ( val ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _4 ) => ((((((("discharge l=") + (Prelude_showInt(Prelude_length$27($$case.h1)))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(val))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow($$case.h3))) + (""))), ( _4 ) => (Lib_Elab_unify($$case.h1, false, val, $$case.h3))))))), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => { switch (top1.h5.h3) { case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _5 ) => ((((("check autos depending on ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" ")) + (Prelude_debugStr(null, top1.h5.h3))) + (""))), ( _5 ) => (Lib_Elab_checkAutos($$sc.h1, top1.h5.h1))); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); } })))), ( _4 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0))))))))); }), ( $$case ) => (( ($$case.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((((((("CONSTRAINT2 ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$case.h1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(t))) + (""))), ( _3 ) => (Lib_Elab_addConstraint(_$$0, _$$1, _$$2, t))) : Lib_Types_MkM(( _3 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E($$case.h0, (((((((("") + ($$case.h1)) + (" for ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(t))) + (""))), eta)))) ))))))) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((("postpone constraint ") + (Lib_Common_showError("", $$sc1.h2))) + (""))), ( _3 ) => (Lib_Elab_addConstraint(_$$0, _$$1, _$$2, _$$3))) ))))); break; } default: { const l = Prelude_length$27(_$$0); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((((((((("meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" (")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (") applied to ")) + (Prelude_showInt(Prelude_natToInt(Data_SnocList_snoclen(_$$2))))) + (" args instead of ")) + (Prelude_showInt(Prelude_natToInt(size)))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((((((("CONSTRAINT ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$sc.h1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _3 ) => (Lib_Elab_addConstraint(_$$0, _$$1, _$$2, _$$3))))); break; } } }); }) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC(_$$3), (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" already solved! [solve]"))), eta)))) )))); +const Lib_Elab_addConstraint = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { switch (top.h5.h3) { case 0: return Lib_Elab_updateMeta(_$$1, ( $$case ) => { switch ($$case.tag) { case 2: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" out of scope"))), eta)))); case 1: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E($$case.h0, (("Meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow($$case.h1))) + (" already solved [addConstraint]"))), eta)))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("Add constraint ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, Prelude__$3C$3E$3E_(_$$2, Prelude_Nil())))) + (" =?= ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$3))) + (""))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Unsolved($$case.h0, $$case.h1, $$case.h2, $$case.h3, $$case.h4, Prelude__$3A$3A_(Lib_Types_MkMc(Lib_Types_getValFC(_$$3), _$$0, _$$2, _$$3), $$case.h5))))); } }); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); } })); const Lib_Types_MkMc = ( h0, h1, h2, h3 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Types_Unsolved = ( h0, h1, h2, h3, h4, h5 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5 }); const Lib_Elab_updateMeta = ( _$$0, _$$1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const sc$$4 = Data_SortedMap_lookupMap$27(_$$0, top.h5.h0); return ( (sc$$4.tag) == (1) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(_$$1(sc$$4.h1), ( me ) => { const autos = ( (me.tag) == (1) ? Prelude_filter(( _$$3 ) => (Prelude_not(Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(_$$0, _$$3))), top.h5.h1) : top.h5.h1 ); return 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(_$$0, me, top.h5.h0), autos, top.h5.h2, top.h5.h3), tc.h6, tc.h7, tc.h8)))); }) ); })); @@ -343,6 +344,7 @@ const Prelude_Prelude_Eq$20Prim_Int$2C_$3D$3D_ = ( _$$0, _$$1 ) => ((_$$0) == (_ const Prelude_Prelude_Eq$20Prim_Int = Prelude_MkEq(( eta ) => (( eta1 ) => (Prelude_Prelude_Eq$20Prim_Int$2C_$3D$3D_(eta, eta1)))); const Prelude_elem = ( _$$1, _$$2, _$$3 ) => (bouncer(Prelude_REC_elem, { tag: 1, h0: null, h1: _$$1, h2: _$$2, h3: _$$3 })); const Prelude_REC_elem = ( arg ) => { if ((arg.h3.tag) == (1)) { const sc$$7 = Prelude__$3D$3D_(arg.h1)(arg.h2)(arg.h3.h1); switch (sc$$7) { case true: return { tag: 0, h0: true }; case false: return { tag: 1, h0: null, h1: arg.h1, h2: arg.h2, h3: arg.h3.h2 }; } } else { return { tag: 0, h0: false }; } }; +const Lib_Types_tryError = ( _$$1 ) => (Lib_Types_catchError(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Prelude_Right(eta)), _$$1), ( _$$5 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Left(_$$5))))); const Lib_Types_Prelude_Show$20Lib_Types_MetaEntry$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case 2: return "OutOfScope"; case 1: return (((("Solved ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$0.h1))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$0.h2))) + (""); case 0: return (((((((((((("Unsolved ") + (Lib_Common_Prelude_Show$20Lib_Common_FC$2Cshow(_$$0.h0))) + (" ")) + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$0.h1))) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_MetaKind$2Cshow(_$$0.h4))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_$$0.h3))) + (" ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_BD, _$$0.h2.h3))) + (" cs ")) + (Prelude_showInt(Prelude_natToInt(Prelude_length(_$$0.h5))))) + (""); } }; const Lib_Types_Prelude_Show$20Lib_Types_BD$2Cshow = ( _$$0 ) => { switch (_$$0) { case true: return "def"; case false: return "bnd"; } }; const Lib_Types_Prelude_Show$20Lib_Types_BD = Prelude_MkShow(( eta ) => (Lib_Types_Prelude_Show$20Lib_Types_BD$2Cshow(eta))); @@ -365,7 +367,7 @@ const Lib_Syntax_Prelude_Show$20Lib_Syntax_UpdateClause$2Cshow = ( _$$0 ) => (( const Lib_Syntax_Prelude_Show$20Lib_Syntax_UpdateClause = Prelude_MkShow(( eta ) => (Lib_Syntax_Prelude_Show$20Lib_Syntax_UpdateClause$2Cshow(eta))); const Lib_Elab_insert = ( ctx$$0, _$$1, _$$2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_forceMeta(_$$2), ( ty$27 ) => { if ((ty$27.tag) == (5)) { switch (ty$27.h2) { case 2: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(ctx$$0, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC(_$$1), ty$27.h4, 2), ( m ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((("INSERT Auto ") + (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), ctx$$0.h2), m))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(ty$27.h4))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("TM ") + (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), ctx$$0.h2), _$$1))), Prelude_Lin()))) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(ctx$$0.h1, m), ( mv ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(mv, ty$27.h5.h0), ty$27.h5.h1), ( bapp ) => (Lib_Elab_insert(ctx$$0, Lib_Types_App(Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC(_$$1), _$$1, m), bapp))))))))))); case 0: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_freshMeta(ctx$$0, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC(_$$1), ty$27.h4, 0), ( m ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((("INSERT ") + (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), ctx$$0.h2), m))), Prelude_Lin()))) + (" : ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(ty$27.h4))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("TM ") + (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), ctx$$0.h2), _$$1))), Prelude_Lin()))) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(ctx$$0.h1, m), ( mv ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(mv, ty$27.h5.h0), ty$27.h5.h1), ( bapp ) => (Lib_Elab_insert(ctx$$0, Lib_Types_App(Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC(_$$1), _$$1, m), bapp))))))))))); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(_$$1, ty$27)); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(_$$1, ty$27)); } })); const Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { 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_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 = ( _$$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, (("") + (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_Common_QN = ( h0, h1 ) => ({ tag: 0, h0: h0, h1: h1 }); @@ -408,7 +410,6 @@ const Lib_Elab_checkCase = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types_Prelude_Mona const Lib_Elab_lookupDef = ( _$$0, _$$1 ) => (Lib_Elab_lookupDef_go(_$$0, _$$1, 0, _$$0.h2, _$$0.h1)); const Lib_Elab_lookupDef_go = ( _, _1, _$$3, _$$4, _$$5 ) => (bouncer(Lib_Elab_REC_lookupDef_go, { tag: 1, h0: _, h1: _1, h2: null, h3: _$$3, h4: _$$4, h5: _$$5 })); const Lib_Elab_REC_lookupDef_go = ( arg ) => { if ((arg.h5.tag) == (1)) { if ((arg.h4.tag) == (1)) { const sc$$16 = (arg.h4.h1.h2) == (arg.h1); switch (sc$$16) { case true: return { tag: 0, h0: Prelude_Just(arg.h5.h1) }; case false: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: (1) + (arg.h3), h4: arg.h4.h2, h5: arg.h5.h2 }; } } else { return { tag: 0, h0: Prelude_Nothing() }; } } else { return { tag: 0, h0: Prelude_Nothing() }; } }; -const Lib_Types_tryError = ( _$$1 ) => (Lib_Types_catchError(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Prelude_Right(eta)), _$$1), ( _$$5 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Left(_$$5))))); const Lib_Elab_extendPi = ( _$$0, _$$1, _$$2, _$$3 ) => { if ((_$$1.tag) == (5)) { const nm = Lib_Elab_fresh(_$$0, _$$1.h1); const ctx$27 = Lib_Types_extend(_$$0, nm, _$$1.h4); const v = Lib_Types_VVar(Lib_Common_emptyFC, Prelude_length$27(_$$0.h1), Prelude_Lin()); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude__$3A$3A_(v, _$$1.h5.h0), _$$1.h5.h1), ( tyb ) => (Lib_Elab_extendPi(ctx$27, tyb, Prelude__$3A$3C_(_$$2, Lib_Elab_MkBind(nm, _$$1.h2, _$$1.h4)), Prelude__$3A$3C_(_$$3, Lib_Types_VVar(_$$1.h0, Prelude_length$27(_$$0.h1), Prelude_Lin()))))); } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(_$$0, Prelude__$2C_(_$$1, Prelude__$2C_(Prelude__$3C$3E$3E_(_$$2, Prelude_Nil()), _$$3)))); } }; const Lib_Elab_MkBind = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); const Lib_Elab_fresh = ( ctx$$0, _$$1 ) => ((_$$1) + (("$") + (Prelude_showInt(Prelude_length$27(ctx$$0.h1))))); @@ -451,11 +452,12 @@ const Lib_Types_getIcit = ( _$$0 ) => { switch (_$$0.tag) { case 4: return 1; ca const Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow = ( _$$0 ) => ((((("") + (_$$0.h0)) + (" ")) + (Lib_Types_Prelude_Show$20Lib_Types_Icit$2Cshow(_$$0.h1))) + ("")); const Lib_Elab_Prelude_Show$20Lib_Elab_Bind = Prelude_MkShow(( eta ) => (Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow(eta))); const Lib_Elab_updateContext = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_updateContext, { tag: 1, h0: _$$0, h1: _$$1 })); -const Lib_Elab_REC_updateContext = ( arg ) => { if ((arg.h1.tag) == (1)) { const ix = Prelude_intToNat(((Prelude_length$27(arg.h0.h1)) - (arg.h1.h1.h2)) - (1)); const sc$$11 = Prelude_getAt(ix, arg.h0.h1); if ((sc$$11.tag) == (1)) { return { tag: 0, h0: Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC(arg.h1.h1.h3), "INTERNAL ERROR: bad index in updateContext")), eta)))) }; } else { if ((sc$$11.h1.tag) == (0)) { if ((sc$$11.h1.h2.tag) == (0)) { const sc$$18 = Prelude_not((sc$$11.h1.h1) == (arg.h1.h1.h2)); switch (sc$$18) { case true: return { tag: 1, h0: arg.h0, h1: Prelude__$3A$3A_(Prelude__$2C_(sc$$11.h1.h1, arg.h1.h1.h3), arg.h1.h2) }; case false: { const ctx$27 = Lib_Types_MkCtx(arg.h0.h0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Elab_substVal(arg.h1.h1.h2, arg.h1.h1.h3, eta)), arg.h0.h1), arg.h0.h2, Lib_Elab_updateContext_replaceV(arg.h0, arg.h1, arg.h1.h0, arg.h1.h1, arg.h1.h2, arg.h1.h1.h0, arg.h1.h1.h1, arg.h1.h1.h2, arg.h1.h1.h3, ix, true, arg.h0.h3), arg.h0.h4); return { tag: 1, h0: ctx$27, h1: arg.h1.h2 }; break; } } } else { return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_info(Lib_Types_getValFC(arg.h1.h1.h3), (((("need to unify ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1.h1.h3))) + (" and ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$11.h1))) + (" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, arg.h1.h2))) }; } } else { return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_info(Lib_Types_getValFC(arg.h1.h1.h3), (((("need to unify ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1.h1.h3))) + (" and ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$11.h1))) + (" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, arg.h1.h2))) }; } } } else { return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(arg.h0) }; } }; -const Lib_Elab_updateContext_replaceV = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$11, _$$12, _$$13 ) => { if ((_$$13.tag) == (1)) { switch (_$$11) { case 0: return Prelude__$3A$3A_(_$$12, _$$13.h2); default: { const x = (_$$11) - (1); return Prelude__$3A$3A_(_$$13.h1, Lib_Elab_updateContext_replaceV(_, _1, _2, _3, _4, _5, _6, _7, _8, x, _$$12, _$$13.h2)); break; } } } else { return Prelude_Nil(); } }; +const Lib_Elab_REC_updateContext = ( arg ) => { if ((arg.h1.tag) == (1)) { const sc$$11 = Lib_Elab_updateContext_isSelf(arg.h0, arg.h1, arg.h1.h0, arg.h1.h1, arg.h1.h2, arg.h1.h1.h0, arg.h1.h1.h1, arg.h1.h1.h2, arg.h1.h1.h3, arg.h1.h1.h2, arg.h1.h1.h3); switch (sc$$11) { case true: return { tag: 1, h0: arg.h0, h1: arg.h1.h2 }; case false: { const ix = Prelude_intToNat(((Prelude_length$27(arg.h0.h1)) - (arg.h1.h1.h2)) - (1)); const sc$$13 = Prelude_getAt(ix, arg.h0.h1); if ((sc$$13.tag) == (1)) { return { tag: 0, h0: Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC(arg.h1.h1.h3), "INTERNAL ERROR: bad index in updateContext")), eta)))) }; } else { if ((sc$$13.h1.tag) == (0)) { if ((sc$$13.h1.h2.tag) == (0)) { const sc$$20 = Prelude_not((sc$$13.h1.h1) == (arg.h1.h1.h2)); switch (sc$$20) { case true: return { tag: 1, h0: arg.h0, h1: Prelude__$3A$3A_(Prelude__$2C_(sc$$13.h1.h1, arg.h1.h1.h3), arg.h1.h2) }; case false: { const ctx$27 = Lib_Types_MkCtx(arg.h0.h0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Elab_substVal(arg.h1.h1.h2, arg.h1.h1.h3, eta)), arg.h0.h1), arg.h0.h2, Lib_Elab_updateContext_isSelf_replaceV(arg.h0, arg.h1, arg.h1.h0, arg.h1.h1, arg.h1.h2, arg.h1.h1.h0, arg.h1.h1.h1, arg.h1.h1.h2, arg.h1.h1.h3, ix, true, arg.h0.h3), arg.h0.h4); return { tag: 1, h0: ctx$27, h1: arg.h1.h2 }; break; } } } else { return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_info(Lib_Types_getValFC(arg.h1.h1.h3), (((("need to unify ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1.h1.h3))) + (" and ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$13.h1))) + (" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, arg.h1.h2))) }; } } else { return { tag: 0, h0: Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_info(Lib_Types_getValFC(arg.h1.h1.h3), (((("need to unify ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(arg.h1.h1.h3))) + (" and ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(sc$$13.h1))) + (" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, arg.h1.h2))) }; } } break; } } } else { return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(arg.h0) }; } }; +const Lib_Elab_updateContext_isSelf_replaceV = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$12, _$$13, _$$14 ) => { if ((_$$14.tag) == (1)) { switch (_$$12) { case 0: return Prelude__$3A$3A_(_$$13, _$$14.h2); default: { const x = (_$$12) - (1); return Prelude__$3A$3A_(_$$14.h1, Lib_Elab_updateContext_isSelf_replaceV(_, _1, _2, _3, _4, _5, _6, _7, _8, x, _$$13, _$$14.h2)); break; } } } else { return Prelude_Nil(); } }; const Lib_Elab_substVal = ( _$$0, _$$1, _$$2 ) => (Lib_Elab_substVal_go(_$$0, _$$1, _$$2, _$$2)); const Lib_Elab_substVal_go = ( _, _1, _2, _$$4 ) => { switch (_$$4.tag) { case 6: return Lib_Types_VLet(_$$4.h0, _$$4.h1, Lib_Elab_substVal_go(_, _1, _2, _$$4.h2), _$$4.h3); case 5: return Lib_Types_VPi(_$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, Lib_Elab_substVal_go(_, _1, _2, _$$4.h4), _$$4.h5); case 3: return Lib_Types_VMeta(_$$4.h0, _$$4.h1, Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap(( eta ) => (Lib_Elab_substVal_go(_, _1, _2, eta)), _$$4.h2)); case 1: return Lib_Types_VRef(_$$4.h0, _$$4.h1, Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap(( eta ) => (Lib_Elab_substVal_go(_, _1, _2, eta)), _$$4.h2)); case 0: { const sc$$8 = (_$$4.h1) == (_); switch (sc$$8) { case true: return _1; case false: return Lib_Types_VVar(_$$4.h0, _$$4.h1, Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap(( eta ) => (Lib_Elab_substVal_go(_, _1, _2, eta)), _$$4.h2)); } break; } default: return _$$4; } }; const Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap = ( _$$2, _$$3 ) => (( (_$$3.tag) == (1) ? Prelude__$3A$3C_(Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap(_$$2, _$$3.h1), _$$2(_$$3.h2)) : Prelude_Lin() )); +const Lib_Elab_updateContext_isSelf = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$10, _$$11 ) => (( (_$$11.tag) == (0) ? ( (_$$11.h2.tag) == (0) ? (_$$10) == (_$$11.h1) : false ) : false )); const Lib_Elab_buildCase_constrainSpine = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _$$14, _$$15 ) => (( (_$$15.tag) == (1) ? Prelude__$3A$3A_(Prelude__$2C_(_$$14, _$$15.h1), Lib_Elab_buildCase_constrainSpine(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, (1) + (_$$14), _$$15.h2)) : Prelude_Nil() )); const Lib_Types_Prelude_Show$20Lib_Types_Tm = Prelude_MkShow(( eta ) => (Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow(eta))); const Lib_Common_Prelude_Eq$20Lib_Common_QName = Prelude_MkEq(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Eq$20Lib_Common_QName$2C_$3D$3D_(eta, eta1)))); @@ -506,15 +508,15 @@ const Lib_Syntax_FunDef = ( h0, h1, h2 ) => ({ tag: 1, h0: h0, h1: h1, h2: h2 const Lib_Elab_checkWhere = ( _$$0, _$$1, _$$2, _$$3 ) => (( (_$$1.tag) == (1) ? ( (_$$1.h1.tag) == (0) ? ( (_$$1.h1.h1.tag) == (1) ? ( (_$$1.h1.h1.h2.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(_$$0, _$$1.h1.h2, Lib_Types_VU(_$$1.h1.h0)), ( funTy ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((("where clause ") + (_$$1.h1.h1.h1)) + (" : ")) + (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), funTy))), Prelude_Lin()))) + (""))), ( _ ) => (( (_$$1.h2.tag) == (1) ? ( (_$$1.h2.h1.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_when(Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_not((_$$1.h1.h1.h1) == (_$$1.h2.h1.h1)), ( _1 ) => (Lib_Types_MkM(( _2 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h2.h1.h0, (("Expected def for ") + (_$$1.h1.h1.h1)) + (""))), eta)))))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Elab_makeClause(eta)), _$$1.h2.h1.h2), ( clauses$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$0.h1, funTy), ( vty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((((("") + (_$$1.h1.h1.h1)) + (" vty is ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(vty))) + (""))), ( _2 ) => { const ctx$27 = Lib_Types_extend(_$$0, _$$1.h1.h1.h1, vty); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_buildTree(Lib_Types_MkCtx(ctx$27.h0, ctx$27.h1, ctx$27.h2, ctx$27.h3, _$$1.h2.h1.h0), Lib_Elab_MkProb(clauses$27, vty)), ( tm ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(ctx$27.h1, tm), ( vtm ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_checkWhere(ctx$27, _$$1.h2.h2, _$$2, _$$3), ( ty$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_LetRec(_$$1.h1.h0, _$$1.h1.h1.h1, funTy, tm, ty$27)))))))); }))))))))) : Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC(_$$1.h2.h1), "expected function definition")), eta)))) ) : Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h1.h0, "expected function definition after this signature")), eta)))) ))))) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC(_$$1.h1), "expected type signature")), eta)))) ) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC(_$$1.h1), "expected type signature")), eta)))) ) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC(_$$1.h1), "expected type signature")), eta)))) ) : Lib_Elab_check(_$$0, _$$2, _$$3) )); const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { 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_makeClause = ( _$$0 ) => { const sc$$5 = Lib_Elab_splitArgs(_$$0.h2, Prelude_Nil()); return 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$$5.h3), ( pats ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_MkClause(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$0.h2), Prelude_Nil(), pats, _$$0.h3)))); }; -const Lib_Elab_updateRec = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_updateRec_doClause_collect_getTele(_$$0, _$$1, _$$2, _$$3, _$$4, _$$3, _$$4), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_foldlM(Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Elab_updateRec_doClause(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), $$sc.h3, _$$2), ( args$27 ) => { const tm = Prelude_foldl(( acc ) => (( tm ) => (Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(tm), acc, tm, 1))), Lib_Syntax_RVar(_$$1, $$sc.h2.h1), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h3), args$27)); const tm1 = ( (_$$3.tag) == (1) ? Lib_Syntax_RLam(_$$1, Lib_Types_BI(_$$1, "$ru", 1, true), tm) : tm ); return Lib_Elab_check(_$$0, tm1, _$$4); })))); -const Prelude_foldl = ( _$$2, _$$3, _$$4 ) => (bouncer(Prelude_REC_foldl, { tag: 1, h0: null, h1: null, h2: _$$2, h3: _$$3, h4: _$$4 })); -const Prelude_REC_foldl = ( arg ) => (( (arg.h4.tag) == (1) ? { tag: 1, h0: null, h1: null, h2: arg.h2, h3: arg.h2(arg.h3)(arg.h4.h1), h4: arg.h4.h2 } : { tag: 0, h0: arg.h3 } )); +const Lib_Elab_updateRec = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_updateRec_doClause_collect_getTele(_$$0, _$$1, _$$2, _$$3, _$$4, _$$3, _$$4), ( $$sc ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_foldlM(Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Elab_updateRec_doClause(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), $$sc.h3, _$$2), ( args$27 ) => { const tm = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( acc ) => (( tm ) => (Lib_Syntax_RApp(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(tm), acc, tm, 1))), Lib_Syntax_RVar(_$$1, $$sc.h2.h1), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h3), args$27)); const tm1 = ( (_$$3.tag) == (1) ? Lib_Syntax_RLam(_$$1, Lib_Types_BI(_$$1, "$ru", 1, true), tm) : tm ); return Lib_Elab_check(_$$0, tm1, _$$4); })))); +const Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl = ( _$$2, _$$3, _$$4 ) => (bouncer(Prelude_REC_Prelude_Foldable$20Prelude_List$2Cfoldl, { tag: 1, h0: null, h1: null, h2: _$$2, h3: _$$3, h4: _$$4 })); +const Prelude_REC_Prelude_Foldable$20Prelude_List$2Cfoldl = ( arg ) => (( (arg.h4.tag) == (1) ? { tag: 1, h0: null, h1: null, h2: arg.h2, h3: arg.h2(arg.h3)(arg.h4.h1), h4: arg.h4.h2 } : { tag: 0, h0: arg.h3 } )); const Lib_Elab_updateRec_doClause = ( _, _1, _2, _3, _4, _$$6, _$$7 ) => (( (_$$7.tag) == (1) ? Lib_Elab_updateRec_doClause_go(_, _1, _2, _3, _4, _$$6, _$$7, _$$7.h0, _$$7.h1, _$$7.h2, _$$6) : Lib_Elab_updateRec_doClause_go$27(_, _1, _2, _3, _4, _$$6, _$$7, _$$7.h0, _$$7.h1, _$$7.h2, _$$6) )); const Lib_Elab_updateRec_doClause_go$27 = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _$$12 ) => { if ((_$$12.tag) == (1)) { const sc$$16 = (_$$12.h1.h2) == (_8); switch (sc$$16) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$3A$3A_(Prelude__$2C_(_8, _9), _$$12.h2)); case false: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Prelude__$3A$3A_(_$$12.h1, eta)), Lib_Elab_updateRec_doClause_go$27(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _$$12.h2)); } } else { return Lib_Types_MkM(( _10 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_7, (((("") + (_8)) + (" is not a field of ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_4))) + (""))), eta)))); } }; const Lib_Elab_updateRec_doClause_go = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _$$12 ) => { if ((_$$12.tag) == (1)) { const sc$$16 = (_$$12.h1.h2) == (_8); switch (sc$$16) { case true: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$3A$3A_(Prelude__$2C_(_8, Lib_Syntax_RApp(_7, _9, _$$12.h1.h3, 1)), _$$12.h2)); case false: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Prelude__$3A$3A_(_$$12.h1, eta)), Lib_Elab_updateRec_doClause_go(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _$$12.h2)); } } else { return Lib_Types_MkM(( _10 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_7, (((("") + (_8)) + (" is not a field of ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(_4))) + (""))), eta)))); } }; const Prelude_MkMonad = ( h1, h2 ) => ({ tag: 0, h1: h1, h2: h2 }); const Lib_Types_Prelude_Monad$20Lib_Types_M = Prelude_MkMonad(( a ) => (( b ) => (( eta ) => (( eta1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(eta, eta1))))), ( a ) => (( eta ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(eta)))); -const Prelude_foldlM = ( _$$3, _$$4, _$$5, _$$6 ) => (Prelude_foldl(( ma ) => (( b ) => (Prelude_bind(_$$3)(null)(null)(ma)(( _$$51 ) => (_$$4(_$$51)(b))))), Prelude_pure(_$$3)(null)(_$$5), _$$6)); +const Prelude_foldlM = ( _$$3, _$$4, _$$5, _$$6 ) => (Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( ma ) => (( b ) => (Prelude_bind(_$$3)(null)(null)(ma)(( _$$51 ) => (_$$4(_$$51)(b))))), Prelude_pure(_$$3)(null)(_$$5), _$$6)); const Prelude_pure = ( _$$1 ) => (( a ) => (_$$1.h2(null))); const Prelude_bind = ( _$$1 ) => (( a ) => (( b ) => (_$$1.h1(null)(null)))); const Lib_Elab_updateRec_doClause_collect_getTele = ( _, _1, _2, _3, _4, _$$8, _$$9 ) => (bouncer(Lib_Elab_REC_updateRec_doClause_collect_getTele, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: null, h6: null, h7: null, h8: _$$8, h9: _$$9 })); @@ -581,7 +583,7 @@ const Lib_Util_funArgs_go = ( _, _$$2, _$$3 ) => (bouncer(Lib_Util_REC_funArgs_g const Lib_Util_REC_funArgs_go = ( arg ) => (( (arg.h2.tag) == (4) ? { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2.h1, h3: Prelude__$3A$3A_(arg.h2.h2, arg.h3) } : { tag: 0, h0: Prelude__$2C_(arg.h2, arg.h3) } )); const Lib_ProcessDecl_processData_makeConEntry_binderName = ( _, _1, _2, _3, _4, _$$7 ) => (_$$7.h1); const Prelude_Prelude_Monad$20Prelude_List$2Cbind = ( _$$2, _$$3 ) => (( (_$$2.tag) == (1) ? Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(_$$3(_$$2.h1), Prelude_Prelude_Monad$20Prelude_List$2Cbind(_$$2.h2, _$$3)) : Prelude_Nil() )); -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_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_Prelude_Foldable$20Prelude_List$2Cfoldr(( 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 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)); @@ -595,12 +597,12 @@ const Lib_Common_Prelude_Show$20Lib_Common_Fixity$2Cshow = ( _$$0 ) => { switch const Lib_Syntax_prettyBind = ( _$$0 ) => (Lib_Syntax_wrap(_$$0.h2.h2, Lib_Prettier_Seq(Lib_Prettier_Seq(Lib_Prettier_Text((Lib_Types_Prelude_Show$20Lib_Types_Quant$2Cshow(_$$0.h2.h3)) + (_$$0.h2.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.h3))))); const Lib_Syntax_Data = ( h0, h1, h2, h3 ) => ({ tag: 3, h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_ProcessDecl_processShortData_mkPi_getArgs_mkDecl = ( _, _1, _2, _3, _$$7, _$$8, _$$9 ) => (bouncer(Lib_ProcessDecl_REC_processShortData_mkPi_getArgs_mkDecl, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: null, h5: null, h6: null, h7: _$$7, h8: _$$8, h9: _$$9 })); -const Lib_ProcessDecl_REC_processShortData_mkPi_getArgs_mkDecl = ( arg ) => { switch (arg.h9.tag) { case 2: 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: Prelude__$3A$3A_(arg.h9.h2, arg.h8), h9: arg.h9.h1 }; case 0: { const base = Prelude_foldr(( ty ) => (( acc ) => (Lib_Syntax_RPi(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), Lib_Types_BI(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), "_", 1, true), ty, acc))), arg.h2, arg.h8); const ty = Prelude_foldr(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processShortData_mkPi_getArgs_mkDecl_mkPi(arg.h0, arg.h1, arg.h2, arg.h3, arg.h7, arg.h8, arg.h9, arg.h9.h0, arg.h9.h1, eta, eta1))), base, arg.h7); return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_TypeSig(arg.h9.h0, Prelude__$3A$3A_(arg.h9.h1, Prelude_Nil()), ty)) }; break; } default: return { tag: 0, h0: Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(arg.h9), (("Expected contructor application, got: ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(arg.h9))) + (""))), eta)))) }; } }; +const Lib_ProcessDecl_REC_processShortData_mkPi_getArgs_mkDecl = ( arg ) => { switch (arg.h9.tag) { case 2: 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: Prelude__$3A$3A_(arg.h9.h2, arg.h8), h9: arg.h9.h1 }; case 0: { const base = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( ty ) => (( acc ) => (Lib_Syntax_RPi(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), Lib_Types_BI(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), "_", 1, true), ty, acc))), arg.h2, arg.h8); const ty = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processShortData_mkPi_getArgs_mkDecl_mkPi(arg.h0, arg.h1, arg.h2, arg.h3, arg.h7, arg.h8, arg.h9, arg.h9.h0, arg.h9.h1, eta, eta1))), base, arg.h7); return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Syntax_TypeSig(arg.h9.h0, Prelude__$3A$3A_(arg.h9.h1, Prelude_Nil()), ty)) }; break; } default: return { tag: 0, h0: Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(arg.h9), (("Expected contructor application, got: ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(arg.h9))) + (""))), eta)))) }; } }; const Lib_Syntax_TypeSig = ( h0, h1, h2 ) => ({ tag: 0, h0: h0, h1: h1, h2: h2 }); const Lib_ProcessDecl_processShortData_mkPi_getArgs_mkDecl_mkPi = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$13, _$$14 ) => (Lib_Syntax_RPi(_$$13.h2, Lib_Types_BI(_$$13.h2, _$$13.h3, 0, false), Lib_Syntax_RU(_$$13.h2), _$$14)); const Lib_Syntax_RU = ( h0 ) => ({ tag: 3, h0: h0 }); const Lib_Syntax_RPi = ( h0, h1, h2, h3 ) => ({ tag: 5, h0: h0, h1: h1, h2: h2, h3: h3 }); -const Prelude_foldr = ( _$$2, _$$3, _$$4 ) => (( (_$$4.tag) == (1) ? _$$2(_$$4.h1)(Prelude_foldr(_$$2, _$$3, _$$4.h2)) : _$$3 )); +const Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr = ( _$$2, _$$3, _$$4 ) => (( (_$$4.tag) == (1) ? _$$2(_$$4.h1)(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(_$$2, _$$3, _$$4.h2)) : _$$3 )); const Lib_ProcessDecl_processShortData_mkPi = ( _, _1, _2, _3, _$$5, _$$6 ) => (Lib_Syntax_RPi(_$$5.h2, Lib_Types_BI(_$$5.h2, _$$5.h3, 1, false), Lib_Syntax_RU(_$$5.h2), _$$6)); const Lib_ProcessDecl_processShortData_mkPi_getArgs = ( _, _1, _2, _3, _$$6, _$$7 ) => (bouncer(Lib_ProcessDecl_REC_processShortData_mkPi_getArgs, { tag: 1, h0: _, h1: _1, h2: _2, h3: _3, h4: null, h5: null, h6: _$$6, h7: _$$7 })); const Lib_ProcessDecl_REC_processShortData_mkPi_getArgs = ( arg ) => { switch (arg.h6.tag) { case 2: return ( (arg.h6.h2.tag) == (0) ? { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6.h1, h7: Prelude__$3A$3A_(Prelude__$2C_(arg.h6.h2.h0, arg.h6.h2.h1), arg.h7) } : { tag: 0, h0: Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(arg.h6), (("Expected contructor application, got: ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(arg.h6))) + (""))), eta)))) } ); case 0: return { tag: 0, h0: Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(arg.h6.h1, arg.h7)) }; default: return { tag: 0, h0: Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(arg.h6), (("Expected contructor application, got: ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(arg.h6))) + (""))), eta)))) }; } }; @@ -608,7 +610,7 @@ const Lib_ProcessDecl_processPrimType = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Types const Lib_Types_PrimTCon = ( h0 ) => ({ tag: 4, h0: h0 }); const Lib_ProcessDecl_processPrimFn = ( _$$0, _$$1, _$$2, _$$3, _$$4, _$$5 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_MkCtx(0, Prelude_Nil(), Prelude_Nil(), Prelude_Nil(), _$$1), _$$4, Lib_Types_VU(_$$1)), ( ty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), ty), ( eta ) => (Lib_Eval_quote(Prelude_length$27(Prelude_Nil()), eta))), ( ty$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _ ) => ((((((("pfunc ") + (_$$2)) + (" : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), ty$27))), Prelude_Lin()))) + (" = ")) + (_$$5)) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, _$$3, ( name ) => { const sc$$11 = Lib_TopContext_lookupRaw(name, top); return ( (sc$$11.tag) == (1) ? Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("") + (name)) + (" not in scope"))), eta)))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(sc$$11.h1.h1) ); }), ( used$27 ) => { const arity = Lib_Util_piArity(ty$27); return Lib_TopContext_setDef(Lib_Common_QN(_$$0, _$$2), _$$1, ty$27, Lib_Types_PrimFn(_$$5, arity, used$27), Prelude_Nil()); })))))))))); const Lib_Types_PrimFn = ( h0, h1, h2 ) => ({ tag: 5, h0: h0, h1: h1, h2: h2 }); -const Lib_ProcessDecl_processClass = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (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 ) => ((("Class ") + (_$$2)) + (""))), ( _1 ) => { const fields = Lib_ProcessDecl_getSigs(_$$4); const dcName = (("Mk") + (_$$2)) + (""); const tcType = Lib_ProcessDecl_teleToPi(_$$3, Lib_Syntax_RU(_$$1)); const tail = Prelude_foldl(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processClass_makeLHS_mkAutoApp_mkPi_mkApp(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), Lib_Syntax_RVar(_$$1, _$$2), _$$3); const dcType = Lib_ProcessDecl_teleToPi(Lib_ProcessDecl_impTele(_$$3), Prelude_foldr(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processClass_makeLHS_mkAutoApp_mkPi(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), 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, "_", 2, true), tail, $$case.h3.h3)); const autoPat = Prelude_foldl(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processClass_makeLHS_mkAutoApp(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), Lib_Syntax_RVar(_$$1, dcName), fields); const lhs = Lib_ProcessDecl_processClass_makeLHS(_$$0, _$$1, _$$2, _$$3, _$$4, Lib_Syntax_RVar($$case.h2, $$case.h3.h2), _$$3); const lhs1 = Lib_Syntax_RApp(_$$1, lhs, autoPat, 2); const decl1 = Lib_Syntax_FunDef($$case.h2, $$case.h3.h2, 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 ) => ((((("") + ($$case.h3.h2)) + (" : ")) + (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(decl1))), Prelude_Lin()))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, Lib_Syntax_TypeSig($$case.h2, Prelude__$3A$3A_($$case.h3.h2, Prelude_Nil()), funType)), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setFlag(Lib_Common_QN(_$$0, $$case.h3.h2), $$case.h2, true), ( _10 ) => (Lib_ProcessDecl_processDecl(_$$0, decl1))))))))); })))))))); }))); })))); +const Lib_ProcessDecl_processClass = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (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 ) => ((("Class ") + (_$$2)) + (""))), ( _1 ) => { const fields = Lib_ProcessDecl_getSigs(_$$4); const dcName = (("Mk") + (_$$2)) + (""); const tcType = Lib_ProcessDecl_teleToPi(_$$3, Lib_Syntax_RU(_$$1)); const tail = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processClass_makeLHS_mkAutoApp_mkPi_mkApp(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), Lib_Syntax_RVar(_$$1, _$$2), _$$3); const dcType = Lib_ProcessDecl_teleToPi(Lib_ProcessDecl_impTele(_$$3), Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processClass_makeLHS_mkAutoApp_mkPi(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), 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, "_", 2, true), tail, $$case.h3.h3)); const autoPat = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_ProcessDecl_processClass_makeLHS_mkAutoApp(_$$0, _$$1, _$$2, _$$3, _$$4, eta, eta1))), Lib_Syntax_RVar(_$$1, dcName), fields); const lhs = Lib_ProcessDecl_processClass_makeLHS(_$$0, _$$1, _$$2, _$$3, _$$4, Lib_Syntax_RVar($$case.h2, $$case.h3.h2), _$$3); const lhs1 = Lib_Syntax_RApp(_$$1, lhs, autoPat, 2); const decl1 = Lib_Syntax_FunDef($$case.h2, $$case.h3.h2, 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 ) => ((((("") + ($$case.h3.h2)) + (" : ")) + (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(decl1))), Prelude_Lin()))) + (""))), ( _8 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, Lib_Syntax_TypeSig($$case.h2, Prelude__$3A$3A_($$case.h3.h2, Prelude_Nil()), funType)), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setFlag(Lib_Common_QN(_$$0, $$case.h3.h2), $$case.h2, true), ( _10 ) => (Lib_ProcessDecl_processDecl(_$$0, decl1))))))))); })))))))); }))); })))); const Lib_ProcessDecl_processClass_makeLHS = ( _, _1, _2, _3, _4, _$$6, _$$7 ) => (( (_$$7.tag) == (1) ? Lib_Syntax_RApp(_$$7.h1.h2.h0, Lib_ProcessDecl_processClass_makeLHS(_, _1, _2, _3, _4, _$$6, _$$7.h2), Lib_Syntax_RVar(_$$7.h1.h2.h0, _$$7.h1.h2.h1), 0) : _$$6 )); const Lib_ProcessDecl_processClass_makeLHS_mkAutoApp = ( _, _1, _2, _3, _4, _$$7, _$$8 ) => (Lib_Syntax_RApp(_$$8.h2, _$$7, Lib_Syntax_RVar(_$$8.h2, _$$8.h3.h2), 1)); const Lib_ProcessDecl_impTele = ( _$$0 ) => (Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_ProcessDecl_impTele_foo(_$$0, eta)), _$$0)); @@ -618,7 +620,7 @@ const Lib_ProcessDecl_processClass_makeLHS_mkAutoApp_mkPi = ( _, _1, _2, _3, _4, const Lib_ProcessDecl_processClass_makeLHS_mkAutoApp_mkPi_mkApp = ( _, _1, _2, _3, _4, _$$9, _$$10 ) => (Lib_Syntax_RApp(_$$10.h2.h0, _$$9, Lib_Syntax_RVar(_$$10.h2.h0, _$$10.h2.h1), _$$10.h2.h2)); const Lib_ProcessDecl_getSigs = ( _$$0 ) => (bouncer(Lib_ProcessDecl_REC_getSigs, { tag: 1, h0: _$$0 })); const Lib_ProcessDecl_REC_getSigs = ( arg ) => (( (arg.h0.tag) == (1) ? ( (arg.h0.h1.tag) == (0) ? ( (arg.h0.h1.h1.tag) == (1) ? { tag: 0, h0: Prelude__$3A$3A_(Prelude__$2C_(arg.h0.h1.h0, Prelude__$2C_(arg.h0.h1.h1.h1, arg.h0.h1.h2)), Lib_ProcessDecl_getSigs(arg.h0.h2)) } : { tag: 1, h0: arg.h0.h2 } ) : { tag: 1, h0: arg.h0.h2 } ) : { tag: 0, h0: Prelude_Nil() } )); -const Lib_ProcessDecl_processInstance = ( _$$0, _$$1, _$$2, _$$3 ) => (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 ) => ((("Instance ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$2))), Prelude_Lin()))) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const tyFC = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_MkCtx(0, Prelude_Nil(), Prelude_Nil(), Prelude_Nil(), _$$1), _$$2, Lib_Types_VU(_$$1)), ( vty ) => { const sc$$13 = Lib_Util_splitTele(vty); const env = Lib_ProcessDecl_processInstance_getFields_tenv(_$$0, _$$1, _$$2, _$$3, Prelude_length(sc$$13.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((("codomain ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((("tele is ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Util_Prelude_Show$20Lib_Util_Binder, sc$$13.h3))) + (""))), ( _3 ) => { const instname = Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()); const sigDecl = Lib_Syntax_TypeSig(_$$1, Prelude__$3A$3A_(instname, Prelude_Nil()), _$$2); const sc$$23 = Lib_TopContext_lookupRaw(instname, top); return ( (sc$$23.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, sigDecl), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setFlag(Lib_Common_QN(_$$0, instname), _$$1, false), ( _5 ) => (Lib_TopContext_addHint(Lib_Common_QN(_$$0, instname)))))), ( _4 ) => { const sc$$24 = Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Elab_collectDecl(eta)), _$$3); if ((sc$$24.tag) == (0)) { const sc$$27 = Lib_Util_funArgs(sc$$13.h2); if ((sc$$27.h2.tag) == (1)) { const sc$$34 = Lib_TopContext_lookup(sc$$27.h2.h1, top); if ((sc$$34.tag) == (0)) { if ((sc$$34.h1.h3.tag) == (1)) { if ((sc$$34.h1.h3.h1.tag) == (1)) { if ((sc$$34.h1.h3.h1.h2.tag) == (0)) { const sc$$49 = Lib_TopContext_lookup(sc$$34.h1.h3.h1.h1, top); return ( (sc$$49.tag) == (0) ? ( (sc$$49.h1.h3.tag) == (2) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), sc$$49.h1.h2), ( $$sc ) => (( ($$sc.tag) == (5) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _5 ) => ((("dcty ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$49.h1.h2))), Prelude_Lin()))) + (""))), ( _5 ) => { const sc$$70 = Lib_Util_funArgs(sc$$13.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _6 ) => ((("traverse ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Types_showTm, sc$$70.h3)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_eval(env, eta)), sc$$70.h3), ( args$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _7 ) => ((("args' is ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, args$27))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS_apply(_$$0, _$$1, _$$2, _$$3, $$sc, args$27), ( appty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields(_$$0, _$$1, _$$2, _$$3, appty, env, Prelude_Nil()), ( conTele ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, conTele, ( $$case ) => { switch ($$case.h2) { case 1: { const ty$27 = Prelude_foldr(( x ) => (( acc ) => (Lib_Types_Pi(x.h0, x.h1, x.h2, x.h3, x.h4, acc))), $$case.h4, sc$$13.h3); const nm$27 = (((("") + (instname)) + (",")) + ($$case.h1)) + (""); const sc$$89 = Prelude_find(( x ) => (( (x.tag) == (1) ? (x.h1) == ($$case.h1) : false )), sc$$24.h1); return ( (sc$$89.tag) == (0) ? ( (sc$$89.h1.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setDef(Lib_Common_QN(_$$0, nm$27), sc$$89.h1.h0, ty$27, Lib_Types_Axiom, Prelude_Nil()), ( _8 ) => { const decl = Lib_Syntax_FunDef(sc$$89.h1.h0, nm$27, sc$$89.h1.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("***")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((((("«") + (nm$27)) + ("» : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), ty$27))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Just(decl)))))))); }) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ); break; } default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } }), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_mapMaybe(( _$$11 ) => (_$$11), defs), ( decl ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _8 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _8 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))), ( _8 ) => { const decl = Lib_Syntax_FunDef(_$$1, instname, Prelude__$3A$3A_(Prelude__$2C_(Lib_Syntax_RVar(_$$1, instname), Prelude_Just(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS(_$$0, _$$1, _$$2, _$$3, instname, conTele, Lib_Syntax_RVar(_$$1, sc$$34.h1.h3.h1.h1.h1)))), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("SIGDECL")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(sigDecl))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))))); }))))))))))))); }) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC($$sc), "dcty not Pi")), eta)))) ))) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ); } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()))) + (" doesn't appear to be a TCon application"))), eta)))); } } else { return Lib_Types_log(2, ( _5 ) => ((("Forward declaration ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow(sigDecl))) + (""))); } }) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0), ( _4 ) => { const sc$$24 = Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Elab_collectDecl(eta)), _$$3); if ((sc$$24.tag) == (0)) { const sc$$27 = Lib_Util_funArgs(sc$$13.h2); if ((sc$$27.h2.tag) == (1)) { const sc$$34 = Lib_TopContext_lookup(sc$$27.h2.h1, top); if ((sc$$34.tag) == (0)) { if ((sc$$34.h1.h3.tag) == (1)) { if ((sc$$34.h1.h3.h1.tag) == (1)) { if ((sc$$34.h1.h3.h1.h2.tag) == (0)) { const sc$$49 = Lib_TopContext_lookup(sc$$34.h1.h3.h1.h1, top); return ( (sc$$49.tag) == (0) ? ( (sc$$49.h1.h3.tag) == (2) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), sc$$49.h1.h2), ( $$sc ) => (( ($$sc.tag) == (5) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _5 ) => ((("dcty ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$49.h1.h2))), Prelude_Lin()))) + (""))), ( _5 ) => { const sc$$70 = Lib_Util_funArgs(sc$$13.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _6 ) => ((("traverse ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Types_showTm, sc$$70.h3)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_eval(env, eta)), sc$$70.h3), ( args$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _7 ) => ((("args' is ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, args$27))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS_apply(_$$0, _$$1, _$$2, _$$3, $$sc, args$27), ( appty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields(_$$0, _$$1, _$$2, _$$3, appty, env, Prelude_Nil()), ( conTele ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, conTele, ( $$case ) => { switch ($$case.h2) { case 1: { const ty$27 = Prelude_foldr(( x ) => (( acc ) => (Lib_Types_Pi(x.h0, x.h1, x.h2, x.h3, x.h4, acc))), $$case.h4, sc$$13.h3); const nm$27 = (((("") + (instname)) + (",")) + ($$case.h1)) + (""); const sc$$89 = Prelude_find(( x ) => (( (x.tag) == (1) ? (x.h1) == ($$case.h1) : false )), sc$$24.h1); return ( (sc$$89.tag) == (0) ? ( (sc$$89.h1.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setDef(Lib_Common_QN(_$$0, nm$27), sc$$89.h1.h0, ty$27, Lib_Types_Axiom, Prelude_Nil()), ( _8 ) => { const decl = Lib_Syntax_FunDef(sc$$89.h1.h0, nm$27, sc$$89.h1.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("***")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((((("«") + (nm$27)) + ("» : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), ty$27))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Just(decl)))))))); }) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ); break; } default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } }), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_mapMaybe(( _$$11 ) => (_$$11), defs), ( decl ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _8 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _8 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))), ( _8 ) => { const decl = Lib_Syntax_FunDef(_$$1, instname, Prelude__$3A$3A_(Prelude__$2C_(Lib_Syntax_RVar(_$$1, instname), Prelude_Just(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS(_$$0, _$$1, _$$2, _$$3, instname, conTele, Lib_Syntax_RVar(_$$1, sc$$34.h1.h3.h1.h1.h1)))), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("SIGDECL")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(sigDecl))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))))); }))))))))))))); }) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC($$sc), "dcty not Pi")), eta)))) ))) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ); } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()))) + (" doesn't appear to be a TCon application"))), eta)))); } } else { return Lib_Types_log(2, ( _5 ) => ((("Forward declaration ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow(sigDecl))) + (""))); } }) ); }))); }); })))))); +const Lib_ProcessDecl_processInstance = ( _$$0, _$$1, _$$2, _$$3 ) => (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 ) => ((("Instance ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Raw$2Cpretty(_$$2))), Prelude_Lin()))) + (""))), ( _1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const tyFC = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Elab_check(Lib_Types_MkCtx(0, Prelude_Nil(), Prelude_Nil(), Prelude_Nil(), _$$1), _$$2, Lib_Types_VU(_$$1)), ( vty ) => { const sc$$13 = Lib_Util_splitTele(vty); const env = Lib_ProcessDecl_processInstance_getFields_tenv(_$$0, _$$1, _$$2, _$$3, Prelude_length(sc$$13.h3)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _2 ) => ((("codomain ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()))) + (""))), ( _2 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _3 ) => ((("tele is ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Util_Prelude_Show$20Lib_Util_Binder, sc$$13.h3))) + (""))), ( _3 ) => { const instname = Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()); const sigDecl = Lib_Syntax_TypeSig(_$$1, Prelude__$3A$3A_(instname, Prelude_Nil()), _$$2); const sc$$23 = Lib_TopContext_lookupRaw(instname, top); return ( (sc$$23.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processDecl(_$$0, sigDecl), ( _4 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setFlag(Lib_Common_QN(_$$0, instname), _$$1, false), ( _5 ) => (Lib_TopContext_addHint(Lib_Common_QN(_$$0, instname)))))), ( _4 ) => { const sc$$24 = Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Elab_collectDecl(eta)), _$$3); if ((sc$$24.tag) == (0)) { const sc$$27 = Lib_Util_funArgs(sc$$13.h2); if ((sc$$27.h2.tag) == (1)) { const sc$$34 = Lib_TopContext_lookup(sc$$27.h2.h1, top); if ((sc$$34.tag) == (0)) { if ((sc$$34.h1.h3.tag) == (1)) { if ((sc$$34.h1.h3.h1.tag) == (1)) { if ((sc$$34.h1.h3.h1.h2.tag) == (0)) { const sc$$49 = Lib_TopContext_lookup(sc$$34.h1.h3.h1.h1, top); return ( (sc$$49.tag) == (0) ? ( (sc$$49.h1.h3.tag) == (2) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), sc$$49.h1.h2), ( $$sc ) => (( ($$sc.tag) == (5) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _5 ) => ((("dcty ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$49.h1.h2))), Prelude_Lin()))) + (""))), ( _5 ) => { const sc$$70 = Lib_Util_funArgs(sc$$13.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _6 ) => ((("traverse ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Types_showTm, sc$$70.h3)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_eval(env, eta)), sc$$70.h3), ( args$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _7 ) => ((("args' is ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, args$27))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS_apply(_$$0, _$$1, _$$2, _$$3, $$sc, args$27), ( appty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields(_$$0, _$$1, _$$2, _$$3, appty, env, Prelude_Nil()), ( conTele ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, conTele, ( $$case ) => { switch ($$case.h2) { case 1: { const ty$27 = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( x ) => (( acc ) => (Lib_Types_Pi(x.h0, x.h1, x.h2, x.h3, x.h4, acc))), $$case.h4, sc$$13.h3); const nm$27 = (((("") + (instname)) + (",")) + ($$case.h1)) + (""); const sc$$89 = Prelude_find(( x ) => (( (x.tag) == (1) ? (x.h1) == ($$case.h1) : false )), sc$$24.h1); return ( (sc$$89.tag) == (0) ? ( (sc$$89.h1.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setDef(Lib_Common_QN(_$$0, nm$27), sc$$89.h1.h0, ty$27, Lib_Types_Axiom, Prelude_Nil()), ( _8 ) => { const decl = Lib_Syntax_FunDef(sc$$89.h1.h0, nm$27, sc$$89.h1.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("***")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((((("«") + (nm$27)) + ("» : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), ty$27))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Just(decl)))))))); }) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ); break; } default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } }), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_mapMaybe(( _$$11 ) => (_$$11), defs), ( decl ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _8 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _8 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))), ( _8 ) => { const decl = Lib_Syntax_FunDef(_$$1, instname, Prelude__$3A$3A_(Prelude__$2C_(Lib_Syntax_RVar(_$$1, instname), Prelude_Just(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS(_$$0, _$$1, _$$2, _$$3, instname, conTele, Lib_Syntax_RVar(_$$1, sc$$34.h1.h3.h1.h1.h1)))), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("SIGDECL")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(sigDecl))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))))); }))))))))))))); }) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC($$sc), "dcty not Pi")), eta)))) ))) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ); } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()))) + (" doesn't appear to be a TCon application"))), eta)))); } } else { return Lib_Types_log(2, ( _5 ) => ((("Forward declaration ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow(sigDecl))) + (""))); } }) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0), ( _4 ) => { const sc$$24 = Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Lib_Elab_collectDecl(eta)), _$$3); if ((sc$$24.tag) == (0)) { const sc$$27 = Lib_Util_funArgs(sc$$13.h2); if ((sc$$27.h2.tag) == (1)) { const sc$$34 = Lib_TopContext_lookup(sc$$27.h2.h1, top); if ((sc$$34.tag) == (0)) { if ((sc$$34.h1.h3.tag) == (1)) { if ((sc$$34.h1.h3.h1.tag) == (1)) { if ((sc$$34.h1.h3.h1.h2.tag) == (0)) { const sc$$49 = Lib_TopContext_lookup(sc$$34.h1.h3.h1.h1, top); return ( (sc$$49.tag) == (0) ? ( (sc$$49.h1.h3.tag) == (2) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(Prelude_Nil(), sc$$49.h1.h2), ( $$sc ) => (( ($$sc.tag) == (5) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _5 ) => ((("dcty ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$49.h1.h2))), Prelude_Lin()))) + (""))), ( _5 ) => { const sc$$70 = Lib_Util_funArgs(sc$$13.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _6 ) => ((("traverse ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, Prelude_Prelude_Functor$20Prelude_List$2Cmap(Lib_Types_showTm, sc$$70.h3)))) + (""))), ( _6 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_eval(env, eta)), sc$$70.h3), ( args$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _7 ) => ((("args' is ") + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, args$27))) + (""))), ( _7 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS_apply(_$$0, _$$1, _$$2, _$$3, $$sc, args$27), ( appty ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_ProcessDecl_processInstance_getFields(_$$0, _$$1, _$$2, _$$3, appty, env, Prelude_Nil()), ( conTele ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, conTele, ( $$case ) => { switch ($$case.h2) { case 1: { const ty$27 = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( x ) => (( acc ) => (Lib_Types_Pi(x.h0, x.h1, x.h2, x.h3, x.h4, acc))), $$case.h4, sc$$13.h3); const nm$27 = (((("") + (instname)) + (",")) + ($$case.h1)) + (""); const sc$$89 = Prelude_find(( x ) => (( (x.tag) == (1) ? (x.h1) == ($$case.h1) : false )), sc$$24.h1); return ( (sc$$89.tag) == (0) ? ( (sc$$89.h1.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TopContext_setDef(Lib_Common_QN(_$$0, nm$27), sc$$89.h1.h0, ty$27, Lib_Types_Axiom, Prelude_Nil()), ( _8 ) => { const decl = Lib_Syntax_FunDef(sc$$89.h1.h0, nm$27, sc$$89.h1.h2); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("***")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((((("«") + (nm$27)) + ("» : ")) + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), ty$27))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Just(decl)))))))); }) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ) : Lib_Types_MkM(( _8 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1, (("no definition for ") + ($$case.h1)) + (""))), eta)))) ); break; } default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Nothing()); } }), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_mapMaybe(( _$$11 ) => (_$$11), defs), ( decl ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _8 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _8 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))), ( _8 ) => { const decl = Lib_Syntax_FunDef(_$$1, instname, Prelude__$3A$3A_(Prelude__$2C_(Lib_Syntax_RVar(_$$1, instname), Prelude_Just(Lib_ProcessDecl_processInstance_getFields_tenv_mkRHS(_$$0, _$$1, _$$2, _$$3, instname, conTele, Lib_Syntax_RVar(_$$1, sc$$34.h1.h3.h1.h1.h1)))), Prelude_Nil())); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _9 ) => ("SIGDECL")), ( _9 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _10 ) => ((("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(sigDecl))), Prelude_Lin()))) + (""))), ( _10 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(1, ( _11 ) => (Lib_Prettier_layout(Lib_Prettier_best(80, 0, Lib_Prettier_noAlt(Lib_Syntax_Lib_Prettier_Pretty$20Lib_Syntax_Decl$2Cpretty(decl))), Prelude_Lin()))), ( _11 ) => (Lib_ProcessDecl_processDecl(_$$0, decl))))))); }))))))))))))); }) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_getValFC($$sc), "dcty not Pi")), eta)))) ))) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ) : Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("can't find constructor ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$34.h1.h3.h1.h1))) + (""))), eta)))) ); } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (((("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" has multiple constructors ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Common_Prelude_Show$20Lib_Common_QName, sc$$34.h1.h3.h1))) + (""))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$27.h2.h1))) + (" is not a type constructor"))), eta)))); } } else { return Lib_Types_MkM(( _5 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(tyFC, (("") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$13.h2))), Prelude_Lin()))) + (" doesn't appear to be a TCon application"))), eta)))); } } else { return Lib_Types_log(2, ( _5 ) => ((("Forward declaration ") + (Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow(sigDecl))) + (""))); } }) ); }))); }); })))))); const Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case 10: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Record", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(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(Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, eta))), _$$0.h2), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, _$$0.h3), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl, _$$0.h4), Prelude_Nil()))))))) + (")")); case 9: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Instance", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(( eta ) => (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl, eta)), _$$0.h2)), Prelude_Nil()))))) + (")")); case 8: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Class", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_("...", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow(eta)), _$$0.h3)), Prelude_Nil())))))) + (")")); case 7: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("PMixFix", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, _$$0.h1), Prelude__$3A$3A_(Prelude_showInt(_$$0.h2), Prelude__$3A$3A_(Lib_Common_Prelude_Show$20Lib_Common_Fixity$2Cshow(_$$0.h3), Prelude_Nil())))))) + (")")); case 6: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("PFunc", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, _$$0.h2), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h3), Prelude__$3A$3A_(_$$0.h4, Prelude_Nil()))))))) + (")")); case 5: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("PType", Prelude__$3A$3A_(_$$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 4: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("ShortData", Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h1), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, _$$0.h2), Prelude_Nil()))))) + (")")); case 3: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("Data", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl, _$$0.h3), Prelude_Nil())))))) + (")")); case 2: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("DCheck", 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 1: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("FunDef", Prelude__$3A$3A_(_$$0.h1, Prelude__$3A$3A_(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(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, Prelude_MkShow(( eta ) => (Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29$2Cshow(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, eta))), eta))), _$$0.h2), Prelude_Nil()))))) + (")")); case 0: return ("(") + ((Prelude_joinBy(" ", Prelude__$3A$3A_("TypeSig", Prelude__$3A$3A_(Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Prelude_Prelude_Show$20Prim_String, _$$0.h1), Prelude__$3A$3A_(Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow(_$$0.h2), Prelude_Nil()))))) + (")")); } }; const Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl = Prelude_MkShow(( eta ) => (Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow(eta))); const Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo = Prelude_MkShow(( eta ) => (Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo$2Cshow(eta))); @@ -633,8 +635,8 @@ 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 ) => { 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_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_Prelude_Foldable$20Prelude_List$2Cfoldl(( 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_Prelude_Foldable$20Prelude_List$2Cfoldr(( 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_Prelude_Foldable$20Prelude_List$2Cfoldl(( 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_Prelude_Foldable$20Prelude_List$2Cfoldl(( 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() }; } }; @@ -699,8 +701,8 @@ const Lib_Parser_term_apply = ( _$$1, _$$2 ) => { if ((_$$2.tag) == (1)) { const const Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_ = ( _$$0, _$$1 ) => { let a$27; const sc$$2 = (Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$0.h0, _$$1.h0), 0)) || (((_$$0.h0) == (_$$1.h0)) && (Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$0.h1, _$$1.h1), 0))); switch (sc$$2) { case true: { a$27 = _$$0; break; } case false: { a$27 = _$$1; break; } } let b$27; const sc$$3 = (Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$0.h2, _$$1.h2), 0)) || (((_$$0.h2) == (_$$1.h2)) && (Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$0.h3, _$$1.h3), 0))); switch (sc$$3) { case true: { b$27 = _$$1; break; } case false: { b$27 = _$$0; break; } } return Lib_Common_MkBounds(a$27.h0, a$27.h1, b$27.h2, b$27.h3); }; const Lib_Parser_Impl_fail = ( _$$1 ) => (Lib_Parser_Impl_P(( last ) => (( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_Fail(Lib_Parser_Impl_perror(col.h0, toks, _$$1), last, toks, com, ops)))))))); const Lib_Parser_pratt = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix(_$$0, _$$1, _$$2, _$$3, _$$4, _$$2, _$$3, _$$4), ( $$sc ) => { const sc$$15 = Lib_Parser_pratt_projectHead(_$$0, _$$1, _$$2, _$$3, _$$4, $$sc.h2, $$sc.h3); const spine = Lib_Parser_pratt_projectHead_runProject(_$$0, _$$1, _$$2, _$$3, _$$4, sc$$15.h3); if ((spine.tag) == (1)) { switch (spine.h1.h2) { case 1: { if ((spine.h1.h3.h3.tag) == (0)) { const sc$$35 = (spine.h1.h3.h3.h1) == (_$$2); switch (sc$$35) { case true: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(sc$$15.h2, spine)); case false: { const sc$$36 = Data_SortedMap_lookupMap$27(spine.h1.h3.h3.h1, _$$0); if ((sc$$36.tag) == (1)) { const sc$$38 = Prelude_isPrefixOf(".", spine.h1.h3.h3.h1); switch (sc$$38) { case true: { const _sc$$10 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(spine.h1.h3.h3); const _sc$$11 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2); return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$11.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$11.h1, _sc$$10.h1)), spine.h1.h3.h3, sc$$15.h2, 1), spine.h2); break; } case false: { const _sc$$10 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(spine.h1.h3.h3); const _sc$$11 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2); return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$11.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$11.h1, _sc$$10.h1)), sc$$15.h2, spine.h1.h3.h3, 1), spine.h2); break; } } } else { switch (sc$$36.h1.h3) { case true: return Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix(_$$0, _$$1, _$$2, _$$3, _$$4, _$$2, spine.h1.h3.h3, spine.h2), ( $$sc1 ) => { const _sc$$15 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc1.h2); const _sc$$16 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2); return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$16.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$16.h1, _sc$$15.h1)), sc$$15.h2, $$sc1.h2, 1), $$sc1.h3); }); case false: { const sc$$44 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$36.h1.h1, _$$1), 0); switch (sc$$44) { case true: return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(sc$$15.h2, spine)); case false: { const _sc$$22 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2); return Lib_Parser_pratt_projectHead_runProject_runRule(_$$0, _$$1, _$$2, _$$3, _$$4, sc$$36.h1.h1, sc$$36.h1.h2, _$$2, sc$$36.h1.h4, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$22.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$22.h1, spine.h1.h3.h2.h1)), Lib_Syntax_RVar(spine.h1.h3.h2, sc$$36.h1.h0), sc$$15.h2, 1), spine.h2); break; } } break; } } } break; } } } else { const _sc$$10 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(spine.h1.h3.h3); const _sc$$11 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2); return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$11.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$11.h1, _sc$$10.h1)), sc$$15.h2, spine.h1.h3.h3, spine.h1.h2), spine.h2); } break; } default: { const _sc$$9 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(spine.h1.h3.h3); const _sc$$10 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(sc$$15.h2); return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$10.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$10.h1, _sc$$9.h1)), sc$$15.h2, spine.h1.h3.h3, spine.h1.h2), spine.h2); break; } } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(sc$$15.h2, Prelude_Nil())); } })); -const Lib_Parser_pratt_projectHead_runProject_runRule = ( _, _1, _2, _3, _4, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { if ((_$$11.tag) == (1)) { switch (_$$11.h1) { case "": { if ((_$$11.h2.tag) == (0)) { let pr; switch (_$$9) { case 1: { pr = _$$8; break; } default: { pr = (_$$8) + (1); break; } } return ( (_$$13.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt(_, pr, _$$10, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { const _sc$$10 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc.h2); const _sc$$11 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12); return Lib_Parser_pratt(_, _1, _$$10, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$11.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$11.h1, _sc$$10.h1)), _$$12, $$sc.h2, 1), $$sc.h3); }) : Lib_Parser_Impl_fail("trailing operator") ); } else { return ( (_$$13.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { if (($$sc.h3.tag) == (1)) { if (($$sc.h3.h1.h3.h3.tag) == (0)) { const sc$$49 = ($$sc.h3.h1.h3.h3.h1) == (_$$11.h1); switch (sc$$49) { case true: { const _sc$$23 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc.h2); const _sc$$24 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12); return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$24.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$24.h1, _sc$$23.h1)), _$$12, $$sc.h2, 1), $$sc.h3.h2); break; } case false: return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } }) : Lib_Parser_Impl_fail("short") ); } break; } default: return ( (_$$13.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { if (($$sc.h3.tag) == (1)) { if (($$sc.h3.h1.h3.h3.tag) == (0)) { const sc$$49 = ($$sc.h3.h1.h3.h3.h1) == (_$$11.h1); switch (sc$$49) { case true: { const _sc$$22 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc.h2); const _sc$$23 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12); return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$23.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$23.h1, _sc$$22.h1)), _$$12, $$sc.h2, 1), $$sc.h3.h2); break; } case false: return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } }) : Lib_Parser_Impl_fail("short") ); } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(_$$12, _$$13)); } }; -const Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix = ( _, _1, _2, _3, _4, _$$9, _$$10, _$$11 ) => { if ((_$$10.tag) == (0)) { const sc$$14 = Data_SortedMap_lookupMap$27(_$$10.h1, _); if ((sc$$14.tag) == (0)) { switch (sc$$14.h1.h3) { case true: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, sc$$14.h1.h1, sc$$14.h1.h2, _$$9, sc$$14.h1.h4, Lib_Syntax_RVar(_$$10.h0, sc$$14.h1.h0), _$$11); case false: return Lib_Parser_Impl_fail((("got infix ") + (sc$$14.h1.h0)) + (" in prefix position")); } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(_3, _$$11)); } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(_$$10, _$$11)); } }; +const Lib_Parser_pratt_projectHead_runProject_runRule = ( _, _1, _2, _3, _4, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { if ((_$$11.tag) == (1)) { switch (_$$11.h1) { case "": { if ((_$$11.h2.tag) == (0)) { let pr; switch (_$$9) { case 1: { pr = _$$8; break; } default: { pr = (_$$8) + (1); break; } } return ( (_$$13.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt(_, pr, _$$10, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { const _sc$$10 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc.h2); const _sc$$11 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12); return Lib_Parser_pratt(_, _1, _$$10, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$11.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$11.h1, _sc$$10.h1)), _$$12, $$sc.h2, 1), $$sc.h3); }) : Lib_Parser_pratt(_, _1, _$$10, _$$12, Prelude_Nil()) ); } else { return ( (_$$13.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { if (($$sc.h3.tag) == (1)) { if (($$sc.h3.h1.h3.h3.tag) == (0)) { const sc$$49 = ($$sc.h3.h1.h3.h3.h1) == (_$$11.h1); switch (sc$$49) { case true: { const _sc$$23 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc.h2); const _sc$$24 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12); return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$24.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$24.h1, _sc$$23.h1)), _$$12, $$sc.h2, 1), $$sc.h3.h2); break; } case false: return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } }) : Lib_Parser_Impl_fail("short") ); } break; } default: return ( (_$$13.tag) == (1) ? Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_pratt(_, 0, _$$11.h1, _$$13.h1.h3.h3, _$$13.h2), ( $$sc ) => { if (($$sc.h3.tag) == (1)) { if (($$sc.h3.h1.h3.h3.tag) == (0)) { const sc$$49 = ($$sc.h3.h1.h3.h3.h1) == (_$$11.h1); switch (sc$$49) { case true: { const _sc$$22 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC($$sc.h2); const _sc$$23 = Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(_$$12); return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Common_MkFC(_sc$$23.h0, Lib_Common_Prelude_Add$20Lib_Common_Bounds$2C_$2B_(_sc$$23.h1, _sc$$22.h1)), _$$12, $$sc.h2, 1), $$sc.h3.h2); break; } case false: return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } } else { return Lib_Parser_Impl_fail((("expected ") + (_$$11.h1)) + ("")); } }) : Lib_Parser_Impl_fail("short") ); } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(_$$12, _$$13)); } }; +const Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix = ( _, _1, _2, _3, _4, _$$9, _$$10, _$$11 ) => { if ((_$$10.tag) == (0)) { const sc$$14 = Data_SortedMap_lookupMap$27(_$$10.h1, _); if ((sc$$14.tag) == (0)) { switch (sc$$14.h1.h3) { case true: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, sc$$14.h1.h1, sc$$14.h1.h2, _$$9, sc$$14.h1.h4, Lib_Syntax_RVar(_$$10.h0, sc$$14.h1.h0), _$$11); case false: return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, sc$$14.h1.h1, sc$$14.h1.h2, _$$9, sc$$14.h1.h4, Lib_Syntax_RApp(_$$10.h0, Lib_Syntax_RVar(_$$10.h0, "flip"), Lib_Syntax_RVar(_$$10.h0, sc$$14.h1.h0), 1), _$$11); } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(_3, _$$11)); } } else { return Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(_$$10, _$$11)); } }; const Prelude_True = true; const Prelude_False = false; const Prelude_isPrefixOf = (pfx, s) => s.startsWith(pfx) ? Prelude_True : Prelude_False; @@ -736,11 +738,11 @@ const Lib_Parser_pLamArg_impArg_autoArg = ( ) => (Lib_Parser_Impl_Prelude_Monad const Lib_Parser_pLamArg_impArg = ( ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_braces(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ident, Lib_Parser_uident)), ( nm ) => (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(":")), ( _ ) => (Lib_Parser_typeExpr))), ( ty ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(0, Prelude__$2C_(nm, ty)))))))); const Lib_Parser_pLamArg = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_pLamArg_impArg(), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_pLamArg_impArg_autoArg(), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_pLamArg_impArg_autoArg_expArg(), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( x ) => (Prelude__$2C_(1, Prelude__$2C_(x, Prelude_Nothing()))), Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ident, Lib_Parser_uident)), 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_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(1, Prelude__$2C_("_", Prelude_Nothing())))))))); const Lib_Parser_addPos = ( _$$1 ) => (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__$2C_(eta, eta1))), Lib_Parser_Impl_getPos), _$$1)); -const Lib_Parser_lamExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( pos ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("λ"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_some(Lib_Parser_addPos(Lib_Parser_pLamArg)), ( args ) => (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_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_foldr(( eta ) => (( eta1 ) => (Lib_Parser_lamExpr_mkLam(eta, eta1))), scope, args)))))))))))); +const Lib_Parser_lamExpr = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_getPos, ( pos ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("λ"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_some(Lib_Parser_addPos(Lib_Parser_pLamArg)), ( args ) => (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_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( eta ) => (( eta1 ) => (Lib_Parser_lamExpr_mkLam(eta, eta1))), scope, args)))))))))))); const Lib_Parser_caseLamExpr = 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(Prelude__$2A$3E_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("\\")), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("λ"))), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("case")))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_startBlock(Lib_Parser_Impl_some(Lib_Parser_Impl_sameLevel(Lib_Parser_caseAlt))), ( alts ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RLam(fc, Lib_Types_BI(fc, "$case", 1, true), Lib_Syntax_RCase(fc, Lib_Syntax_RVar(fc, "$case"), Prelude_Nothing(), alts))))))))); const Lib_Parser_letExpr_mkLet = ( _$$1, _$$2 ) => (Lib_Syntax_RLet(_$$2.h3.h2, _$$2.h2, Prelude_fromMaybe(Lib_Syntax_RImplicit(_$$2.h3.h2), _$$2.h3.h3.h2), _$$2.h3.h3.h3, _$$1)); const Lib_Parser_letExpr_mkLet_letAssign = ( ) => (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, ( name ) => (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_typeExpr)), ( ty ) => (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_typeExpr, ( t ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$2C_(name, Prelude__$2C_(fc, Prelude__$2C_(ty, t))))))))))))))); -const Lib_Parser_letExpr = 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_Impl_startBlock(Lib_Parser_Impl_some(Lib_Parser_Impl_sameLevel(Lib_Parser_letExpr_mkLet_letAssign()))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_keyword$27("in"), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Parser_letExpr_mkLet(eta, eta1))), scope, Prelude_reverse()(alts))))))))))); +const Lib_Parser_letExpr = 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_Impl_startBlock(Lib_Parser_Impl_some(Lib_Parser_Impl_sameLevel(Lib_Parser_letExpr_mkLet_letAssign()))), ( alts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_keyword$27("in"), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Parser_letExpr_mkLet(eta, eta1))), scope, Prelude_reverse()(alts))))))))))); const Lib_Parser_caseLet = 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_indented(Lib_Parser_Impl_keyword$27("in")), ( _3 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( body ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RCase(fc, sc, Prelude_Nothing(), Prelude__$3A$3A_(Lib_Syntax_MkAlt(pat, Prelude_Just(body)), alts))))))))))))))))))))); const Lib_Parser_caseExpr = 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("case")), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( sc ) => (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_typeExpr)), ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("of")), ( _1 ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_startBlock(Lib_Parser_Impl_some(Lib_Parser_Impl_sameLevel(Lib_Parser_caseAlt))), ( alts ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RCase(fc, sc, ty, alts)))))))))))))); const Prelude__$3C$$_ = ( _$$3, _$$4, _$$5 ) => (Prelude_map(_$$3)(null)(null)(( _$$31 ) => (_$$4))(_$$5)); @@ -755,7 +757,7 @@ const Lib_Parser_charLit = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parse 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); }; const Lib_Parser_interp = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(19)), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( tm ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(20)), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(tm))))))); -const Lib_Parser_interpString = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( _$$3 ) => (0), Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(17))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( part ) => (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_stringLit, Lib_Parser_interp)), ( parts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( _$$3 ) => (0), Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(18))), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Parser_interpString_append(eta, eta1))), part, parts)))))))))); +const Lib_Parser_interpString = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( _$$3 ) => (0), Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(17))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term, ( part ) => (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_stringLit, Lib_Parser_interp)), ( parts ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( _$$3 ) => (0), Lib_Parser_Impl_indented(Lib_Parser_Impl_token$27(18))), ( _1 ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Parser_interpString_append(eta, eta1))), part, parts)))))))))); const Prelude_stringToInt = (s) => { let rval = Number(s) if (isNaN(rval)) throw new Error(s + " is NaN") @@ -772,7 +774,7 @@ const Lib_Parser_term$27 = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl const Lib_Parser_term = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_term$27, ( t ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_many(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$3E_(Prelude__$3C$2A_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (( eta1 ) => (Prelude__$2C_(eta, eta1))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("$"))), Lib_Parser_term$27)), ( rest ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Parser_term_apply(t, rest)))))); const Lib_Parser_forAll_mkPi = ( _$$1, _$$2 ) => (Lib_Syntax_RPi(_$$1.h2, Lib_Types_BI(_$$1.h2, _$$1.h3, 0, false), Lib_Syntax_RImplicit(_$$1.h2), _$$2)); const Lib_Parser_varname = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ident, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_uident, 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_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn("_")))); -const Lib_Parser_forAll = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("forall")), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("∀"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_some(Lib_Parser_addPos(Lib_Parser_varname)), ( all ) => (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_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_foldr(( eta ) => (( eta1 ) => (Lib_Parser_forAll_mkPi(eta, eta1))), scope, all)))))))))); +const Lib_Parser_forAll = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("forall")), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("∀"))), ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_some(Lib_Parser_addPos(Lib_Parser_varname)), ( all ) => (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_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( eta ) => (( eta1 ) => (Lib_Parser_forAll_mkPi(eta, eta1))), scope, all)))))))))); const Lib_Parser_binders_mkBind = ( _$$1, _$$2 ) => (Lib_Syntax_RPi(_$$1.h2.h0, _$$1.h2, _$$1.h3, _$$2)); const Lib_Parser_ebind_makeBind = ( _$$1, _$$2, _$$3 ) => (Prelude__$2C_(Lib_Types_BI(_$$3.h2, _$$3.h3, 1, _$$1), _$$2)); const Lib_Parser_quantity = Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser$2Cmap(( eta ) => (Prelude_fromMaybe(true, eta)), Lib_Parser_optional(Prelude__$3C$$_(Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, false, Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("0"))))); @@ -780,7 +782,7 @@ const Lib_Parser_ebind = Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$ const Lib_Parser_ibind_makeBind = ( _$$1, _$$2, _$$3 ) => (Prelude__$2C_(Lib_Types_BI(_$$3.h2, _$$3.h3, 0, _$$1), Prelude_fromMaybe(Lib_Syntax_RImplicit(_$$3.h2), _$$2))); const Lib_Parser_ibind = 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_quantity, ( quant ) => (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_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_typeExpr)), ( ty ) => (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(Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Parser_ibind_makeBind(quant, ty, eta)), $$sc)))))))))))); const Lib_Parser_abind = 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_optional(Lib_Parser_Impl_try(Prelude__$3C$2A_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_addPos(Lib_Parser_varname), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27(":"))))), ( name ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( ty ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27("}}")), ( _1 ) => (( (name.tag) == (1) ? Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$3A$3A_(Prelude__$2C_(Lib_Types_BI(Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw$2CgetFC(ty), "_", 2, true), ty), Prelude_Nil())) : Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude__$3A$3A_(Prelude__$2C_(Lib_Types_BI(name.h1.h2, name.h1.h3, 2, true), ty), Prelude_Nil())) ))))))))); -const Lib_Parser_binders = 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_abind, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ibind, Lib_Parser_ebind))), ( binds ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_arrow, ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_foldr(( eta ) => (( eta1 ) => (Lib_Parser_binders_mkBind(eta, eta1))), scope, Prelude_Prelude_Monad$20Prelude_List$2Cbind(binds, ( _$$1 ) => (_$$1)))))))))); +const Lib_Parser_binders = 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_abind, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ibind, Lib_Parser_ebind))), ( binds ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_arrow, ( _ ) => (Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser$2Cbind(Lib_Parser_typeExpr, ( scope ) => (Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldr(( eta ) => (( eta1 ) => (Lib_Parser_binders_mkBind(eta, eta1))), scope, Prelude_Prelude_Monad$20Prelude_List$2Cbind(binds, ( _$$1 ) => (_$$1)))))))))); const Lib_Parser_typeExpr = Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_binders, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_forAll, 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_term, ( exp ) => (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_arrow, Lib_Parser_typeExpr)), ( scope ) => (( (scope.tag) == (1) ? Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(exp) : Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2Creturn(Lib_Syntax_RPi(fc, Lib_Types_BI(fc, "_", 1, true), exp, scope.h1)) ))))))))); const Lib_Parser_parseSig = Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser$2C_$3C$2A$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 ) => (( eta2 ) => (Lib_Syntax_TypeSig(eta, eta1, eta2)))), Lib_Parser_Impl_getPos), Lib_Parser_Impl_try(Prelude__$3C$2A_(Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_some(Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser$2C_$3C$7C$3E_(Lib_Parser_ident, 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(12))))), Lib_Parser_Impl_indented(Lib_Parser_Impl_keyword$27(":"))))), Lib_Parser_typeExpr); const Lib_Parser_getName = ( _$$0 ) => (bouncer(Lib_Parser_REC_getName, { tag: 1, h0: _$$0 })); @@ -819,7 +821,7 @@ const Lib_Parser_Impl_partialParse = ( _$$1, _$$2, _$$3, _$$4 ) => { const sc$$5 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.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 Lib_Common_Prelude_Ord$20Lib_Common_QName = Prelude_MkOrd(( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))); -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 = ( _$$2, _$$3 ) => (Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( 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) => { let fs = require('fs') @@ -884,6 +886,16 @@ 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)))), Prelude_Nil())); +const Main_invalidateModule = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( tc ) => (Lib_Types_putTop(Lib_Types_MkTop(Data_SortedMap_deleteMap(Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(_$$0.h0, Prelude__$3A$3A_(_$$0.h1, Prelude_Nil())), tc.h0), tc.h1, tc.h2, tc.h3, tc.h4, tc.h5, tc.h6, tc.h7, tc.h8))))); +const Data_SortedMap_deleteMap = ( _$$2, _$$3 ) => { if ((_$$3.tag) == (1)) { switch (_$$3.h2) { case 0: { const sc$$9 = Data_SortedMap_deleteT23(_$$3.h3, 0, _$$2, _$$3.h4); return ( (sc$$9.tag) == (1) ? Data_SortedMap_EmptyMap(_$$3.h3) : Data_SortedMap_MapOf(0, _$$3.h3, sc$$9.h2) ); break; } default: { const x = (_$$3.h2) - (1); const sc$$10 = Data_SortedMap_deleteT23(_$$3.h3, (1) + (x), _$$2, _$$3.h4); return ( (sc$$10.tag) == (1) ? Data_SortedMap_MapOf(x, _$$3.h3, sc$$10.h2) : Data_SortedMap_MapOf((1) + (x), _$$3.h3, sc$$10.h2) ); break; } } } else { return _$$3; } }; +const Data_SortedMap_deleteT23 = ( _$$2, h$$3, _$$4, _$$5 ) => { switch (_$$5.tag) { case 2: switch (h$$3.tag) { default: { const x = (h$$3) - (1); switch (x) { case 0: { const sc$$15 = _$$2(_$$4)(_$$5.h4); switch (sc$$15) { case 2: { const sc$$16 = _$$2(_$$4)(_$$5.h6); switch (sc$$16) { case 2: { const sc$$17 = Data_SortedMap_deleteT23(_$$2, 0, _$$4, _$$5.h7); return ( (sc$$17.tag) == (1) ? Prelude_Left(Data_SortedMap_Node2(_$$5.h3, _$$5.h4, _$$5.h5)) : Prelude_Left(Data_SortedMap_Node3(_$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, sc$$17.h2)) ); break; } default: { const sc$$17 = Data_SortedMap_deleteT23(_$$2, 0, _$$4, _$$5.h5); return ( (sc$$17.tag) == (1) ? Prelude_Left(Data_SortedMap_Node2(_$$5.h3, _$$5.h4, _$$5.h7)) : Prelude_Left(Data_SortedMap_Node3(_$$5.h3, _$$5.h4, sc$$17.h2, _$$5.h6, _$$5.h7)) ); break; } } break; } default: { const sc$$16 = Data_SortedMap_deleteT23(_$$2, 0, _$$4, _$$5.h3); if ((sc$$16.tag) == (1)) { switch (sc$$16.h2) { case 0: return Prelude_Left(Data_SortedMap_Node2(_$$5.h5, _$$5.h6, _$$5.h7)); } } else { return Prelude_Left(Data_SortedMap_Node3(sc$$16.h2, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7)); } break; } } break; } default: { const x1 = (x) - (1); const sc$$16 = _$$2(_$$4)(_$$5.h4); switch (sc$$16) { case 2: { const sc$$17 = _$$2(_$$4)(_$$5.h6); switch (sc$$17) { case 2: { const sc$$18 = Data_SortedMap_deleteT23(_$$2, (1) + (x1), _$$4, _$$5.h7); return ( (sc$$18.tag) == (1) ? Prelude_Left(Data_SortedMap_merge3(_$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, sc$$18.h2)) : Prelude_Left(Data_SortedMap_Node3(_$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, sc$$18.h2)) ); break; } default: { const sc$$18 = Data_SortedMap_deleteT23(_$$2, (1) + (x1), _$$4, _$$5.h5); return ( (sc$$18.tag) == (1) ? Prelude_Left(Data_SortedMap_merge2(_$$5.h3, _$$5.h4, sc$$18.h2, _$$5.h6, _$$5.h7)) : Prelude_Left(Data_SortedMap_Node3(_$$5.h3, _$$5.h4, sc$$18.h2, _$$5.h6, _$$5.h7)) ); break; } } break; } default: { const sc$$17 = Data_SortedMap_deleteT23(_$$2, (1) + (x1), _$$4, _$$5.h3); return ( (sc$$17.tag) == (1) ? Prelude_Left(Data_SortedMap_merge1(sc$$17.h2, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7)) : Prelude_Left(Data_SortedMap_Node3(sc$$17.h2, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7)) ); break; } } break; } } break; } } break; case 1: switch (h$$3.tag) { default: { const x = (h$$3) - (1); switch (x) { case 0: { const sc$$13 = _$$2(_$$4)(_$$5.h4); switch (sc$$13) { case 2: { const sc$$14 = Data_SortedMap_deleteT23(_$$2, 0, _$$4, _$$5.h5); if ((sc$$14.tag) == (1)) { switch (sc$$14.h2) { case 0: return Prelude_Right(_$$5.h3); } } else { return Prelude_Left(Data_SortedMap_Node2(_$$5.h3, _$$5.h4, sc$$14.h2)); } break; } default: { const sc$$14 = Data_SortedMap_deleteT23(_$$2, 0, _$$4, _$$5.h3); return ( (sc$$14.tag) == (1) ? Prelude_Right(_$$5.h5) : Prelude_Left(Data_SortedMap_Node2(sc$$14.h2, _$$5.h4, _$$5.h5)) ); break; } } break; } default: { const x1 = (x) - (1); const sc$$14 = _$$2(_$$4)(_$$5.h4); switch (sc$$14) { case 2: { const sc$$15 = Data_SortedMap_deleteT23(_$$2, (1) + (x1), _$$4, _$$5.h5); return ( (sc$$15.tag) == (1) ? ( (_$$5.h3.tag) == (2) ? Prelude_Left(Data_SortedMap_Node4(_$$5.h3.h3, _$$5.h3.h4, _$$5.h3.h5, _$$5.h3.h6, _$$5.h3.h7, _$$5.h4, sc$$15.h2)) : Prelude_Right(Data_SortedMap_Node3(_$$5.h3.h3, _$$5.h3.h4, _$$5.h3.h5, _$$5.h4, sc$$15.h2)) ) : Prelude_Left(Data_SortedMap_Node2(_$$5.h3, _$$5.h4, sc$$15.h2)) ); break; } default: { const sc$$15 = Data_SortedMap_deleteT23(_$$2, (1) + (x1), _$$4, _$$5.h3); return ( (sc$$15.tag) == (1) ? ( (_$$5.h5.tag) == (2) ? Prelude_Left(Data_SortedMap_Node4(sc$$15.h2, _$$5.h4, _$$5.h5.h3, _$$5.h5.h4, _$$5.h5.h5, _$$5.h5.h6, _$$5.h5.h7)) : Prelude_Right(Data_SortedMap_Node3(sc$$15.h2, _$$5.h4, _$$5.h5.h3, _$$5.h5.h4, _$$5.h5.h5)) ) : Prelude_Left(Data_SortedMap_Node2(sc$$15.h2, _$$5.h4, _$$5.h5)) ); break; } } break; } } break; } } break; case 0: switch (h$$3) { case 0: { const sc$$10 = _$$2(_$$5.h2)(_$$4); switch (sc$$10) { case 1: return Prelude_Right(0); default: return Prelude_Left(Data_SortedMap_Leaf(_$$5.h2, _$$5.h3)); } break; } } break; } }; +const Data_SortedMap_Node4 = ( _$$3, _$$4, _$$5, _$$6, _$$7, _$$8, _$$9 ) => (Data_SortedMap_Node2(Data_SortedMap_Node2(_$$3, _$$4, _$$5), _$$6, Data_SortedMap_Node2(_$$7, _$$8, _$$9))); +const Data_SortedMap_merge1 = ( _$$3, _$$4, _$$5, _$$6, _$$7 ) => (( (_$$7.tag) == (2) ? ( (_$$5.tag) == (2) ? Data_SortedMap_Node7(_$$3, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7, _$$6, _$$7.h3, _$$7.h4, _$$7.h5, _$$7.h6, _$$7.h7) : Data_SortedMap_Node6(_$$3, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$6, _$$7.h3, _$$7.h4, _$$7.h5, _$$7.h6, _$$7.h7) ) : ( (_$$5.tag) == (2) ? Data_SortedMap_Node6(_$$3, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7, _$$6, _$$7.h3, _$$7.h4, _$$7.h5) : Data_SortedMap_Node5(_$$3, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$6, _$$7.h3, _$$7.h4, _$$7.h5) ) )); +const Data_SortedMap_Node5 = ( _$$3, _$$4, _$$5, _$$6, _$$7, _$$8, _$$9, _$$10, _$$11 ) => (Data_SortedMap_Node2(Data_SortedMap_Node2(_$$3, _$$4, _$$5), _$$6, Data_SortedMap_Node3(_$$7, _$$8, _$$9, _$$10, _$$11))); +const Data_SortedMap_Node6 = ( _$$3, _$$4, _$$5, _$$6, _$$7, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => (Data_SortedMap_Node2(Data_SortedMap_Node3(_$$3, _$$4, _$$5, _$$6, _$$7), _$$8, Data_SortedMap_Node3(_$$9, _$$10, _$$11, _$$12, _$$13))); +const Data_SortedMap_Node7 = ( _$$3, _$$4, _$$5, _$$6, _$$7, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13, _$$14, _$$15 ) => (Data_SortedMap_Node3(Data_SortedMap_Node3(_$$3, _$$4, _$$5, _$$6, _$$7), _$$8, Data_SortedMap_Node2(_$$9, _$$10, _$$11), _$$12, Data_SortedMap_Node2(_$$13, _$$14, _$$15))); +const Data_SortedMap_merge2 = ( _$$3, _$$4, _$$5, _$$6, _$$7 ) => (( (_$$7.tag) == (2) ? ( (_$$3.tag) == (2) ? Data_SortedMap_Node7(_$$3.h3, _$$3.h4, _$$3.h5, _$$3.h6, _$$3.h7, _$$4, _$$5, _$$6, _$$7.h3, _$$7.h4, _$$7.h5, _$$7.h6, _$$7.h7) : Data_SortedMap_Node6(_$$3.h3, _$$3.h4, _$$3.h5, _$$4, _$$5, _$$6, _$$7.h3, _$$7.h4, _$$7.h5, _$$7.h6, _$$7.h7) ) : ( (_$$3.tag) == (2) ? Data_SortedMap_Node6(_$$3.h3, _$$3.h4, _$$3.h5, _$$3.h6, _$$3.h7, _$$4, _$$5, _$$6, _$$7.h3, _$$7.h4, _$$7.h5) : Data_SortedMap_Node5(_$$3.h3, _$$3.h4, _$$3.h5, _$$4, _$$5, _$$6, _$$7.h3, _$$7.h4, _$$7.h5) ) )); +const Data_SortedMap_merge3 = ( _$$3, _$$4, _$$5, _$$6, _$$7 ) => (( (_$$5.tag) == (2) ? ( (_$$3.tag) == (2) ? Data_SortedMap_Node7(_$$3.h3, _$$3.h4, _$$3.h5, _$$3.h6, _$$3.h7, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7, _$$6, _$$7) : Data_SortedMap_Node6(_$$3.h3, _$$3.h4, _$$3.h5, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$5.h6, _$$5.h7, _$$6, _$$7) ) : ( (_$$3.tag) == (2) ? Data_SortedMap_Node6(_$$3.h3, _$$3.h4, _$$3.h5, _$$3.h6, _$$3.h7, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$6, _$$7) : Data_SortedMap_Node5(_$$3.h3, _$$3.h4, _$$3.h5, _$$4, _$$5.h3, _$$5.h4, _$$5.h5, _$$6, _$$7) ) )); 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()))) }; } }; @@ -975,16 +987,16 @@ const Lib_Compile_LitObject = ( h0 ) => ({ tag: 0, h0: h0 }); const Lib_Compile_Raw = ( h0 ) => ({ tag: 12, h0: h0 }); const Lib_Compile_maybeWrap = ( _$$0 ) => (( (_$$0.tag) == (3) ? _$$0.h0 : Lib_Compile_Apply(Lib_Compile_JLam(Prelude_Nil(), _$$0), Prelude_Nil()) )); const Lib_Compile_sortedNames = ( _$$0, _$$1 ) => (Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$2 ) => (_$$2.h3), Prelude_filter(( _$$5 ) => (Prelude_not(_$$5.h2)), Lib_Compile_sortedNames_getBody_getNames_go(_$$0, _$$1, Prelude_Nil(), Prelude_Nil(), Prelude__$2C_(true, _$$1))))); -const Lib_Compile_sortedNames_getBody_getNames_go = ( _, _1, _$$5, _$$6, _$$7 ) => { let acc; const sc$$12 = (_$$7.h2) && ((Prelude_not(Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), Prelude__$2C_(false, _$$7.h3), _$$6))) && (Prelude_not(Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), Prelude__$2C_(false, _$$7.h3), _$$5)))); switch (sc$$12) { case true: { acc = Lib_Compile_sortedNames_getBody_getNames_go(_, _1, _$$5, _$$6, Prelude__$2C_(false, _$$7.h3)); break; } case false: { acc = _$$6; break; } } const sc$$13 = Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), _$$7, _$$5); switch (sc$$13) { case true: return acc; case false: { const sc$$14 = Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), _$$7, acc); switch (sc$$14) { case true: return acc; case false: { const sc$$15 = Data_SortedMap_lookupMap$27(_$$7.h3, _); return ( (sc$$15.tag) == (1) ? acc : Prelude__$3A$3A_(_$$7, Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames_go(_, _1, Prelude__$3A$3A_(_$$7, _$$5), eta, eta1))), acc, Lib_Compile_sortedNames_getBody_getNames(_, _1, _$$7.h2, Prelude_Nil(), sc$$15.h1))) ); break; } } break; } } }; +const Lib_Compile_sortedNames_getBody_getNames_go = ( _, _1, _$$5, _$$6, _$$7 ) => { let acc; const sc$$12 = (_$$7.h2) && ((Prelude_not(Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), Prelude__$2C_(false, _$$7.h3), _$$6))) && (Prelude_not(Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), Prelude__$2C_(false, _$$7.h3), _$$5)))); switch (sc$$12) { case true: { acc = Lib_Compile_sortedNames_getBody_getNames_go(_, _1, _$$5, _$$6, Prelude__$2C_(false, _$$7.h3)); break; } case false: { acc = _$$6; break; } } const sc$$13 = Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), _$$7, _$$5); switch (sc$$13) { case true: return acc; case false: { const sc$$14 = Prelude_elem(Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(Prelude_Prelude_Eq$20Prelude_Bool, Lib_Common_Prelude_Eq$20Lib_Common_QName), _$$7, acc); switch (sc$$14) { case true: return acc; case false: { const sc$$15 = Data_SortedMap_lookupMap$27(_$$7.h3, _); return ( (sc$$15.tag) == (1) ? acc : Prelude__$3A$3A_(_$$7, Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames_go(_, _1, Prelude__$3A$3A_(_$$7, _$$5), eta, eta1))), acc, Lib_Compile_sortedNames_getBody_getNames(_, _1, _$$7.h2, Prelude_Nil(), sc$$15.h1))) ); break; } } break; } } }; const Lib_Compile_sortedNames_getBody_getNames = ( _, _1, deep$$4, _$$5, _$$6 ) => (bouncer(Lib_Compile_REC_sortedNames_getBody_getNames, { tag: 1, h0: _, h1: _1, h2: null, h3: null, h4: deep$$4, h5: _$$5, h6: _$$6 })); -const Lib_Compile_REC_sortedNames_getBody_getNames = ( arg ) => { switch (arg.h6.tag) { case 14: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h2 }; case 13: return { tag: 0, h0: Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Prelude__$2C_(arg.h4, eta)), arg.h6.h1), arg.h5) }; case 12: return { tag: 0, h0: Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, eta, eta1))), arg.h5, arg.h6.h2) }; case 11: return { tag: 0, h0: arg.h5 }; case 10: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h2 }; case 9: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h2 }; case 8: return { tag: 0, h0: arg.h5 }; case 7: return { tag: 0, h0: arg.h5 }; case 6: return { tag: 0, h0: Prelude__$3A$3A_(Prelude__$2C_(arg.h4, arg.h6.h0), arg.h5) }; case 5: return { tag: 0, h0: Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, eta, eta1))), arg.h5, Prelude__$3A$3A_(arg.h6.h0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Compile_sortedNames_getBody(arg.h0, arg.h1, eta)), arg.h6.h1))) }; case 4: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: true, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h0 }; case 3: { const sc$$10 = (Prelude_length$27(arg.h6.h1)) == (Prelude_length$27(arg.h6.h2)); switch (sc$$10) { case true: return ( (arg.h6.h1.tag) == (0) ? { tag: 0, h0: Prelude__$3A$3A_(Prelude__$2C_(true, arg.h6.h0), arg.h5) } : { tag: 0, h0: Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, true, eta, eta1))), Prelude__$3A$3A_(Prelude__$2C_(true, arg.h6.h0), arg.h5), arg.h6.h1) } ); case false: return { tag: 0, h0: Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, eta, eta1))), Prelude__$3A$3A_(Prelude__$2C_(arg.h4, arg.h6.h0), arg.h5), arg.h6.h1) }; } break; } case 2: switch (arg.h4) { case true: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6.h1 }; case false: return { tag: 0, h0: arg.h5 }; } break; 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.h1 }; case 0: return { tag: 0, h0: arg.h5 }; } }; +const Lib_Compile_REC_sortedNames_getBody_getNames = ( arg ) => { switch (arg.h6.tag) { case 14: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h2 }; case 13: return { tag: 0, h0: Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Prelude__$2C_(arg.h4, eta)), arg.h6.h1), arg.h5) }; case 12: return { tag: 0, h0: Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, eta, eta1))), arg.h5, arg.h6.h2) }; case 11: return { tag: 0, h0: arg.h5 }; case 10: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h2 }; case 9: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h2 }; case 8: return { tag: 0, h0: arg.h5 }; case 7: return { tag: 0, h0: arg.h5 }; case 6: return { tag: 0, h0: Prelude__$3A$3A_(Prelude__$2C_(arg.h4, arg.h6.h0), arg.h5) }; case 5: return { tag: 0, h0: Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, eta, eta1))), arg.h5, Prelude__$3A$3A_(arg.h6.h0, Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Compile_sortedNames_getBody(arg.h0, arg.h1, eta)), arg.h6.h1))) }; case 4: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: true, h5: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, arg.h5, arg.h6.h1), h6: arg.h6.h0 }; case 3: { const sc$$10 = (Prelude_length$27(arg.h6.h1)) == (Prelude_length$27(arg.h6.h2)); switch (sc$$10) { case true: return ( (arg.h6.h1.tag) == (0) ? { tag: 0, h0: Prelude__$3A$3A_(Prelude__$2C_(true, arg.h6.h0), arg.h5) } : { tag: 0, h0: Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, true, eta, eta1))), Prelude__$3A$3A_(Prelude__$2C_(true, arg.h6.h0), arg.h5), arg.h6.h1) } ); case false: return { tag: 0, h0: Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h4, eta, eta1))), Prelude__$3A$3A_(Prelude__$2C_(arg.h4, arg.h6.h0), arg.h5), arg.h6.h1) }; } break; } case 2: switch (arg.h4) { case true: return { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6.h1 }; case false: return { tag: 0, h0: arg.h5 }; } break; 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.h1 }; case 0: return { tag: 0, h0: arg.h5 }; } }; const Lib_Compile_sortedNames_getBody = ( _, _1, _$$3 ) => { switch (_$$3.tag) { case 2: return _$$3.h1; case 1: return _$$3.h0; case 0: return _$$3.h4; } }; const Prelude_Prelude_Eq$20Prelude_Bool$2C_$3D$3D_ = ( _$$0, _$$1 ) => { switch (_$$0) { case true: return _$$1; case false: switch (_$$1) { case false: return true; default: return false; } break; } }; const Prelude_Prelude_Eq$20Prelude_Bool = Prelude_MkEq(( eta ) => (( eta1 ) => (Prelude_Prelude_Eq$20Prelude_Bool$2C_$3D$3D_(eta, eta1)))); const Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29 = ( _, _1 ) => (Prelude_MkEq(( eta ) => (( eta1 ) => (Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2C_$3D$3D_(_, _1, eta, eta1))))); const Prelude_Prelude_Eq$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29$2C_$3D$3D_ = ( _$$2, _$$3, _$$4, _$$5 ) => ((Prelude__$3D$3D_(_$$2)(_$$4.h2)(_$$5.h2)) && (Prelude__$3D$3D_(_$$3)(_$$4.h3)(_$$5.h3))); const Lib_TCO_tailCallOpt = ( _$$0 ) => { const graph = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Prelude_Prelude_Bifunctor$20Prelude__$D7_$2Cbimap(( _$$1 ) => (_$$1), ( eta ) => (Lib_TCO_tailNames(eta)), eta)), Data_SortedMap_toList(_$$0)); const groups = Data_Graph_tarjan(Lib_Common_Prelude_Eq$20Lib_Common_QName, Lib_Common_Prelude_Ord$20Lib_Common_QName, graph); return Prelude_foldlM(Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_TCO_tailCallOpt_doUpdate_processGroup(_$$0, eta, eta1))), _$$0, groups); }; -const Lib_TCO_tailCallOpt_doUpdate_processGroup = ( _, _$$3, _$$4 ) => { const pairs = Prelude_mapMaybe(( _$$5 ) => (Data_SortedMap_lookupMap(_$$5, _$$3)), _$$4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TCO_doOptimize(pairs), ( updates ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_foldl(( eta ) => (( eta1 ) => (Lib_TCO_tailCallOpt_doUpdate(_, eta, eta1))), _$$3, updates)))); }; +const Lib_TCO_tailCallOpt_doUpdate_processGroup = ( _, _$$3, _$$4 ) => { const pairs = Prelude_mapMaybe(( _$$5 ) => (Data_SortedMap_lookupMap(_$$5, _$$3)), _$$4); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TCO_doOptimize(pairs), ( updates ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_TCO_tailCallOpt_doUpdate(_, eta, eta1))), _$$3, updates)))); }; const Lib_TCO_tailCallOpt_doUpdate = ( _, _$$2, _$$3 ) => (Data_SortedMap_updateMap(_$$3.h2, _$$3.h3, _$$2)); const Lib_TCO_doOptimize = ( _$$0 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt_splitFun(_$$0, eta)), _$$0), ( splitFuns ) => { const nms = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$2 ) => (_$$2.h2), _$$0); const alts = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt(_$$0, nms, eta)), Prelude_enumerate(splitFuns)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_TCO_doOptimize_mkWrap_mkRecName(_$$0, nms), ( recName ) => { const recfun = Lib_CompileExp_CFun(Prelude__$3A$3A_(Prelude__$2C_(true, "arg"), Prelude_Nil()), Lib_CompileExp_CCase(Lib_CompileExp_CBnd(0), alts)); return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_TCO_doOptimize_mkWrap(_$$0, recName, eta)), Prelude_enumerate(_$$0)), ( wrapped ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$3A$3A_(Prelude__$2C_(recName, recfun), wrapped)))); }); })); const Lib_TCO_doOptimize_mkWrap = ( _, _$$2, _$$3 ) => { if ((_$$3.h3.h3.tag) == (2)) { const arglen = Prelude_length$27(_$$3.h3.h3.h0); const conargs = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( k ) => (Lib_CompileExp_CBnd(((arglen) - (k)) - (1))), Lib_Common_range(0, arglen)); const conquant = Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$31 ) => (true), conargs); const arg = Lib_CompileExp_CConstr((1) + (_$$3.h2), Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$3.h3.h2), conargs, conquant); const body = Lib_CompileExp_CAppRef(Lib_TCO_bouncer, Prelude__$3A$3A_(Lib_CompileExp_CRef(_$$2), Prelude__$3A$3A_(arg, Prelude_Nil())), Prelude__$3A$3A_(true, Prelude__$3A$3A_(true, Prelude_Nil()))); return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(_$$3.h3.h2, Lib_CompileExp_CFun(_$$3.h3.h3.h0, body))); } else { return Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("error in mkWrap: ") + (Prelude_showInt(Prelude_natToInt(_$$3.h2)))) + (" not a CFun"))), eta)))); } }; @@ -1007,16 +1019,16 @@ const Lib_CompileExp_CLitAlt = ( h0, h1 ) => ({ tag: 2, h0: h0, h1: h1 }); const Lib_CompileExp_CLet = ( h0, h1, h2 ) => ({ tag: 9, h0: h0, h1: h1, h2: h2 }); const Lib_CompileExp_CLetRec = ( h0, h1, h2 ) => ({ tag: 10, h0: h0, h1: h1, h2: h2 }); const Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt_splitFun = ( _, _$$5 ) => (( (_$$5.h3.tag) == (2) ? Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude__$2C_(_$$5.h2, Prelude__$2C_(_$$5.h3.h0, _$$5.h3.h1))) : Lib_Types_MkM(( _1 ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Common_emptyFC, (("TCO error: ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$5.h2))) + (" not a function"))), eta)))) )); -const Data_Graph_tarjan = ( _$$1, _$$2, _$$3 ) => { const g = Data_SortedMap_foldMap(( _$$21 ) => (( _$$31 ) => (_$$21)), Data_SortedMap_EmptyMap(_$$2.h1), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Data_Graph_tarjan_mkVertex(_$$1, _$$2, _$$3, eta)), _$$3)); const _sc$$0 = Prelude_foldl(( eta ) => (( eta1 ) => (Data_Graph_tarjan_mkVertex_checkVertex(_$$1, _$$2, _$$3, eta, eta1))), Data_Graph_MkTState(0, Prelude_Nil(), Prelude_Nil(), g), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$3)); return _sc$$0.h3; }; +const Data_Graph_tarjan = ( _$$1, _$$2, _$$3 ) => { const g = Data_SortedMap_foldMap(( _$$21 ) => (( _$$31 ) => (_$$21)), Data_SortedMap_EmptyMap(_$$2.h1), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Data_Graph_tarjan_mkVertex(_$$1, _$$2, _$$3, eta)), _$$3)); const _sc$$0 = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Data_Graph_tarjan_mkVertex_checkVertex(_$$1, _$$2, _$$3, eta, eta1))), Data_Graph_MkTState(0, Prelude_Nil(), Prelude_Nil(), g), Prelude_Prelude_Functor$20Prelude_List$2Cmap(( _$$21 ) => (_$$21.h2), _$$3)); return _sc$$0.h3; }; const Data_Graph_MkTState = ( h1, h2, h3, h4 ) => ({ tag: 0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Data_Graph_tarjan_mkVertex_checkVertex = ( _, _1, _2, _$$6, _$$7 ) => { const sc$$8 = Data_SortedMap_lookupMap$27(_$$7, _$$6.h4); if ((sc$$8.tag) == (0)) { const sc$$11 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, sc$$8.h1.h3, 0), 2); switch (sc$$11) { case true: return _$$6; case false: return Data_Graph_strongConnect(_, _1, _$$6, sc$$8.h1); } } else { return _$$6; } }; -const Data_Graph_strongConnect = ( _$$1, _$$2, _$$3, _$$4 ) => { const index$27 = (_$$3.h1) + (1); const vtx$27 = Data_Graph_MkTV(_$$4.h1, _$$4.h2, index$27, index$27, true); const stack$27 = Prelude__$3A$3A_(_$$4.h1, _$$3.h2); const graph$27 = Data_SortedMap_updateMap(vtx$27.h1, vtx$27, _$$3.h4); const st$27 = Data_Graph_MkTState(index$27, stack$27, _$$3.h3, graph$27); return Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge_checkRoot(_$$1, _$$2, _$$3, _$$4, Prelude_foldl(( eta ) => (( eta1 ) => (Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge(_$$1, _$$2, _$$3, _$$4, eta, eta1))), st$27, _$$4.h2)); }; +const Data_Graph_strongConnect = ( _$$1, _$$2, _$$3, _$$4 ) => { const index$27 = (_$$3.h1) + (1); const vtx$27 = Data_Graph_MkTV(_$$4.h1, _$$4.h2, index$27, index$27, true); const stack$27 = Prelude__$3A$3A_(_$$4.h1, _$$3.h2); const graph$27 = Data_SortedMap_updateMap(vtx$27.h1, vtx$27, _$$3.h4); const st$27 = Data_Graph_MkTState(index$27, stack$27, _$$3.h3, graph$27); return Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge_checkRoot(_$$1, _$$2, _$$3, _$$4, Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge(_$$1, _$$2, _$$3, _$$4, eta, eta1))), st$27, _$$4.h2)); }; const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge = ( _, _1, _2, _3, _$$11, _$$12 ) => { const sc$$13 = Data_SortedMap_lookupMap$27(_$$12, _$$11.h4); if ((sc$$13.tag) == (0)) { switch (sc$$13.h1.h5) { case true: return Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink(_, _1, _2, _3, _$$11, _3.h1, sc$$13.h1.h3); case false: { const sc$$17 = (sc$$13.h1.h3) == (0); switch (sc$$17) { case true: { const st$27 = Data_Graph_strongConnect(_, _1, _$$11, sc$$13.h1); const sc$$19 = Data_SortedMap_lookupMap$27(_$$12, st$27.h4); return ( (sc$$19.tag) == (0) ? Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink(_, _1, _2, _3, st$27, _3.h1, sc$$19.h1.h4) : st$27 ); break; } case false: return _$$11; } break; } } } else { return _$$11; } }; const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink = ( _, _1, _2, _3, _$$9, _$$10, _$$11 ) => (Data_Graph_strongConnect_min_splitComp_updateNode(_, _1, _2, _3, _$$9, _$$10, ( vt ) => (Data_Graph_MkTV(vt.h1, vt.h2, vt.h3, Data_Graph_strongConnect_min(_, _1, _2, _3, vt.h4, _$$11), vt.h5)))); const Data_Graph_strongConnect_min = ( _, _1, _2, _3, _$$6, _$$7 ) => { const sc$$8 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, _$$6, _$$7), 0); switch (sc$$8) { case true: return _$$6; case false: return _$$7; } }; const Data_Graph_MkTV = ( h1, h2, h3, h4, h5 ) => ({ tag: 0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5 }); const Data_Graph_strongConnect_min_splitComp_updateNode = ( _, _1, _2, _3, _$$8, _$$9, _$$10 ) => { const sc$$16 = Data_SortedMap_lookupMap$27(_$$9, _$$8.h4); return ( (sc$$16.tag) == (1) ? _$$8 : Data_Graph_MkTState(_$$8.h1, _$$8.h2, _$$8.h3, Data_SortedMap_updateMap(_$$9, _$$10(sc$$16.h1), _$$8.h4)) ); }; -const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge_checkRoot = ( _, _1, _2, _3, _$$12 ) => { const sc$$13 = Data_SortedMap_lookupMap$27(_3.h1, _$$12.h4); if ((sc$$13.tag) == (0)) { const sc$$16 = (sc$$13.h1.h4) == (sc$$13.h1.h3); switch (sc$$16) { case true: { const sc$$17 = Data_Graph_strongConnect_min_splitComp(_, _1, _2, _3, Prelude_Nil(), _$$12.h2); const st = Prelude_foldl(( eta ) => (( eta1 ) => (Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack(_, _1, _2, _3, eta, eta1))), _$$12, sc$$17.h2); const sc$$23 = (Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, Prelude_length$27(sc$$17.h2), 1), 2)) || (Prelude_elem(_, sc$$13.h1.h1, sc$$13.h1.h2)); switch (sc$$23) { case true: return Data_Graph_MkTState(st.h1, sc$$17.h3, Prelude__$3A$3A_(sc$$17.h2, st.h3), st.h4); case false: return Data_Graph_MkTState(st.h1, sc$$17.h3, st.h3, st.h4); } break; } case false: return _$$12; } } else { return _$$12; } }; +const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge_checkRoot = ( _, _1, _2, _3, _$$12 ) => { const sc$$13 = Data_SortedMap_lookupMap$27(_3.h1, _$$12.h4); if ((sc$$13.tag) == (0)) { const sc$$16 = (sc$$13.h1.h4) == (sc$$13.h1.h3); switch (sc$$16) { case true: { const sc$$17 = Data_Graph_strongConnect_min_splitComp(_, _1, _2, _3, Prelude_Nil(), _$$12.h2); const st = Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack(_, _1, _2, _3, eta, eta1))), _$$12, sc$$17.h2); const sc$$23 = (Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_jsCompare(null, Prelude_length$27(sc$$17.h2), 1), 2)) || (Prelude_elem(_, sc$$13.h1.h1, sc$$13.h1.h2)); switch (sc$$23) { case true: return Data_Graph_MkTState(st.h1, sc$$17.h3, Prelude__$3A$3A_(sc$$17.h2, st.h3), st.h4); case false: return Data_Graph_MkTState(st.h1, sc$$17.h3, st.h3, st.h4); } break; } case false: return _$$12; } } else { return _$$12; } }; const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack = ( _, _1, _2, _3, _$$10, _$$11 ) => (Data_Graph_strongConnect_min_splitComp_updateNode(_, _1, _2, _3, _$$10, _$$11, ( vt ) => (Data_Graph_MkTV(vt.h1, vt.h2, vt.h3, vt.h4, false)))); const Data_Graph_strongConnect_min_splitComp = ( _, _1, _2, _3, _$$7, _$$8 ) => (bouncer(Data_Graph_REC_strongConnect_min_splitComp, { tag: 1, h0: null, h1: _, h2: _1, h3: _2, h4: _3, h5: null, h6: null, h7: _$$7, h8: _$$8 })); const Data_Graph_REC_strongConnect_min_splitComp = ( arg ) => { if ((arg.h8.tag) == (1)) { const sc$$12 = Prelude_Prelude_Eq$20Prelude_Ordering$2C_$3D$3D_(Prelude_compare(arg.h2)(arg.h8.h1)(arg.h4.h1), 1); switch (sc$$12) { case true: return { tag: 0, h0: Prelude__$2C_(Prelude__$3A$3A_(arg.h8.h1, arg.h7), arg.h8.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, h7: Prelude__$3A$3A_(arg.h8.h1, arg.h7), h8: arg.h8.h2 }; } } else { return { tag: 0, h0: Prelude__$2C_(arg.h7, Prelude_Nil()) }; } }; @@ -1037,7 +1049,7 @@ const Lib_Types_LBool = ( h0 ) => ({ tag: 3, h0: h0 }); const Lib_CompileExp_compileFun = ( _$$0, _$$1 ) => (Lib_CompileExp_compileFun_go(_$$0, _$$1, _$$1, Prelude_Lin())); const Lib_CompileExp_compileFun_go = ( _, _1, _$$3, _$$4 ) => (bouncer(Lib_CompileExp_REC_compileFun_go, { tag: 1, h0: _, h1: _1, h2: null, h3: _$$3, h4: _$$4 })); const Lib_CompileExp_REC_compileFun_go = ( arg ) => (( (arg.h3.tag) == (3) ? { tag: 1, h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3.h4, h4: Prelude__$3A$3C_(arg.h4, Prelude__$2C_(arg.h3.h3, arg.h3.h1)) } : ( (arg.h4.tag) == (0) ? { tag: 0, h0: Lib_CompileExp_compileTerm(arg.h0, arg.h3) } : { tag: 0, h0: Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CFun(Prelude__$3C$3E$3E_(arg.h4, Prelude_Nil()), eta)), Lib_CompileExp_compileTerm(arg.h0, arg.h3)) } ) )); -const Lib_CompileExp_compileTerm = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 11: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CErased); case 10: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(_$$1.h1)); case 9: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h3), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h4), ( u$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLetRec(_$$1.h1, t$27, u$27)))))); case 8: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h2), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h3), ( u$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLet(_$$1.h1, t$27, u$27)))))); case 7: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h1), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, _$$1.h2, ( $$case ) => { switch ($$case.tag) { case 2: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CLitAlt($$case.h0, eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h1)); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Data_IORef_primReadIORef(null, _$$0.h2)), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_lookupDef(_$$0, Lib_Common_emptyFC, $$case.h0), ( def ) => (( (def.tag) == (2) ? Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CConAlt(def.h0, $$case.h0.h1, def.h1, $$case.h1, eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h2)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (("") + ($$case.h0.h1)) + (" is not constructor"))), eta)))) ))))); case 0: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CDefAlt(eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h0)); } }), ( alts$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CCase(t$27, Lib_CompileExp_compileTerm_numAltP_enumAlt_isInfo_isDef_doNumCon_fancyCons(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, t$27, alts$27))))))); case 6: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h4), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h5), ( u$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CAppRef(Lib_Common_QN(Lib_Common_primNS, "PiType"), Prelude__$3A$3A_(t$27, Prelude__$3A$3A_(Lib_CompileExp_CLam(_$$1.h1, u$27), Prelude_Nil())), Prelude__$3A$3A_(true, Prelude__$3A$3A_(true, Prelude_Nil())))))))); case 5: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(Lib_Common_QN(Prelude_Nil(), "U"))); case 4: { const sc$$6 = Lib_Util_funArgs(_$$1); switch (sc$$6.h2.tag) { case 2: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC(_$$1), (("Compiling an unsolved meta ") + (Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow(_$$1))) + (""))), eta)))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Data_IORef_primReadIORef(null, _$$0.h2)), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_CompileExp_compileTerm(_$$0, eta)), sc$$6.h3), ( args$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_arityForName(_$$0, sc$$6.h2.h0, sc$$6.h2.h1), ( arity ) => { const sc$$16 = Lib_CompileExp_compilePrimOp(Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$6.h2.h1), args$27); if ((sc$$16.tag) == (1)) { const sc$$18 = Data_SortedMap_lookupMap$27(sc$$6.h2.h1, defs); if ((sc$$18.tag) == (0)) { if ((sc$$18.h1.tag) == (2)) { switch (sc$$18.h1.h1) { case 1: return Lib_CompileExp_compileTerm_applySucc(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, args$27); default: return Lib_CompileExp_apply(sc$$6.h2.h1, args$27, arity); } } else { return Lib_CompileExp_apply(sc$$6.h2.h1, args$27, arity); } } else { return Lib_CompileExp_apply(sc$$6.h2.h1, args$27, arity); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(sc$$16.h1); } }))))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("apply other ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$6.h2))), Prelude_Lin()))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, sc$$6.h2), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_CompileExp_compileTerm(_$$0, eta)), sc$$6.h3), ( args$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_foldl(( eta ) => (( eta1 ) => (Lib_CompileExp_CApp(eta, eta1))), t$27, args$27)))))))); } break; } case 3: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CLam(_$$1.h1, eta)), Lib_CompileExp_compileTerm(_$$0, _$$1.h4)); case 2: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (("Compiling meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1.h1))) + (""))), eta)))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_arityForName(_$$0, _$$1.h0, _$$1.h1), ( arity ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Data_IORef_primReadIORef(null, _$$0.h2)), ( defs ) => { if ((arity.tag) == (0)) { const sc$$10 = Data_SortedMap_lookupMap$27(_$$1.h1, defs); if ((sc$$10.tag) == (0)) { if ((sc$$10.h1.tag) == (2)) { switch (sc$$10.h1.h1) { case 5: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LBool(false))); case 4: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LBool(true))); case 3: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LInt(Prelude_natToInt(sc$$10.h1.h0)))); case 2: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LInt(0))); case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLam("x", Lib_CompileExp_CPrimOp("+", Lib_CompileExp_CLit(Lib_Types_LInt(1)), Lib_CompileExp_CBnd(0)))); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(_$$1.h1)); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(_$$1.h1)); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(_$$1.h1)); } } else { return Lib_CompileExp_apply(_$$1.h1, Prelude_Nil(), arity); } }))); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CBnd(_$$1.h1)); } }; +const Lib_CompileExp_compileTerm = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case 11: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CErased); case 10: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(_$$1.h1)); case 9: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h3), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h4), ( u$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLetRec(_$$1.h1, t$27, u$27)))))); case 8: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h2), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h3), ( u$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLet(_$$1.h1, t$27, u$27)))))); case 7: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h1), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_for(Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, _$$1.h2, ( $$case ) => { switch ($$case.tag) { case 2: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CLitAlt($$case.h0, eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h1)); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Data_IORef_primReadIORef(null, _$$0.h2)), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_lookupDef(_$$0, Lib_Common_emptyFC, $$case.h0), ( def ) => (( (def.tag) == (2) ? Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CConAlt(def.h0, $$case.h0.h1, def.h1, $$case.h1, eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h2)) : Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (("") + ($$case.h0.h1)) + (" is not constructor"))), eta)))) ))))); case 0: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CDefAlt(eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h0)); } }), ( alts$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CCase(t$27, Lib_CompileExp_compileTerm_numAltP_enumAlt_isInfo_isDef_doNumCon_fancyCons(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, t$27, alts$27))))))); case 6: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h4), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, _$$1.h5), ( u$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CAppRef(Lib_Common_QN(Lib_Common_primNS, "PiType"), Prelude__$3A$3A_(t$27, Prelude__$3A$3A_(Lib_CompileExp_CLam(_$$1.h1, u$27), Prelude_Nil())), Prelude__$3A$3A_(true, Prelude__$3A$3A_(true, Prelude_Nil())))))))); case 5: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(Lib_Common_QN(Prelude_Nil(), "U"))); case 4: { const sc$$6 = Lib_Util_funArgs(_$$1); switch (sc$$6.h2.tag) { case 2: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC(_$$1), (("Compiling an unsolved meta ") + (Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow(_$$1))) + (""))), eta)))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Data_IORef_primReadIORef(null, _$$0.h2)), ( defs ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_CompileExp_compileTerm(_$$0, eta)), sc$$6.h3), ( args$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_arityForName(_$$0, sc$$6.h2.h0, sc$$6.h2.h1), ( arity ) => { const sc$$16 = Lib_CompileExp_compilePrimOp(Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(sc$$6.h2.h1), args$27); if ((sc$$16.tag) == (1)) { const sc$$18 = Data_SortedMap_lookupMap$27(sc$$6.h2.h1, defs); if ((sc$$18.tag) == (0)) { if ((sc$$18.h1.tag) == (2)) { switch (sc$$18.h1.h1) { case 1: return Lib_CompileExp_compileTerm_applySucc(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, args$27); default: return Lib_CompileExp_apply(sc$$6.h2.h1, args$27, arity); } } else { return Lib_CompileExp_apply(sc$$6.h2.h1, args$27, arity); } } else { return Lib_CompileExp_apply(sc$$6.h2.h1, args$27, arity); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(sc$$16.h1); } }))))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((("apply other ") + (Lib_Prettier_layout(Lib_Prettier_best(90, 0, Lib_Prettier_noAlt(Lib_Types_pprint$27(0, Prelude_Nil(), sc$$6.h2))), Prelude_Lin()))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_compileTerm(_$$0, sc$$6.h2), ( t$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_CompileExp_compileTerm(_$$0, eta)), sc$$6.h3), ( args$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_CompileExp_CApp(eta, eta1))), t$27, args$27)))))))); } break; } case 3: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_CompileExp_CLam(_$$1.h1, eta)), Lib_CompileExp_compileTerm(_$$0, _$$1.h4)); case 2: return Lib_Types_MkM(( _ ) => (( eta ) => (Prelude_MkIORes(Prelude_Left(Lib_Common_E(_$$1.h0, (("Compiling meta ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1.h1))) + (""))), eta)))); case 1: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_CompileExp_arityForName(_$$0, _$$1.h0, _$$1.h1), ( arity ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Data_IORef_primReadIORef(null, _$$0.h2)), ( defs ) => { if ((arity.tag) == (0)) { const sc$$10 = Data_SortedMap_lookupMap$27(_$$1.h1, defs); if ((sc$$10.tag) == (0)) { if ((sc$$10.h1.tag) == (2)) { switch (sc$$10.h1.h1) { case 5: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LBool(false))); case 4: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LBool(true))); case 3: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LInt(Prelude_natToInt(sc$$10.h1.h0)))); case 2: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLit(Lib_Types_LInt(0))); case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CLam("x", Lib_CompileExp_CPrimOp("+", Lib_CompileExp_CLit(Lib_Types_LInt(1)), Lib_CompileExp_CBnd(0)))); default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(_$$1.h1)); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(_$$1.h1)); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CRef(_$$1.h1)); } } else { return Lib_CompileExp_apply(_$$1.h1, Prelude_Nil(), arity); } }))); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CBnd(_$$1.h1)); } }; const Lib_CompileExp_apply = ( _$$0, _$$1, _$$2 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_CompileExp_CAppRef(_$$0, _$$1, _$$2))); const Lib_CompileExp_CPrimOp = ( h0, h1, h2 ) => ({ tag: 14, h0: h0, h1: h1, h2: h2 }); const Lib_CompileExp_CLam = ( h0, h1 ) => ({ tag: 1, h0: h0, h1: h1 }); @@ -1085,7 +1097,7 @@ const Lib_Compile_eraseEntries = ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M const Data_IORef_primNewIORef = (_, a) => (w) => Prelude_MkIORes([a], w); const Lib_Compile_getEntries = ( _$$0, _$$1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top ) => { const sc$$3 = Lib_TopContext_lookup(_$$1, top); if ((sc$$3.tag) == (1)) { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn((("bad name ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$1))) + (""))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(_$$0))); } else { switch (sc$$3.h1.h3.tag) { case 5: { const acc = Data_SortedMap_updateMap(sc$$3.h1.h1, sc$$3.h1.h3, _$$0); return Prelude_foldlM(Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Compile_getEntries(eta, eta1))), acc, sc$$3.h1.h3.h2); break; } case 3: { const sc$$12 = Data_SortedMap_lookupMap$27(sc$$3.h1.h1, _$$0); return ( (sc$$12.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_getTop, ( top1 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_zonk(top1, 0, Prelude_Nil(), sc$$3.h1.h3.h0), ( exp ) => { const acc = Data_SortedMap_updateMap(sc$$3.h1.h1, Lib_Types_Fn(exp), _$$0); return Prelude_foldlM(Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Compile_getEntries(eta, eta1))), acc, Lib_Compile_getNames(exp, Prelude_Nil())); }))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(_$$0) ); break; } default: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Data_SortedMap_updateMap(_$$1, sc$$3.h1.h3, _$$0)); } } })); const Lib_Compile_getNames = ( _$$0, _$$1 ) => (bouncer(Lib_Compile_REC_getNames, { tag: 1, h0: _$$0, h1: _$$1 })); -const Lib_Compile_REC_getNames = ( arg ) => { switch (arg.h0.tag) { case 9: return { tag: 1, h0: arg.h0.h4, h1: Lib_Compile_getNames(arg.h0.h3, arg.h1) }; case 8: return { tag: 1, h0: arg.h0.h3, h1: Lib_Compile_getNames(arg.h0.h2, arg.h1) }; case 7: return { tag: 1, h0: arg.h0.h1, h1: Prelude_foldl(( eta ) => (( eta1 ) => (Lib_Compile_getNames_getAltNames(arg.h0, arg.h1, arg.h0.h0, arg.h0.h1, arg.h0.h2, eta, eta1))), arg.h1, arg.h0.h2) }; case 6: return { tag: 1, h0: arg.h0.h5, h1: Lib_Compile_getNames(arg.h0.h4, Prelude__$3A$3A_(Lib_Common_QN(Lib_Common_primNS, "PiType"), arg.h1)) }; case 4: return { tag: 1, h0: arg.h0.h2, h1: Lib_Compile_getNames(arg.h0.h1, arg.h1) }; case 3: return { tag: 1, h0: arg.h0.h4, h1: arg.h1 }; case 1: return { tag: 0, h0: Prelude__$3A$3A_(arg.h0.h1, arg.h1) }; default: return { tag: 0, h0: arg.h1 }; } }; +const Lib_Compile_REC_getNames = ( arg ) => { switch (arg.h0.tag) { case 9: return { tag: 1, h0: arg.h0.h4, h1: Lib_Compile_getNames(arg.h0.h3, arg.h1) }; case 8: return { tag: 1, h0: arg.h0.h3, h1: Lib_Compile_getNames(arg.h0.h2, arg.h1) }; case 7: return { tag: 1, h0: arg.h0.h1, h1: Prelude_Prelude_Foldable$20Prelude_List$2Cfoldl(( eta ) => (( eta1 ) => (Lib_Compile_getNames_getAltNames(arg.h0, arg.h1, arg.h0.h0, arg.h0.h1, arg.h0.h2, eta, eta1))), arg.h1, arg.h0.h2) }; case 6: return { tag: 1, h0: arg.h0.h5, h1: Lib_Compile_getNames(arg.h0.h4, Prelude__$3A$3A_(Lib_Common_QN(Lib_Common_primNS, "PiType"), arg.h1)) }; case 4: return { tag: 1, h0: arg.h0.h2, h1: Lib_Compile_getNames(arg.h0.h1, arg.h1) }; case 3: return { tag: 1, h0: arg.h0.h4, h1: arg.h1 }; case 1: return { tag: 0, h0: Prelude__$3A$3A_(arg.h0.h1, arg.h1) }; default: return { tag: 0, h0: arg.h1 }; } }; const Lib_Compile_getNames_getAltNames = ( _, _1, _2, _3, _4, _$$6, _$$7 ) => { switch (_$$7.tag) { case 2: return Lib_Compile_getNames(_$$7.h1, _$$6); case 1: return Prelude__$3A$3A_(_$$7.h0, Lib_Compile_getNames(_$$7.h2, _$$6)); case 0: return Lib_Compile_getNames(_$$7.h0, _$$6); } }; const Lib_Eval_zonk = ( _$$0, _$$1, _$$2, _$$3 ) => { const env$27 = Prelude__$3A$3A_(Lib_Types_VVar(Lib_Common_emptyFC, _$$1, Prelude_Lin()), _$$2); switch (_$$3.tag) { case 11: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Erased(_$$3.h0)); case 10: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Lit(_$$3.h0, _$$3.h1)); case 9: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2C_$3C$2A$3E_(Lib_Types_Prelude_Applicative$20Lib_Types_M$2C_$3C$2A$3E_(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (( eta1 ) => (( eta2 ) => (Lib_Types_LetRec(_$$3.h0, _$$3.h1, eta, eta1, eta2)))), Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h2)), Lib_Eval_zonkBind(_$$0, (_$$1) + (1), env$27, _$$3.h3)), Lib_Eval_zonkBind(_$$0, (_$$1) + (1), env$27, _$$3.h4)); case 8: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2C_$3C$2A$3E_(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (( eta1 ) => (Lib_Types_Let(_$$3.h0, _$$3.h1, eta, eta1))), Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h2)), Lib_Eval_zonkBind(_$$0, (_$$1) + (1), env$27, _$$3.h3)); case 7: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h1), ( sc$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_zonkAlt(_$$0, _$$1, _$$2, eta)), _$$3.h2), ( alts$27 ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Case(_$$3.h0, sc$27, alts$27)))))); case 6: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2C_$3C$2A$3E_(Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (( eta1 ) => (Lib_Types_Pi(_$$3.h0, _$$3.h1, _$$3.h2, _$$3.h3, eta, eta1))), Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h4)), Lib_Eval_zonkBind(_$$0, (_$$1) + (1), env$27, _$$3.h5)); case 5: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_UU(_$$3.h0)); case 4: return Lib_Eval_zonkApp(_$$0, _$$1, _$$2, _$$3, Prelude_Nil()); case 3: return Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Types_Lam(_$$3.h0, _$$3.h1, _$$3.h2, _$$3.h3, eta)), Lib_Eval_zonk(_$$0, (1) + (_$$1), env$27, _$$3.h4)); case 2: return Lib_Eval_zonkApp(_$$0, _$$1, _$$2, _$$3, Prelude_Nil()); case 1: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Ref(_$$3.h0, _$$3.h1)); case 0: return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Types_Bnd(_$$3.h0, _$$3.h1)); } }; const Lib_Eval_zonkApp = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { switch (_$$3.tag) { case 4: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h2), ( u$27 ) => (Lib_Eval_zonkApp(_$$0, _$$1, _$$2, _$$3.h1, Prelude__$3A$3A_(u$27, _$$4)))); case 2: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_lookupMeta(_$$3.h1), ( meta ) => (( (meta.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_eval(_$$2, eta)), _$$4), ( sp$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _ ) => ((((((("zonk ") + (Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow(_$$3.h1))) + (" -> ")) + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(meta.h2))) + (" spine ")) + (Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29$2Cshow(Lib_Types_Prelude_Show$20Lib_Types_Val, sp$27))) + (""))), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_vappSpine(meta.h2, Prelude__$3C$3E$3C_(Prelude_Lin(), sp$27)), ( foo ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_log(2, ( _1 ) => ((("-> result is ") + (Lib_Types_Prelude_Show$20Lib_Types_Val$2Cshow(foo))) + (""))), ( _1 ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(( eta ) => (Lib_Eval_tweakFC(_$$3.h0, eta)), Lib_Eval_quote(_$$1, foo)))))))))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Eval_appSpine(_$$3, _$$4)) ))); default: return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3), ( t$27 ) => { const sc$$7 = Lib_Eval_zonkApp_inlineDef(_$$0, _$$1, _$$2, _$$3, _$$4, t$27); return ( (sc$$7.tag) == (0) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Prelude_Prelude_Traversable$20Prelude_List$2Ctraverse(Lib_Types_Prelude_Applicative$20Lib_Types_M, ( eta ) => (Lib_Eval_eval(_$$2, eta)), _$$4), ( sp$27 ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_eval(_$$2, sc$$7.h1), ( vtm ) => (Lib_Types_catchError(Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_vappSpine(vtm, Prelude__$3C$3E$3C_(Prelude_Lin(), sp$27)), ( foo ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Eval_quote(_$$1, foo), ( t$271 ) => (Lib_Eval_zonk(_$$0, _$$1, _$$2, t$271))))), ( _ ) => (Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Eval_appSpine(t$27, _$$4)))))))) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(Lib_Eval_appSpine(t$27, _$$4)) ); }); } }; @@ -1138,8 +1150,8 @@ const Node_putStr = (s) => (w) => { writeSync(1, buf); return Prelude_MkIORes(Prelude_MkUnit, w); }; -const Main_runRepl = Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_putStr("> ")), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_readLine), ( $$sc ) => { if (($$sc.tag) == (1)) { const sc$$6 = Lib_Tokenizer_tokenise("", $$sc.h2); if ((sc$$6.tag) == (1)) { const sc$$10 = Lib_Parser_Impl_parse("", Lib_ReplParser_parseCommand, sc$$6.h2); return ( (sc$$10.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_catchError(Main_runCommand(sc$$10.h2), ( err ) => (Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError($$sc.h2, err))))), ( _1 ) => (Main_runRepl)) : Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError($$sc.h2, sc$$10.h2))), ( _1 ) => (Main_runRepl)) ); } else { return Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn(Lib_Common_showError($$sc.h2, sc$$6.h2))), ( _1 ) => (Main_runRepl)); } } else { return Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0); } }))); -const Revision_gitRevision = "4340115"; +const Main_runRepl = Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_putStr("> ")), ( _ ) => (Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Node_readLine), ( $$sc ) => (( ($$sc.tag) == (1) ? Lib_Types_Prelude_Monad$20Lib_Types_M$2Cbind(Main_runString($$sc.h2), ( _1 ) => (Main_runRepl)) : Lib_Types_Prelude_Applicative$20Lib_Types_M$2Creturn(0) ))))); +const Revision_gitRevision = "9249c4c"; const Main_replHeader = Lib_Types_Prelude_HasIO$20Lib_Types_M$2CliftIO(Prelude_primPutStrLn((("Newt REPL (") + (Revision_gitRevision)) + (")\n"))); const Lib_Common_renderJson = ( _$$0 ) => { switch (_$$0.tag) { case 4: return ("[") + ((Prelude_joinBy(",", Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Common_renderJson(eta)), _$$0.h0))) + ("]")); case 3: return Prelude_showInt(_$$0.h0); case 2: return Prelude_ite(_$$0.h0, "true", "false"); case 1: return Lib_Common_quoteString(_$$0.h0); case 0: return ("{") + ((Prelude_joinBy(",", Prelude_Prelude_Functor$20Prelude_List$2Cmap(( eta ) => (Lib_Common_renderJson_renderPair(_$$0, _$$0.h0, eta)), _$$0.h0))) + ("}")); } }; const Lib_Common_renderJson_renderPair = ( _, _1, _$$3 ) => ((Lib_Common_quoteString(_$$3.h2)) + ((":") + (Lib_Common_renderJson(_$$3.h3))));