diff --git a/bootstrap/newt.js b/bootstrap/newt.js old mode 100755 new mode 100644 index 38a3095..2d05359 --- a/bootstrap/newt.js +++ b/bootstrap/newt.js @@ -82,13 +82,13 @@ const Lib_Prettier_Empty = { tag: "Empty" }; const Lib_Prettier_Line = { tag: "Line" }; const Lib_Prettier_Text = ( h0 ) => ({ tag: "Text", h0: h0 }); const Lib_Prettier_Seq = ( h0, h1 ) => ({ tag: "Seq", h0: h0, h1: h1 }); -const Lib_Prettier_REC_noAlt = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Prettier.noAlt": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "Alt": return { tag: "Lib.Prettier.noAlt", h0: _sc$$0.h0 }; case "Seq": return { tag: "return", h0: Lib_Prettier_Seq(Lib_Prettier_noAlt(_sc$$0.h0), Lib_Prettier_noAlt(_sc$$0.h1)) }; case "Nest": return { tag: "Lib.Prettier.noAlt", h0: _sc$$0.h1 }; case "Text": return { tag: "return", h0: Lib_Prettier_Text(_sc$$0.h0) }; case "Line": return { tag: "return", h0: Lib_Prettier_Line }; case "Empty": return { tag: "return", h0: Lib_Prettier_Empty }; } break; } } }; +const Lib_Prettier_REC_noAlt = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "Alt": return { tag: "Lib.Prettier.noAlt", h0: _sc$$0.h0 }; case "Seq": return { tag: "return", h0: Lib_Prettier_Seq(Lib_Prettier_noAlt(_sc$$0.h0), Lib_Prettier_noAlt(_sc$$0.h1)) }; case "Nest": return { tag: "Lib.Prettier.noAlt", h0: _sc$$0.h1 }; case "Text": return { tag: "return", h0: Lib_Prettier_Text(_sc$$0.h0) }; case "Line": return { tag: "return", h0: Lib_Prettier_Line }; case "Empty": return { tag: "return", h0: Lib_Prettier_Empty }; } }; const Lib_Prettier_noAlt = ( _$$0 ) => (bouncer(Lib_Prettier_REC_noAlt, { tag: "Lib.Prettier.noAlt", h0: _$$0 })); const Prelude_Lin = ( h0 ) => ({ tag: "Lin", h0: h0 }); const Prelude_Nil = ( h0 ) => ({ tag: "Nil", h0: h0 }); const Prelude__$3A$3A_ = ( h0, h1, h2 ) => ({ tag: "_::_", h0: h0, h1: h1, h2: h2 }); const Prelude_False = { tag: "False" }; -const Prelude_REC__$3C$3E$3E_ = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude._<>>_": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_:<_": return { tag: "Prelude._<>>_", h0: null, h1: _sc$$0.h1, h2: Prelude__$3A$3A_(null, _sc$$0.h2, arg.h2) }; case "Lin": return { tag: "return", h0: arg.h2 }; } break; } } }; +const Prelude_REC__$3C$3E$3E_ = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_:<_": return { tag: "Prelude._<>>_", h0: null, h1: _sc$$0.h1, h2: Prelude__$3A$3A_(null, _sc$$0.h2, arg.h2) }; case "Lin": return { tag: "return", h0: arg.h2 }; } }; const Prelude__$3C$3E$3E_ = ( a$$0, _$$1, _$$2 ) => (bouncer(Prelude_REC__$3C$3E$3E_, { tag: "Prelude._<>>_", h0: a$$0, h1: _$$1, h2: _$$2 })); const Prelude_Just = ( h0, h1 ) => ({ tag: "Just", h0: h0, h1: h1 }); const Lib_Prettier_LINE = ( h0 ) => ({ tag: "LINE", h0: h0 }); @@ -126,7 +126,7 @@ const Prelude_MkFunctor = ( h0, h1 ) => ({ tag: "MkFunctor", h0: h0, h1: h1 }) const Prelude_Prelude_Functor$20Prelude_Maybe = Prelude_MkFunctor(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Prelude_Prelude_Functor$20Prelude_Maybe$2Cmap(null, null, eta, eta1)))))); const Prelude_map = ( m$$0, _$$1 ) => (( a ) => (( b ) => (_$$1.h1(null)(null)))); const Prelude__$3C$$$3E_ = ( f$$0, _$$1, a$$2, b$$3, _$$4, _$$5 ) => (Prelude_map(null, _$$1)(null)(null)(_$$4)(_$$5)); -const Lib_Prettier_REC_be = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Prettier.be": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "Alt": return { tag: "return", h0: Prelude__$3C$$$3E_(null, Prelude_Prelude_Functor$20Prelude_Maybe, null, null, ( eta ) => (Prelude__$3C$3E$3E_(null, arg.h1, eta)), Prelude__$3C$7C$3E_(null, Prelude_Prelude_Alternative$20Prelude_Maybe)(null)(Lib_Prettier_be(Prelude_True, Prelude_Lin(null), arg.h2, arg.h3, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h0), _sc$$0.h2)))(Lib_Prettier_be(arg.h0, Prelude_Lin(null), arg.h2, arg.h3, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h1), _sc$$0.h2)))) }; case "Seq": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h0), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h1), _sc$$0.h2)) }; case "Nest": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$1.h2)(_sc$$2.h0), _sc$$2.h1), _sc$$0.h2) }; case "Text": { const sc$$13 = Prelude__$7C$7C_(Prelude_not(arg.h0), Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h3)(Prelude_slen(_sc$$2.h0)), arg.h2)); switch (sc$$13.tag) { case "False": return { tag: "return", h0: Prelude_Nothing(null) }; case "True": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: Prelude__$3A$3C_(null, arg.h1, Lib_Prettier_TEXT(_sc$$2.h0)), h2: arg.h2, h3: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h3)(Prelude_slen(_sc$$2.h0)), h4: _sc$$0.h2 }; } break; } case "Line": return { tag: "Lib.Prettier.be", h0: Prelude_False, h1: Prelude__$3A$3C_(null, arg.h1, Lib_Prettier_LINE(_sc$$1.h2)), h2: arg.h2, h3: _sc$$1.h2, h4: _sc$$0.h2 }; case "Empty": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Just(null, Prelude__$3C$3E$3E_(null, arg.h1, Prelude_Nil(null))) }; } break; } } }; +const Lib_Prettier_REC_be = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "Alt": return { tag: "return", h0: Prelude__$3C$$$3E_(null, Prelude_Prelude_Functor$20Prelude_Maybe, null, null, ( eta ) => (Prelude__$3C$3E$3E_(null, arg.h1, eta)), Prelude__$3C$7C$3E_(null, Prelude_Prelude_Alternative$20Prelude_Maybe)(null)(Lib_Prettier_be(Prelude_True, Prelude_Lin(null), arg.h2, arg.h3, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h0), _sc$$0.h2)))(Lib_Prettier_be(arg.h0, Prelude_Lin(null), arg.h2, arg.h3, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h1), _sc$$0.h2)))) }; case "Seq": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h0), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h2, _sc$$2.h1), _sc$$0.h2)) }; case "Nest": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$1.h2)(_sc$$2.h0), _sc$$2.h1), _sc$$0.h2) }; case "Text": { const sc$$13 = Prelude__$7C$7C_(Prelude_not(arg.h0), Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h3)(Prelude_slen(_sc$$2.h0)), arg.h2)); switch (sc$$13.tag) { case "False": return { tag: "return", h0: Prelude_Nothing(null) }; case "True": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: Prelude__$3A$3C_(null, arg.h1, Lib_Prettier_TEXT(_sc$$2.h0)), h2: arg.h2, h3: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h3)(Prelude_slen(_sc$$2.h0)), h4: _sc$$0.h2 }; } break; } case "Line": return { tag: "Lib.Prettier.be", h0: Prelude_False, h1: Prelude__$3A$3C_(null, arg.h1, Lib_Prettier_LINE(_sc$$1.h2)), h2: arg.h2, h3: _sc$$1.h2, h4: _sc$$0.h2 }; case "Empty": return { tag: "Lib.Prettier.be", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Just(null, Prelude__$3C$3E$3E_(null, arg.h1, Prelude_Nil(null))) }; } }; const Lib_Prettier_be = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (bouncer(Lib_Prettier_REC_be, { tag: "Lib.Prettier.be", h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3, h4: _$$4 })); const Prelude_fromMaybe = ( a$$0, _$$1, _$$2 ) => { switch (_$$2.tag) { case "Nothing": return _$$1; case "Just": return _$$2.h1; } }; const Lib_Prettier_best = ( _$$0, _$$1, _$$2 ) => (Prelude_fromMaybe(null, Prelude_Nil(null), Lib_Prettier_be(Prelude_False, Prelude_Lin(null), _$$0, _$$1, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, 0, _$$2), Prelude_Nil(null))))); @@ -161,20 +161,20 @@ const Prelude_natToInt = (n) => { return rval }; const Prelude_replicate = (n,c) => c.repeat(Prelude_natToInt(n)); -const Lib_Prettier_REC_layout = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Prettier.layout": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "LINE": return { tag: "Lib.Prettier.layout", h0: _sc$$0.h2, h1: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h1, "\n"), Prelude_replicate(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$1.h0), " ")) }; case "TEXT": return { tag: "Lib.Prettier.layout", h0: _sc$$0.h2, h1: Prelude__$3A$3C_(null, arg.h1, _sc$$1.h0) }; } break; } case "Nil": return { tag: "return", h0: Prelude_fastConcat(Prelude__$3C$3E$3E_(null, arg.h1, Prelude_Nil(null))) }; } break; } } }; +const Lib_Prettier_REC_layout = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "LINE": return { tag: "Lib.Prettier.layout", h0: _sc$$0.h2, h1: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h1, "\n"), Prelude_replicate(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$1.h0), " ")) }; case "TEXT": return { tag: "Lib.Prettier.layout", h0: _sc$$0.h2, h1: Prelude__$3A$3C_(null, arg.h1, _sc$$1.h0) }; } break; } case "Nil": return { tag: "return", h0: Prelude_fastConcat(Prelude__$3C$3E$3E_(null, arg.h1, Prelude_Nil(null))) }; } }; const Lib_Prettier_layout = ( _$$0, _$$1 ) => (bouncer(Lib_Prettier_REC_layout, { tag: "Lib.Prettier.layout", h0: _$$0, h1: _$$1 })); const Lib_Prettier_render = ( _$$0, _$$1 ) => (Lib_Prettier_layout(Lib_Prettier_best(_$$0, 0, Lib_Prettier_noAlt(_$$1)), Prelude_Lin(null))); const Prelude__$2218_ = ( A$$0, B$$1, C$$2, _$$3, _$$4, _$$5 ) => (_$$3(_$$4(_$$5))); -const Prelude_REC_reverse_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.reverse.go": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.reverse.go", h0: arg.h0, h1: arg.h1, h2: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h2), h3: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h2 }; } break; } } }; +const Prelude_REC_reverse_go = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.reverse.go", h0: arg.h0, h1: arg.h1, h2: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h2), h3: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h2 }; } }; const Prelude_reverse_go = ( _, _1, _$$2, _$$3 ) => (bouncer(Prelude_REC_reverse_go, { tag: "Prelude.reverse.go", h0: _, h1: _1, h2: _$$2, h3: _$$3 })); const Prelude_reverse = ( a$$0 ) => (( eta ) => (Prelude_reverse_go(a$$0, null, Prelude_Nil(null), eta))); -const Prelude_REC_Prelude_Functor$20Prelude_List$2Cmap_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.Prelude.Functor Prelude.List,map.go": { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.Prelude.Functor Prelude.List,map.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: null, h6: null, h7: arg.h7, h8: _sc$$0.h2, h9: Prelude__$3A$3A_(null, arg.h7(_sc$$0.h1), arg.h9) }; case "Nil": return { tag: "return", h0: Prelude_reverse(null)(arg.h9) }; } break; } } }; +const Prelude_REC_Prelude_Functor$20Prelude_List$2Cmap_go = ( arg ) => { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.Prelude.Functor Prelude.List,map.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: null, h6: null, h7: arg.h7, h8: _sc$$0.h2, h9: Prelude__$3A$3A_(null, arg.h7(_sc$$0.h1), arg.h9) }; case "Nil": return { tag: "return", h0: Prelude_reverse(null)(arg.h9) }; } }; const Prelude_Prelude_Functor$20Prelude_List$2Cmap_go = ( _, _1, _2, _3, _4, a$$5, b$$6, _$$7, _$$8, _$$9 ) => (bouncer(Prelude_REC_Prelude_Functor$20Prelude_List$2Cmap_go, { tag: "Prelude.Prelude.Functor Prelude.List,map.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: a$$5, h6: b$$6, h7: _$$7, h8: _$$8, h9: _$$9 })); const Prelude_Prelude_Functor$20Prelude_List$2Cmap = ( a$$0, b$$1, _$$2, _$$3 ) => (Prelude_Prelude_Functor$20Prelude_List$2Cmap_go(a$$0, b$$1, _$$2, _$$3, null, null, null, _$$2, _$$3, Prelude_Nil(null))); const Prelude_Prelude_Functor$20Prelude_List = Prelude_MkFunctor(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Prelude_Prelude_Functor$20Prelude_List$2Cmap(null, null, eta, eta1)))))); const Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_ = ( a$$0, _$$1, _$$2 ) => { switch (_$$1.tag) { case "_::_": return Prelude__$3A$3A_(null, _$$1.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_$$1.h2)(_$$2)); case "Nil": return _$$2; } }; const Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29 = ( a ) => (Prelude_MkConcat(null, ( eta ) => (( eta1 ) => (Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29$2C_$2B$2B_(null, eta, eta1))))); -const Prelude_REC_joinBy = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.joinBy": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "_::_": return { tag: "Prelude.joinBy", h0: arg.h0, h1: Prelude__$3A$3A_(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_sc$$0.h1)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(arg.h0)(_sc$$1.h1)), _sc$$1.h2) }; case "Nil": return { tag: "return", h0: _sc$$0.h1 }; } break; } case "Nil": return { tag: "return", h0: "" }; } break; } } }; +const Prelude_REC_joinBy = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "_::_": return { tag: "Prelude.joinBy", h0: arg.h0, h1: Prelude__$3A$3A_(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_sc$$0.h1)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(arg.h0)(_sc$$1.h1)), _sc$$1.h2) }; case "Nil": return { tag: "return", h0: _sc$$0.h1 }; } break; } case "Nil": return { tag: "return", h0: "" }; } }; const Prelude_joinBy = ( _$$0, _$$1 ) => (bouncer(Prelude_REC_joinBy, { tag: "Prelude.joinBy", h0: _$$0, h1: _$$1 })); const Prelude_unlines = ( _$$0 ) => (Prelude_joinBy("\n", _$$0)); const Lib_Common_Prelude_Show$20Lib_Common_QName$2Cshow = ( _$$0 ) => { const _sc$$0 = _$$0.h0; switch (_sc$$0.tag) { case "Nil": return _$$0.h1; default: return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude_joinBy(".", _$$0.h0))(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(".")(_$$0.h1)); } }; @@ -202,7 +202,7 @@ const Data_Int_Prelude_Cast$20Prim_Char$20Prim_Int$2Ccast = Prelude_ord; const Data_Int_Prelude_Cast$20Prim_Char$20Prim_Int = Prelude_MkCast(null, null, Data_Int_Prelude_Cast$20Prim_Char$20Prim_Int$2Ccast); const Lib_Common_hexChars = Prelude_unpack("0123456789ABCDEF"); const Prelude_mod = (a,b) => a % b; -const Prelude_REC_getAt = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.getAt": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h1; switch (_sc$$1.tag) { case "S": return { tag: "Prelude.getAt", h0: null, h1: _sc$$1.h0, h2: _sc$$0.h2 }; case "Z": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Prelude_REC_getAt = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h1; switch (_sc$$1.tag) { case "S": return { tag: "Prelude.getAt", h0: null, h1: _sc$$1.h0, h2: _sc$$0.h2 }; case "Z": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Prelude_getAt = ( a$$0, _$$1, _$$2 ) => (bouncer(Prelude_REC_getAt, { tag: "Prelude.getAt", h0: a$$0, h1: _$$1, h2: _$$2 })); const Lib_Common_hexDigit = ( _$$0 ) => (Prelude_fromMaybe(null, " ", Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Prelude_mod(_$$0, 16)), Lib_Common_hexChars))); const Prelude_divInt = (x,y) => x / y | 0; @@ -231,20 +231,20 @@ const Prelude_pack = (cs) => { const Lib_Compile_jsKeywords = Prelude__$3A$3A_(null, "break", Prelude__$3A$3A_(null, "case", Prelude__$3A$3A_(null, "catch", Prelude__$3A$3A_(null, "continue", Prelude__$3A$3A_(null, "debugger", Prelude__$3A$3A_(null, "default", Prelude__$3A$3A_(null, "delete", Prelude__$3A$3A_(null, "do", Prelude__$3A$3A_(null, "else", Prelude__$3A$3A_(null, "finally", Prelude__$3A$3A_(null, "for", Prelude__$3A$3A_(null, "function", Prelude__$3A$3A_(null, "if", Prelude__$3A$3A_(null, "in", Prelude__$3A$3A_(null, "instanceof", Prelude__$3A$3A_(null, "new", Prelude__$3A$3A_(null, "return", Prelude__$3A$3A_(null, "switch", Prelude__$3A$3A_(null, "this", Prelude__$3A$3A_(null, "throw", Prelude__$3A$3A_(null, "try", Prelude__$3A$3A_(null, "typeof", Prelude__$3A$3A_(null, "var", Prelude__$3A$3A_(null, "void", Prelude__$3A$3A_(null, "while", Prelude__$3A$3A_(null, "with", Prelude__$3A$3A_(null, "class", Prelude__$3A$3A_(null, "const", Prelude__$3A$3A_(null, "enum", Prelude__$3A$3A_(null, "export", Prelude__$3A$3A_(null, "extends", Prelude__$3A$3A_(null, "import", Prelude__$3A$3A_(null, "super", Prelude__$3A$3A_(null, "implements", Prelude__$3A$3A_(null, "class", Prelude__$3A$3A_(null, "let", Prelude__$3A$3A_(null, "package", Prelude__$3A$3A_(null, "private", Prelude__$3A$3A_(null, "protected", Prelude__$3A$3A_(null, "public", Prelude__$3A$3A_(null, "static", Prelude__$3A$3A_(null, "yield", Prelude__$3A$3A_(null, "null", Prelude__$3A$3A_(null, "true", Prelude__$3A$3A_(null, "false", Prelude__$3A$3A_(null, "String", Prelude__$3A$3A_(null, "Number", Prelude__$3A$3A_(null, "Array", Prelude__$3A$3A_(null, "BigInt", Prelude_Nil(null)))))))))))))))))))))))))))))))))))))))))))))))))); const Prelude_Prelude_Eq$20Prim_String$2C_$3D$3D_ = ( _$$0, _$$1 ) => (Prelude_jsEq(null, _$$0, _$$1)); const Prelude_Prelude_Eq$20Prim_String = Prelude_MkEq(null, ( eta ) => (( eta1 ) => (Prelude_Prelude_Eq$20Prim_String$2C_$3D$3D_(eta, eta1)))); -const Prelude_REC_elem = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.elem": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$7 = Prelude__$3D$3D_(null, arg.h1)(arg.h2)(_sc$$0.h1); switch (sc$$7.tag) { case "False": return { tag: "Prelude.elem", h0: null, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_True }; } break; } case "Nil": return { tag: "return", h0: Prelude_False }; } break; } } }; +const Prelude_REC_elem = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$7 = Prelude__$3D$3D_(null, arg.h1)(arg.h2)(_sc$$0.h1); switch (sc$$7.tag) { case "False": return { tag: "Prelude.elem", h0: null, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_True }; } break; } case "Nil": return { tag: "return", h0: Prelude_False }; } }; const Prelude_elem = ( a$$0, _$$1, _$$2, _$$3 ) => (bouncer(Prelude_REC_elem, { tag: "Prelude.elem", h0: a$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_Compile_jsIdent = ( _$$0 ) => { const sc$$2 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, _$$0, Lib_Compile_jsKeywords); switch (sc$$2.tag) { case "False": return Lib_Prettier_text(Prelude_pack(Lib_Compile_jsIdent_fix(_$$0, null, Prelude_unpack(_$$0)))); case "True": return Lib_Prettier_text(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("$")(_$$0)); } }; const Lib_Compile_expToDoc_entry = ( _, _1, _2, _$$3 ) => (Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(Lib_Compile_jsIdent(_$$3.h2))(Prelude__$3C$2B$3E_(null, Lib_Prettier_Prelude_Semigroup$20Lib_Prettier_Doc)(Lib_Prettier_text(":"))(Lib_Compile_expToDoc(_$$3.h3)))); const Lib_Prettier_Alt = ( h0, h1 ) => ({ tag: "Alt", h0: h0, h1: h1 }); const Lib_Prettier__$3C$2B$2F$3E_ = ( _$$0, _$$1 ) => (Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(_$$0)(Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(Lib_Prettier_Alt(Lib_Prettier_text(" "), Lib_Prettier_line))(_$$1))); const Lib_Prettier_folddoc = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "_::_": { const _sc$$0 = _$$1.h2; switch (_sc$$0.tag) { case "Nil": return _$$1.h1; default: return _$$0(_$$1.h1)(Lib_Prettier_folddoc(_$$0, _$$1.h2)); } break; } case "Nil": return Lib_Prettier_Empty; } }; -const Lib_Common_REC_quoteString_encode = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Common.quoteString.encode": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1) { case "\"": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "\"") }; case "\n": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "n") }; case "\\": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "\\") }; default: { const v = Prelude_cast(null, null, Data_Int_Prelude_Cast$20Prim_Char$20Prim_Int)(_sc$$0.h1); const sc$$8 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, v, 32); switch (sc$$8.tag) { case "False": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$0.h1) }; case "True": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "u"), Lib_Common_hexDigit(Data_Int_div(v, 4096))), Lib_Common_hexDigit(Data_Int_div(v, 256))), Lib_Common_hexDigit(Data_Int_div(v, 16))), Lib_Common_hexDigit(v)) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude__$3C$3E$3E_(null, arg.h3, Prelude__$3A$3A_(null, "\"", Prelude_Nil(null))) }; } break; } } }; +const Lib_Common_REC_quoteString_encode = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1) { case "\"": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "\"") }; case "\n": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "n") }; case "\\": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "\\") }; default: { const v = Prelude_cast(null, null, Data_Int_Prelude_Cast$20Prim_Char$20Prim_Int)(_sc$$0.h1); const sc$$8 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, v, 32); switch (sc$$8.tag) { case "False": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$0.h1) }; case "True": return { tag: "Lib.Common.quoteString.encode", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2, h3: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, arg.h3, "\\"), "u"), Lib_Common_hexDigit(Data_Int_div(v, 4096))), Lib_Common_hexDigit(Data_Int_div(v, 256))), Lib_Common_hexDigit(Data_Int_div(v, 16))), Lib_Common_hexDigit(v)) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude__$3C$3E$3E_(null, arg.h3, Prelude__$3A$3A_(null, "\"", Prelude_Nil(null))) }; } }; const Lib_Common_quoteString_encode = ( _, _1, _$$2, _$$3 ) => (bouncer(Lib_Common_REC_quoteString_encode, { tag: "Lib.Common.quoteString.encode", h0: _, h1: _1, h2: _$$2, h3: _$$3 })); const Lib_Common_quoteString = ( _$$0 ) => (Prelude_pack(Lib_Common_quoteString_encode(_$$0, null, Prelude_unpack(_$$0), Prelude__$3A$3C_(null, Prelude_Lin(null), "\"")))); const Lib_Prettier_commaSep = ( eta ) => (Lib_Prettier_folddoc(( a ) => (( b ) => (Lib_Prettier__$3C$2B$2F$3E_(Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(a)(Lib_Prettier_text(",")), b))), eta)); const Lib_Prettier_Nest = ( h0, h1 ) => ({ tag: "Nest", h0: h0, h1: h1 }); const Lib_Prettier_nest = ( eta ) => (( eta1 ) => (Lib_Prettier_Nest(eta, eta1))); -const Lib_Prettier_REC_flatten = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Prettier.flatten": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "Alt": return { tag: "Lib.Prettier.flatten", h0: _sc$$0.h0 }; case "Seq": return { tag: "return", h0: Lib_Prettier_Seq(Lib_Prettier_flatten(_sc$$0.h0), Lib_Prettier_flatten(_sc$$0.h1)) }; case "Nest": return { tag: "Lib.Prettier.flatten", h0: _sc$$0.h1 }; case "Text": return { tag: "return", h0: Lib_Prettier_Text(_sc$$0.h0) }; case "Line": return { tag: "return", h0: Lib_Prettier_Text(" ") }; case "Empty": return { tag: "return", h0: Lib_Prettier_Empty }; } break; } } }; +const Lib_Prettier_REC_flatten = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "Alt": return { tag: "Lib.Prettier.flatten", h0: _sc$$0.h0 }; case "Seq": return { tag: "return", h0: Lib_Prettier_Seq(Lib_Prettier_flatten(_sc$$0.h0), Lib_Prettier_flatten(_sc$$0.h1)) }; case "Nest": return { tag: "Lib.Prettier.flatten", h0: _sc$$0.h1 }; case "Text": return { tag: "return", h0: Lib_Prettier_Text(_sc$$0.h0) }; case "Line": return { tag: "return", h0: Lib_Prettier_Text(" ") }; case "Empty": return { tag: "return", h0: Lib_Prettier_Empty }; } }; const Lib_Prettier_flatten = ( _$$0 ) => (bouncer(Lib_Prettier_REC_flatten, { tag: "Lib.Prettier.flatten", h0: _$$0 })); const Lib_Prettier_group = ( _$$0 ) => (Lib_Prettier_Alt(Lib_Prettier_flatten(_$$0), _$$0)); const Lib_Prettier_bracket = ( _$$0, _$$1, _$$2 ) => (Lib_Prettier_group(Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(Lib_Prettier_text(_$$0))(Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(Lib_Prettier_nest(2)(Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(Lib_Prettier_line)(_$$1)))(Prelude__$2B$2B_(null, Lib_Prettier_Prelude_Concat$20Lib_Prettier_Doc)(Lib_Prettier_line)(Lib_Prettier_text(_$$2)))))); @@ -263,10 +263,10 @@ const Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare = ( _$$0, _$$1 ) => { const Lib_Common_Prelude_Ord$20Lib_Common_QName = Prelude_MkOrd(null, ( eta ) => (( eta1 ) => (Lib_Common_Prelude_Ord$20Lib_Common_QName$2Ccompare(eta, eta1)))); const Prelude__$2F$3D_ = ( a$$0, _$$1, _$$2, _$$3 ) => (Prelude_not(Prelude__$3D$3D_(null, _$$1)(_$$2)(_$$3))); const Prelude__$3C$3D_ = ( a$$0, _$$1, _$$2, _$$3 ) => (Prelude__$2F$3D_(null, Prelude_Prelude_Eq$20Prelude_Ordering, Prelude_compare(null, _$$1)(_$$2)(_$$3), Prelude_GT)); -const Data_SortedMap_REC_lookupT23 = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Data.SortedMap.lookupT23": { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "Node3": { const sc$$14 = Prelude__$3C$3D_(null, arg.h3, arg.h4, _sc$$0.h4); switch (sc$$14.tag) { case "False": { const sc$$15 = Prelude__$3C$3D_(null, arg.h3, arg.h4, _sc$$0.h6); switch (sc$$15.tag) { case "False": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h7 }; case "True": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h5 }; } break; } case "True": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h3 }; } break; } case "Node2": { const sc$$12 = Prelude__$3C$3D_(null, arg.h3, arg.h4, _sc$$0.h4); switch (sc$$12.tag) { case "False": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h5 }; case "True": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h3 }; } break; } case "Leaf": { const sc$$10 = Prelude_compare(null, arg.h3)(_sc$$0.h2)(arg.h4); switch (sc$$10.tag) { case "EQ": return { tag: "return", h0: Prelude_Just(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3)) }; default: return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } break; } } }; +const Data_SortedMap_REC_lookupT23 = ( arg ) => { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "Node3": { const sc$$14 = Prelude__$3C$3D_(null, arg.h3, arg.h4, _sc$$0.h4); switch (sc$$14.tag) { case "False": { const sc$$15 = Prelude__$3C$3D_(null, arg.h3, arg.h4, _sc$$0.h6); switch (sc$$15.tag) { case "False": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h7 }; case "True": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h5 }; } break; } case "True": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h3 }; } break; } case "Node2": { const sc$$12 = Prelude__$3C$3D_(null, arg.h3, arg.h4, _sc$$0.h4); switch (sc$$12.tag) { case "False": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h5 }; case "True": return { tag: "Data.SortedMap.lookupT23", h0: null, h1: null, h2: null, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h3 }; } break; } case "Leaf": { const sc$$10 = Prelude_compare(null, arg.h3)(_sc$$0.h2)(arg.h4); switch (sc$$10.tag) { case "EQ": return { tag: "return", h0: Prelude_Just(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3)) }; default: return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; const Data_SortedMap_lookupT23 = ( h$$0, k$$1, v$$2, _$$3, _$$4, _$$5 ) => (bouncer(Data_SortedMap_REC_lookupT23, { tag: "Data.SortedMap.lookupT23", h0: h$$0, h1: k$$1, h2: v$$2, h3: _$$3, h4: _$$4, h5: _$$5 })); const Data_SortedMap_lookupMap = ( k$$0, v$$1, _$$2, _$$3, _$$4 ) => { switch (_$$4.tag) { case "MapOf": return Data_SortedMap_lookupT23(null, null, null, _$$2, _$$3, _$$4.h3); case "EmptyMap": return Prelude_Nothing(null); } }; -const Prelude_REC_mapMaybe = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.mapMaybe": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$7 = arg.h2(_sc$$0.h1); switch (sc$$7.tag) { case "Nothing": return { tag: "Prelude.mapMaybe", h0: null, h1: null, h2: arg.h2, h3: _sc$$0.h2 }; case "Just": return { tag: "return", h0: Prelude__$3A$3A_(null, sc$$7.h1, Prelude_mapMaybe(null, null, arg.h2, _sc$$0.h2)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Prelude_REC_mapMaybe = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$7 = arg.h2(_sc$$0.h1); switch (sc$$7.tag) { case "Nothing": return { tag: "Prelude.mapMaybe", h0: null, h1: null, h2: arg.h2, h3: _sc$$0.h2 }; case "Just": return { tag: "return", h0: Prelude__$3A$3A_(null, sc$$7.h1, Prelude_mapMaybe(null, null, arg.h2, _sc$$0.h2)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Prelude_mapMaybe = ( a$$0, b$$1, _$$2, _$$3 ) => (bouncer(Prelude_REC_mapMaybe, { tag: "Prelude.mapMaybe", h0: a$$0, h1: b$$1, h2: _$$2, h3: _$$3 })); const Lib_Compile_JConst = ( h0, h1 ) => ({ tag: "JConst", h0: h0, h1: h1 }); const Lib_Compile_JReturn = ( h0 ) => ({ tag: "JReturn", h0: h0 }); @@ -276,19 +276,19 @@ const Lib_Compile_termToJS_go = ( _, _1, _2, _3, _4, _5, _6, e$$7, _$$8, _$$9, _ const Lib_Compile__jsenv = ( _$$0 ) => (_$$0.h0); const Lib_Compile_JLam = ( h0, h1 ) => ({ tag: "JLam", h0: h0, h1: h1 }); const Lib_Compile_push = ( _$$0, _$$1 ) => (Lib_Compile_MkEnv(Prelude__$3A$3A_(null, _$$1, _$$0.h0), _$$0.h1)); -const Lib_Compile_REC_freshName_free = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.freshName.free": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Var": { const sc$$9 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h0)(arg.h4); switch (sc$$9.tag) { case "False": return { tag: "Lib.Compile.freshName.free", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2, h4: arg.h4 }; case "True": return { tag: "return", h0: Prelude_False }; } break; } default: return { tag: "Lib.Compile.freshName.free", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2, h4: arg.h4 }; } break; } case "Nil": return { tag: "return", h0: Prelude_True }; } break; } } }; +const Lib_Compile_REC_freshName_free = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Var": { const sc$$9 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h0)(arg.h4); switch (sc$$9.tag) { case "False": return { tag: "Lib.Compile.freshName.free", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2, h4: arg.h4 }; case "True": return { tag: "return", h0: Prelude_False }; } break; } default: return { tag: "Lib.Compile.freshName.free", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2, h4: arg.h4 }; } break; } case "Nil": return { tag: "return", h0: Prelude_True }; } }; const Lib_Compile_freshName_free = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Lib_Compile_REC_freshName_free, { tag: "Lib.Compile.freshName.free", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); -const Lib_Compile_REC_freshName_free_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.freshName.free.go": { const nm$27 = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(arg.h4))(""))(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(arg.h5)))(""); const sc$$7 = Lib_Compile_freshName_free(arg.h0, arg.h1, arg.h2, Lib_Compile__jsenv(arg.h1), nm$27); switch (sc$$7.tag) { case "False": return { tag: "Lib.Compile.freshName.free.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h5) }; case "True": return { tag: "return", h0: nm$27 }; } break; } } }; +const Lib_Compile_REC_freshName_free_go = ( arg ) => { const nm$27 = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(arg.h4))(""))(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(arg.h5)))(""); const sc$$7 = Lib_Compile_freshName_free(arg.h0, arg.h1, arg.h2, Lib_Compile__jsenv(arg.h1), nm$27); switch (sc$$7.tag) { case "False": return { tag: "Lib.Compile.freshName.free.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h5) }; case "True": return { tag: "return", h0: nm$27 }; } }; const Lib_Compile_freshName_free_go = ( _, _1, _2, _3, _$$4, _$$5 ) => (bouncer(Lib_Compile_REC_freshName_free_go, { tag: "Lib.Compile.freshName.free.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _$$4, h5: _$$5 })); const Lib_Compile_freshName = ( _$$0, _$$1 ) => { const sc$$4 = Lib_Compile_freshName_free(_$$0, _$$1, null, Lib_Compile__jsenv(_$$1), _$$0); switch (sc$$4.tag) { case "False": return Lib_Compile_freshName_free_go(_$$0, _$$1, null, null, _$$0, 1); case "True": return _$$0; } }; const Lib_Compile_freshName$27 = ( _$$0, _$$1 ) => { const nm$27 = Lib_Compile_freshName(_$$0, _$$1); const env$27 = Lib_Compile_push(_$$1, Lib_Compile_Var(nm$27)); return Prelude__$2C_(null, null, nm$27, env$27); }; -const Lib_Compile_REC_freshNames_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.freshNames.go": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$9 = Lib_Compile_freshName$27(_sc$$0.h1, arg.h4); return { tag: "Lib.Compile.freshNames.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2, h4: sc$$9.h3, h5: Prelude__$3A$3C_(null, arg.h5, sc$$9.h2) }; break; } case "Nil": return { tag: "return", h0: Prelude__$2C_(null, null, Prelude__$3C$3E$3E_(null, arg.h5, Prelude_Nil(null)), arg.h4) }; } break; } } }; +const Lib_Compile_REC_freshNames_go = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$9 = Lib_Compile_freshName$27(_sc$$0.h1, arg.h4); return { tag: "Lib.Compile.freshNames.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2, h4: sc$$9.h3, h5: Prelude__$3A$3C_(null, arg.h5, sc$$9.h2) }; break; } case "Nil": return { tag: "return", h0: Prelude__$2C_(null, null, Prelude__$3C$3E$3E_(null, arg.h5, Prelude_Nil(null)), arg.h4) }; } }; const Lib_Compile_freshNames_go = ( _, _1, _2, _$$3, _$$4, _$$5 ) => (bouncer(Lib_Compile_REC_freshNames_go, { tag: "Lib.Compile.freshNames.go", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4, h5: _$$5 })); const Lib_Compile_freshNames = ( _$$0, _$$1 ) => (Lib_Compile_freshNames_go(_$$0, _$$1, null, _$$0, _$$1, Prelude_Lin(null))); const Lib_Compile_termToJS_etaExpand = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11 ) => { switch (_$$9.tag) { case "S": { const nm$27 = Lib_Compile_freshName("eta", _$$8); const env$27 = Lib_Compile_push(_$$8, Lib_Compile_Var(nm$27)); return Lib_Compile_JLam(Prelude__$3A$3A_(null, nm$27, Prelude_Nil(null)), Lib_Compile_JReturn(Lib_Compile_termToJS_etaExpand(_, _1, _2, _3, _4, _5, _6, _7, Lib_Compile_push(_$$8, Lib_Compile_Var(nm$27)), _$$9.h0, Prelude__$3A$3C_(null, _$$10, Lib_Compile_Var(nm$27)), _$$11))); break; } case "Z": return Lib_Compile_Apply(_$$11, Prelude__$3C$3E$3E_(null, _$$10, Prelude_Nil(null))); } }; const Lib_Compile_termToJS_etaExpand_argsToJS = ( _, _1, _2, _3, _4, _5, _6, _7, _8, e$$9, _$$10, _$$11, _$$12, _$$13 ) => { switch (_$$11.tag) { case "_::_": return Lib_Compile_termToJS(null, _1, _$$11.h1, ( x$27 ) => (Lib_Compile_termToJS_etaExpand_argsToJS(_, _1, _2, _3, _4, _5, _6, _7, _8, null, _$$10, _$$11.h2, Prelude__$3A$3C_(null, _$$12, x$27), _$$13))); case "Nil": return _$$13(Lib_Compile_termToJS_etaExpand(_, _1, _2, _3, _4, _5, _6, _7, _1, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_6), _$$12, _$$10)); } }; const Lib_Compile_Dot = ( h0, h1 ) => ({ tag: "Dot", h0: h0, h1: h1 }); -const Lib_Compile_REC_mkEnv = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.mkEnv": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Compile.mkEnv", h0: arg.h0, h1: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h1), h2: Lib_Compile_push(arg.h2, Lib_Compile_Dot(Lib_Compile_Var(arg.h0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("h")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(arg.h1)))(""))), h3: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h2 }; } break; } } }; +const Lib_Compile_REC_mkEnv = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Compile.mkEnv", h0: arg.h0, h1: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h1), h2: Lib_Compile_push(arg.h2, Lib_Compile_Dot(Lib_Compile_Var(arg.h0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("h")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(arg.h1)))(""))), h3: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h2 }; } }; const Lib_Compile_mkEnv = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_Compile_REC_mkEnv, { tag: "Lib.Compile.mkEnv", h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_Compile_JConAlt = ( h0, h1, h2 ) => ({ tag: "JConAlt", h0: h0, h1: h1, h2: h2 }); const Lib_Compile_JDefAlt = ( h0, h1 ) => ({ tag: "JDefAlt", h0: h0, h1: h1 }); @@ -306,14 +306,14 @@ const Lib_Compile_JAssign = ( h0, h1 ) => ({ tag: "JAssign", h0: h0, h1: h1 }) const Lib_Compile_JUndefined = { tag: "JUndefined" }; const Lib_Compile_LitObject = ( h0 ) => ({ tag: "LitObject", h0: h0 }); const Lib_Compile_Raw = ( h0 ) => ({ tag: "Raw", h0: h0 }); -const Lib_Compile_REC_termToJS = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.termToJS": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "CRaw": return { tag: "return", h0: arg.h3(Lib_Compile_Raw(_sc$$0.h0)) }; case "CConstr": return { tag: "Lib.Compile.termToJS.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h0, h5: _sc$$0.h1, h6: null, h7: null, h8: _sc$$0.h1, h9: 0, h10: ( args ) => (arg.h3(Lib_Compile_LitObject(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "tag", Lib_Compile_LitString(_sc$$0.h0)), args)))) }; case "CErased": return { tag: "return", h0: arg.h3(Lib_Compile_JUndefined) }; case "CLetRec": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "CErased": return { tag: "Lib.Compile.termToJS", h0: null, h1: Lib_Compile_push(arg.h1, Lib_Compile_JUndefined), h2: _sc$$0.h2, h3: arg.h3 }; default: { const nm$27 = Lib_Compile_freshName(_sc$$0.h0, arg.h1); const env$27 = Lib_Compile_push(arg.h1, Lib_Compile_Var(nm$27)); const sc$$9 = Lib_Compile_termToJS(null, env$27, _sc$$0.h1, ( eta ) => (Lib_Compile_JAssign(nm$27, eta))); switch (sc$$9.tag) { case "JAssign": return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JConst(nm$27, sc$$9.h1), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; default: return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JLet(nm$27, sc$$9), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; } break; } } break; } case "CLet": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "CBnd": { const sc$$8 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$1.h0), Lib_Compile__jsenv(arg.h1)); switch (sc$$8.tag) { case "Nothing": return { tag: "return", h0: Prelude_fatalError(null, "bad bounds") }; case "Just": return { tag: "Lib.Compile.termToJS", h0: null, h1: Lib_Compile_push(arg.h1, sc$$8.h1), h2: _sc$$0.h2, h3: arg.h3 }; } break; } default: { const nm$27 = Lib_Compile_freshName(_sc$$0.h0, arg.h1); const env$27 = Lib_Compile_push(arg.h1, Lib_Compile_Var(nm$27)); const sc$$9 = Lib_Compile_termToJS(null, arg.h1, _sc$$0.h1, ( eta ) => (Lib_Compile_JAssign(nm$27, eta))); switch (sc$$9.tag) { case "JAssign": return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JConst(nm$27, sc$$9.h1), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; default: return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JLet(nm$27, sc$$9), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; } break; } } break; } case "CLit": return { tag: "return", h0: arg.h3(Lib_Compile_litToJS(_sc$$0.h0)) }; case "CMeta": return { tag: "return", h0: arg.h3(Lib_Compile_LitString(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("META ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_sc$$0.h0)))(""))) }; case "CRef": return { tag: "return", h0: arg.h3(Lib_Compile_Var(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$0.h0))) }; case "CCase": return { tag: "Lib.Compile.termToJS", h0: null, h1: arg.h1, h2: _sc$$0.h0, h3: ( $$case ) => { switch ($$case.tag) { case "Var": return Lib_Compile_termToJS_termToJSAlt_maybeCaseStmt(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, null, null, arg.h1, $$case.h0, _sc$$0.h1); default: { const nm = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("_sc$")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Lib_Compile__depth(arg.h1))))(""); const env$27 = Lib_Compile_MkEnv(Lib_Compile__jsenv(arg.h1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(Lib_Compile__depth(arg.h1))); return Lib_Compile_JSnoc(null, Lib_Compile_JConst(nm, $$case), Lib_Compile_termToJS_termToJSAlt_maybeCaseStmt(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, null, null, env$27, nm, _sc$$0.h1)); break; } } } }; case "CApp": return { tag: "Lib.Compile.termToJS", h0: null, h1: arg.h1, h2: _sc$$0.h0, h3: ( t$27 ) => (Lib_Compile_termToJS_etaExpand_argsToJS(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, null, null, null, t$27, _sc$$0.h1, Prelude_Lin(null), arg.h3)) }; case "CFun": { const sc$$6 = Lib_Compile_freshNames(_sc$$0.h0, arg.h1); return { tag: "return", h0: arg.h3(Lib_Compile_JLam(sc$$6.h2, Lib_Compile_termToJS(null, sc$$6.h3, _sc$$0.h1, Lib_Compile_JReturn))) }; break; } case "CLam": { const sc$$6 = Lib_Compile_freshName$27(_sc$$0.h0, arg.h1); return { tag: "return", h0: arg.h3(Lib_Compile_JLam(Prelude__$3A$3A_(null, sc$$6.h2, Prelude_Nil(null)), Lib_Compile_termToJS(null, sc$$6.h3, _sc$$0.h1, Lib_Compile_JReturn))) }; break; } case "CBnd": { const sc$$5 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0), Lib_Compile__jsenv(arg.h1)); switch (sc$$5.tag) { case "Nothing": return { tag: "return", h0: Prelude_fatalError(null, "Bad bounds") }; case "Just": return { tag: "return", h0: arg.h3(sc$$5.h1) }; } break; } } break; } case "Lib.Compile.termToJS.go": { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Compile.termToJS", h0: null, h1: arg.h1, h2: _sc$$0.h1, h3: ( t$27 ) => (Lib_Compile_termToJS_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, null, _sc$$0.h2, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h9)(1), ( args ) => (arg.h10(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("h")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(arg.h9)))(""), t$27), args))))) }; case "Nil": return { tag: "return", h0: arg.h10(Prelude_Nil(null)) }; } break; } } }; +const Lib_Compile_REC_termToJS = ( arg ) => { switch (arg.tag) { case "Lib.Compile.termToJS": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "CRaw": return { tag: "return", h0: arg.h3(Lib_Compile_Raw(_sc$$0.h0)) }; case "CConstr": return { tag: "Lib.Compile.termToJS.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h0, h5: _sc$$0.h1, h6: null, h7: null, h8: _sc$$0.h1, h9: 0, h10: ( args ) => (arg.h3(Lib_Compile_LitObject(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, "tag", Lib_Compile_LitString(_sc$$0.h0)), args)))) }; case "CErased": return { tag: "return", h0: arg.h3(Lib_Compile_JUndefined) }; case "CLetRec": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "CErased": return { tag: "Lib.Compile.termToJS", h0: null, h1: Lib_Compile_push(arg.h1, Lib_Compile_JUndefined), h2: _sc$$0.h2, h3: arg.h3 }; default: { const nm$27 = Lib_Compile_freshName(_sc$$0.h0, arg.h1); const env$27 = Lib_Compile_push(arg.h1, Lib_Compile_Var(nm$27)); const sc$$9 = Lib_Compile_termToJS(null, env$27, _sc$$0.h1, ( eta ) => (Lib_Compile_JAssign(nm$27, eta))); switch (sc$$9.tag) { case "JAssign": return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JConst(nm$27, sc$$9.h1), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; default: return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JLet(nm$27, sc$$9), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; } break; } } break; } case "CLet": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "CBnd": { const sc$$8 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$1.h0), Lib_Compile__jsenv(arg.h1)); switch (sc$$8.tag) { case "Nothing": return { tag: "return", h0: Prelude_fatalError(null, "bad bounds") }; case "Just": return { tag: "Lib.Compile.termToJS", h0: null, h1: Lib_Compile_push(arg.h1, sc$$8.h1), h2: _sc$$0.h2, h3: arg.h3 }; } break; } default: { const nm$27 = Lib_Compile_freshName(_sc$$0.h0, arg.h1); const env$27 = Lib_Compile_push(arg.h1, Lib_Compile_Var(nm$27)); const sc$$9 = Lib_Compile_termToJS(null, arg.h1, _sc$$0.h1, ( eta ) => (Lib_Compile_JAssign(nm$27, eta))); switch (sc$$9.tag) { case "JAssign": return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JConst(nm$27, sc$$9.h1), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; default: return { tag: "return", h0: Lib_Compile_JSnoc(null, Lib_Compile_JLet(nm$27, sc$$9), Lib_Compile_termToJS(null, env$27, _sc$$0.h2, arg.h3)) }; } break; } } break; } case "CLit": return { tag: "return", h0: arg.h3(Lib_Compile_litToJS(_sc$$0.h0)) }; case "CMeta": return { tag: "return", h0: arg.h3(Lib_Compile_LitString(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("META ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_sc$$0.h0)))(""))) }; case "CRef": return { tag: "return", h0: arg.h3(Lib_Compile_Var(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$0.h0))) }; case "CCase": return { tag: "Lib.Compile.termToJS", h0: null, h1: arg.h1, h2: _sc$$0.h0, h3: ( $$case ) => { switch ($$case.tag) { case "Var": return Lib_Compile_termToJS_termToJSAlt_maybeCaseStmt(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, null, null, arg.h1, $$case.h0, _sc$$0.h1); default: { const nm = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("_sc$")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Lib_Compile__depth(arg.h1))))(""); const env$27 = Lib_Compile_MkEnv(Lib_Compile__jsenv(arg.h1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(Lib_Compile__depth(arg.h1))); return Lib_Compile_JSnoc(null, Lib_Compile_JConst(nm, $$case), Lib_Compile_termToJS_termToJSAlt_maybeCaseStmt(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, null, null, env$27, nm, _sc$$0.h1)); break; } } } }; case "CApp": return { tag: "Lib.Compile.termToJS", h0: null, h1: arg.h1, h2: _sc$$0.h0, h3: ( t$27 ) => (Lib_Compile_termToJS_etaExpand_argsToJS(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, null, null, null, t$27, _sc$$0.h1, Prelude_Lin(null), arg.h3)) }; case "CFun": { const sc$$6 = Lib_Compile_freshNames(_sc$$0.h0, arg.h1); return { tag: "return", h0: arg.h3(Lib_Compile_JLam(sc$$6.h2, Lib_Compile_termToJS(null, sc$$6.h3, _sc$$0.h1, Lib_Compile_JReturn))) }; break; } case "CLam": { const sc$$6 = Lib_Compile_freshName$27(_sc$$0.h0, arg.h1); return { tag: "return", h0: arg.h3(Lib_Compile_JLam(Prelude__$3A$3A_(null, sc$$6.h2, Prelude_Nil(null)), Lib_Compile_termToJS(null, sc$$6.h3, _sc$$0.h1, Lib_Compile_JReturn))) }; break; } case "CBnd": { const sc$$5 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0), Lib_Compile__jsenv(arg.h1)); switch (sc$$5.tag) { case "Nothing": return { tag: "return", h0: Prelude_fatalError(null, "Bad bounds") }; case "Just": return { tag: "return", h0: arg.h3(sc$$5.h1) }; } break; } } break; } case "Lib.Compile.termToJS.go": { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Compile.termToJS", h0: null, h1: arg.h1, h2: _sc$$0.h1, h3: ( t$27 ) => (Lib_Compile_termToJS_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, null, _sc$$0.h2, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h9)(1), ( args ) => (arg.h10(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("h")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(arg.h9)))(""), t$27), args))))) }; case "Nil": return { tag: "return", h0: arg.h10(Prelude_Nil(null)) }; } break; } } }; const Lib_Compile_termToJS = ( e$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_Compile_REC_termToJS, { tag: "Lib.Compile.termToJS", h0: e$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_Compile_maybeWrap = ( _$$0 ) => { switch (_$$0.tag) { case "JReturn": return _$$0.h0; default: return Lib_Compile_Apply(Lib_Compile_JLam(Prelude_Nil(null), _$$0), Prelude_Nil(null)); } }; const Lib_Compile_cexpToDoc = ( _$$0 ) => { const exp = Lib_Compile_maybeWrap(Lib_Compile_termToJS(null, Lib_Compile_emptyJSEnv, _$$0.h3, Lib_Compile_JReturn)); return Lib_Compile_stmtToDoc(null, Lib_Compile_JConst(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$0.h2), exp)); }; -const Prelude_REC_foldl = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.foldl": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.foldl", h0: null, h1: null, h2: arg.h2, h3: arg.h2(arg.h3)(_sc$$0.h1), h4: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h3 }; } break; } } }; +const Prelude_REC_foldl = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.foldl", h0: null, h1: null, h2: arg.h2, h3: arg.h2(arg.h3)(_sc$$0.h1), h4: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h3 }; } }; const Prelude_foldl = ( A$$0, B$$1, _$$2, _$$3, _$$4 ) => (bouncer(Prelude_REC_foldl, { tag: "Prelude.foldl", h0: A$$0, h1: B$$1, h2: _$$2, h3: _$$3, h4: _$$4 })); const Lib_Compile_sortedNames_getBody = ( _, _1, _2, _$$3 ) => { switch (_$$3.tag) { case "CLitAlt": return _$$3.h1; case "CDefAlt": return _$$3.h0; case "CConAlt": return _$$3.h2; } }; -const Lib_Compile_REC_sortedNames_getBody_getNames = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.sortedNames.getBody.getNames": { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "CRaw": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h1)(arg.h4) }; case "CConstr": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, eta, eta1))), arg.h4, _sc$$0.h1) }; case "CErased": return { tag: "return", h0: arg.h4 }; case "CLetRec": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, _sc$$0.h1), h5: _sc$$0.h2 }; case "CLet": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, _sc$$0.h1), h5: _sc$$0.h2 }; case "CLit": return { tag: "return", h0: arg.h4 }; case "CMeta": return { tag: "return", h0: arg.h4 }; case "CRef": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h0, arg.h4) }; case "CCase": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, eta, eta1))), arg.h4, Prelude__$3A$3A_(null, _sc$$0.h0, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Compile_sortedNames_getBody(arg.h0, arg.h1, arg.h2, eta)))(_sc$$0.h1))) }; case "CApp": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, eta, eta1))), arg.h4, Prelude__$3A$3A_(null, _sc$$0.h0, _sc$$0.h1)) }; case "CFun": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h1 }; case "CLam": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h1 }; case "CBnd": return { tag: "return", h0: arg.h4 }; } break; } } }; +const Lib_Compile_REC_sortedNames_getBody_getNames = ( arg ) => { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "CRaw": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h1)(arg.h4) }; case "CConstr": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, eta, eta1))), arg.h4, _sc$$0.h1) }; case "CErased": return { tag: "return", h0: arg.h4 }; case "CLetRec": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, _sc$$0.h1), h5: _sc$$0.h2 }; case "CLet": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, _sc$$0.h1), h5: _sc$$0.h2 }; case "CLit": return { tag: "return", h0: arg.h4 }; case "CMeta": return { tag: "return", h0: arg.h4 }; case "CRef": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h0, arg.h4) }; case "CCase": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, eta, eta1))), arg.h4, Prelude__$3A$3A_(null, _sc$$0.h0, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Compile_sortedNames_getBody(arg.h0, arg.h1, arg.h2, eta)))(_sc$$0.h1))) }; case "CApp": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_sortedNames_getBody_getNames(arg.h0, arg.h1, arg.h2, arg.h3, eta, eta1))), arg.h4, Prelude__$3A$3A_(null, _sc$$0.h0, _sc$$0.h1)) }; case "CFun": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h1 }; case "CLam": return { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h1 }; case "CBnd": return { tag: "return", h0: arg.h4 }; } }; const Lib_Compile_sortedNames_getBody_getNames = ( _, _1, _2, _3, _$$4, _$$5 ) => (bouncer(Lib_Compile_REC_sortedNames_getBody_getNames, { tag: "Lib.Compile.sortedNames.getBody.getNames", h0: _, h1: _1, h2: _2, h3: _3, h4: _$$4, h5: _$$5 })); const Prelude_snd = ( a$$0, b$$1, _$$2 ) => (_$$2.h3); const Data_SortedMap_lookupMap$27 = ( k$$0, v$$1, _$$2, _$$3, _$$4 ) => { switch (_$$4.tag) { case "MapOf": return Prelude__$3C$$$3E_(null, Prelude_Prelude_Functor$20Prelude_Maybe, null, null, ( eta ) => (Prelude_snd(null, null, eta)), Data_SortedMap_lookupT23(null, null, null, _$$2, _$$3, _$$4.h3)); case "EmptyMap": return Prelude_Nothing(null); } }; @@ -341,7 +341,7 @@ const Prelude_Prelude_Sub$20Prim_Int = Prelude_MkSub(null, ( eta ) => (( eta1 ) const Prelude__$2D_ = ( a$$0, _$$1 ) => (_$$1.h1); const Lib_CompileExp_CBnd = ( h0 ) => ({ tag: "CBnd", h0: h0 }); const Lib_CompileExp_CConstr = ( h0, h1 ) => ({ tag: "CConstr", h0: h0, h1: h1 }); -const Prelude_REC_length$27_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.length'.go": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.length'.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: null, h4: _sc$$0.h2, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1) }; case "Nil": return { tag: "return", h0: arg.h5 }; } break; } } }; +const Prelude_REC_length$27_go = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude.length'.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: null, h4: _sc$$0.h2, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1) }; case "Nil": return { tag: "return", h0: arg.h5 }; } }; const Prelude_length$27_go = ( _, _1, _2, a$$3, _$$4, _$$5 ) => (bouncer(Prelude_REC_length$27_go, { tag: "Prelude.length'.go", h0: _, h1: _1, h2: _2, h3: a$$3, h4: _$$4, h5: _$$5 })); const Prelude_length$27 = ( a$$0, _$$1 ) => (Prelude_length$27_go(a$$0, _$$1, null, null, _$$1, 0)); const Lib_TCO_doOptimize_mkWrap = ( _, _1, _$$2, _$$3 ) => { const _sc$$0 = _$$3.h3; switch (_sc$$0.tag) { case "CFun": { const arglen = Prelude_length$27(null, _sc$$0.h0); const arg = Lib_CompileExp_CConstr(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$3.h2), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( k ) => (Lib_CompileExp_CBnd(Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arglen)(k))(1))))(Lib_Common_range(0, arglen))); const body = Lib_CompileExp_CApp(Lib_CompileExp_CRef(Lib_TCO_bouncer), Prelude__$3A$3A_(null, Lib_CompileExp_CRef(_$$2), Prelude__$3A$3A_(null, arg, Prelude_Nil(null))), 0); return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _$$3.h2, Lib_CompileExp_CFun(_sc$$0.h0, body))); break; } default: return Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("error in mkWrap: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$3.h2)))(" not a CFun")); } }; @@ -362,7 +362,7 @@ const Lib_TCO_rewriteTailCalls = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "C const Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt = ( _, _1, _2, _3, _$$4, _$$5 ) => { const _sc$$0 = _$$5.h3; return Lib_CompileExp_CConAlt(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$5.h2), _sc$$0.h2, Lib_TCO_rewriteTailCalls(_$$4, _sc$$0.h3)); }; const Prelude_fst = ( a$$0, b$$1, _$$2 ) => (_$$2.h2); const Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt_splitFun = ( _, _1, _2, _3, _4, _$$5 ) => { const _sc$$0 = _$$5.h3; switch (_sc$$0.tag) { case "CFun": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _$$5.h2, Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1))); default: return Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TCO error: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$5.h2)))(" not a function")); } }; -const Lib_TCO_doOptimize = ( _$$0 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt_splitFun(_$$0, null, null, null, null, eta)))(_$$0), ( splitFuns ) => { const nms = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(_$$0); const alts = Prelude__$3A$3A_(null, Lib_CompileExp_CConAlt("return", Prelude__$3A$3A_(null, "rval", Prelude_Nil(null)), Lib_CompileExp_CBnd(0)), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt(_$$0, null, null, null, nms, eta)))(splitFuns)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_TCO_doOptimize_mkWrap_mkRecName(_$$0, null, null, nms), ( recName ) => { const recfun = Lib_CompileExp_CFun(Prelude__$3A$3A_(null, "arg", Prelude_Nil(null)), Lib_CompileExp_CCase(Lib_CompileExp_CBnd(0), alts)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_TCO_doOptimize_mkWrap(_$$0, null, recName, eta)))(_$$0), ( wrapped ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, recName, recfun), wrapped)))); }); })); +const Lib_TCO_doOptimize = ( _$$0 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt_splitFun(_$$0, null, null, null, null, eta)))(_$$0), ( splitFuns ) => { const nms = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(_$$0); const alts = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_TCO_doOptimize_mkWrap_mkRecName_mkAlt(_$$0, null, null, null, nms, eta)))(splitFuns); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_TCO_doOptimize_mkWrap_mkRecName(_$$0, null, null, nms), ( recName ) => { const recfun = Lib_CompileExp_CFun(Prelude__$3A$3A_(null, "arg", Prelude_Nil(null)), Lib_CompileExp_CCase(Lib_CompileExp_CBnd(0), alts)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_TCO_doOptimize_mkWrap(_$$0, null, recName, eta)))(_$$0), ( wrapped ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, recName, recfun), wrapped)))); }); })); const Prelude_flip = ( a$$0, b$$1, c$$2, _$$3, _$$4, _$$5 ) => (_$$3(_$$5)(_$$4)); const Lib_TCO_tailCallOpt_doUpdate_processGroup = ( _, _1, _2, _$$3, _$$4 ) => { const pairs = Prelude_mapMaybe(null, null, ( eta ) => (Prelude_flip(null, null, null, ( eta ) => (( eta1 ) => (Data_SortedMap_lookupMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, eta, eta1))), _$$3, eta)), _$$4); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_TCO_doOptimize(pairs), ( updates ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_TCO_tailCallOpt_doUpdate(_, _1, eta, eta1))), _$$3, updates)))); }; const Prelude_foldlM = ( m$$0, a$$1, e$$2, _$$3, _$$4, _$$5, _$$6 ) => (Prelude_foldl(null, null, ( ma ) => (( b ) => (Prelude__$3E$3E$3D_(null, null, null, _$$3, ma, ( eta ) => (Prelude_flip(null, null, null, _$$4, b, eta))))), Prelude_pure(null, _$$3)(null)(_$$5), _$$6)); @@ -385,7 +385,7 @@ const Data_Graph__lastIndex = ( k$$0, _$$1 ) => (_$$1.h1); const Prelude__$3E_ = ( a$$0, _$$1, _$$2, _$$3 ) => (Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prelude_Ordering)(Prelude_compare(null, _$$1)(_$$2)(_$$3))(Prelude_GT)); const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _$$10, _$$11 ) => (Data_Graph_strongConnect_min_splitComp_updateNode(_, _1, _2, _3, _4, _5, _6, _7, _$$10, _$$11, ( vt ) => (Data_Graph_MkTV(null, Data_Graph__name(null, vt), Data_Graph__out(null, vt), Data_Graph__index(null, vt), Data_Graph__lowLink(null, vt), Prelude_False)))); const Data_Graph__stack = ( k$$0, _$$1 ) => (_$$1.h2); -const Data_Graph_REC_strongConnect_min_splitComp = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Data.Graph.strongConnect.min.splitComp": { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": { const sc$$12 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prelude_Ordering)(Prelude_compare(null, arg.h2)(_sc$$0.h1)(Data_Graph__name(null, arg.h4)))(Prelude_EQ); switch (sc$$12.tag) { case "False": return { tag: "Data.Graph.strongConnect.min.splitComp", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h7), h8: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$2C_(null, null, Prelude__$3A$3A_(null, _sc$$0.h1, arg.h7), _sc$$0.h2) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$2C_(null, null, arg.h7, Prelude_Nil(null)) }; } break; } } }; +const Data_Graph_REC_strongConnect_min_splitComp = ( arg ) => { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": { const sc$$12 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prelude_Ordering)(Prelude_compare(null, arg.h2)(_sc$$0.h1)(Data_Graph__name(null, arg.h4)))(Prelude_EQ); switch (sc$$12.tag) { case "False": return { tag: "Data.Graph.strongConnect.min.splitComp", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h7), h8: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$2C_(null, null, Prelude__$3A$3A_(null, _sc$$0.h1, arg.h7), _sc$$0.h2) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$2C_(null, null, arg.h7, Prelude_Nil(null)) }; } }; const Data_Graph_strongConnect_min_splitComp = ( _, _1, _2, _3, _4, _5, _6, _$$7, _$$8 ) => (bouncer(Data_Graph_REC_strongConnect_min_splitComp, { tag: "Data.Graph.strongConnect.min.splitComp", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _$$7, h8: _$$8 })); const Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge_checkRoot = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _$$12 ) => { const sc$$13 = Data_SortedMap_lookupMap$27(null, null, _2, Data_Graph__name(null, _4), Data_Graph__graph(null, _$$12)); switch (sc$$13.tag) { case "Just": { const sc$$16 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Data_Graph__lowLink(null, sc$$13.h1))(Data_Graph__index(null, sc$$13.h1)); switch (sc$$16.tag) { case "False": return _$$12; case "True": { const sc$$17 = Data_Graph_strongConnect_min_splitComp(_, _1, _2, _3, _4, _5, _6, Prelude_Nil(null), Data_Graph__stack(null, _$$12)); const st = Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, eta, eta1))), _$$12, sc$$17.h2); const sc$$23 = Prelude__$7C$7C_(Prelude__$3E_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude_length$27(null, sc$$17.h2), 1), Prelude_elem(null, _1, Data_Graph__name(null, sc$$13.h1), Data_Graph__out(null, sc$$13.h1))); switch (sc$$23.tag) { case "False": return Data_Graph_MkTState(null, Data_Graph__lastIndex(null, st), sc$$17.h3, Data_Graph__result(null, st), Data_Graph__graph(null, st)); case "True": return Data_Graph_MkTState(null, Data_Graph__lastIndex(null, st), sc$$17.h3, Prelude__$3A$3A_(null, sc$$17.h2, Data_Graph__result(null, st)), Data_Graph__graph(null, st)); } break; } } break; } default: return _$$12; } }; const Data_Graph_strongConnect = ( k$$0, _$$1, _$$2, _$$3, _$$4 ) => { const index$27 = Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(Data_Graph__lastIndex(null, _$$3))(1); const vtx$27 = Data_Graph_MkTV(null, Data_Graph__name(null, _$$4), Data_Graph__out(null, _$$4), index$27, index$27, Prelude_True); const stack$27 = Prelude__$3A$3A_(null, Data_Graph__name(null, _$$4), Data_Graph__stack(null, _$$3)); const graph$27 = Data_SortedMap_updateMap(null, null, _$$2, Data_Graph__name(null, vtx$27), vtx$27, Data_Graph__graph(null, _$$3)); const st$27 = Data_Graph_MkTState(null, index$27, stack$27, Data_Graph__result(null, _$$3), graph$27); return Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge_checkRoot(k$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, null, null, null, null, Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Data_Graph_strongConnect_min_splitComp_updateNode_updateLowLink_offStack_doEdge(k$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, null, null, null, eta, eta1))), st$27, Data_Graph__out(null, _$$4))); }; @@ -393,10 +393,10 @@ const Data_Graph_tarjan_mkVertex_checkVertex = ( _, _1, _2, _3, _4, _5, _$$6, _$ const Data_Graph_tarjan_mkVertex = ( _, _1, _2, _3, _4, _$$5 ) => (Prelude__$2C_(null, null, _$$5.h2, Data_Graph_MkTV(null, _$$5.h2, _$$5.h3, 0, 0, Prelude_False))); const Data_SortedMap_EmptyMap = ( h0, h1 ) => ({ tag: "EmptyMap", h0: h0, h1: h1 }); const Prelude_const = ( a$$0, b$$1, _$$2, _$$3 ) => (_$$2); -const Data_SortedMap_REC_foldMap = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Data.SortedMap.foldMap": { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$13 = Data_SortedMap_lookupMap(null, null, arg.h2, _sc$$1.h2, arg.h4); switch (sc$$13.tag) { case "Nothing": return { tag: "Data.SortedMap.foldMap", h0: null, h1: null, h2: arg.h2, h3: arg.h3, h4: Data_SortedMap_updateMap(null, null, arg.h2, _sc$$1.h2, _sc$$1.h3, arg.h4), h5: _sc$$0.h2 }; case "Just": { const _sc$$2 = sc$$13.h1; return { tag: "Data.SortedMap.foldMap", h0: null, h1: null, h2: arg.h2, h3: arg.h3, h4: Data_SortedMap_updateMap(null, null, arg.h2, _sc$$1.h2, arg.h3(_sc$$2.h3)(_sc$$1.h3), arg.h4), h5: _sc$$0.h2 }; break; } } break; } case "Nil": return { tag: "return", h0: arg.h4 }; } break; } } }; +const Data_SortedMap_REC_foldMap = ( arg ) => { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$13 = Data_SortedMap_lookupMap(null, null, arg.h2, _sc$$1.h2, arg.h4); switch (sc$$13.tag) { case "Nothing": return { tag: "Data.SortedMap.foldMap", h0: null, h1: null, h2: arg.h2, h3: arg.h3, h4: Data_SortedMap_updateMap(null, null, arg.h2, _sc$$1.h2, _sc$$1.h3, arg.h4), h5: _sc$$0.h2 }; case "Just": { const _sc$$2 = sc$$13.h1; return { tag: "Data.SortedMap.foldMap", h0: null, h1: null, h2: arg.h2, h3: arg.h3, h4: Data_SortedMap_updateMap(null, null, arg.h2, _sc$$1.h2, arg.h3(_sc$$2.h3)(_sc$$1.h3), arg.h4), h5: _sc$$0.h2 }; break; } } break; } case "Nil": return { tag: "return", h0: arg.h4 }; } }; const Data_SortedMap_foldMap = ( a$$0, b$$1, _$$2, _$$3, _$$4, _$$5 ) => (bouncer(Data_SortedMap_REC_foldMap, { tag: "Data.SortedMap.foldMap", h0: a$$0, h1: b$$1, h2: _$$2, h3: _$$3, h4: _$$4, h5: _$$5 })); const Data_Graph_tarjan = ( k$$0, _$$1, _$$2, _$$3 ) => { const g = Data_SortedMap_foldMap(null, null, _$$2, ( eta ) => (( eta1 ) => (Prelude_const(null, null, eta, eta1))), Data_SortedMap_EmptyMap(null, null), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Data_Graph_tarjan_mkVertex(k$$0, _$$1, _$$2, _$$3, null, eta)))(_$$3)); return Data_Graph__result(null, Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Data_Graph_tarjan_mkVertex_checkVertex(k$$0, _$$1, _$$2, _$$3, null, null, eta, eta1))), Data_Graph_MkTState(null, 0, Prelude_Nil(null), Prelude_Nil(null), g), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(_$$3))); }; -const Data_SortedMap_REC_toList_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Data.SortedMap.toList.go": { const _sc$$0 = arg.h9; switch (_sc$$0.tag) { case "Node3": return { tag: "Data.SortedMap.toList.go", 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: null, h9: _sc$$0.h7, h10: Data_SortedMap_toList_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, null, _sc$$0.h5, Data_SortedMap_toList_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, null, _sc$$0.h3, arg.h10)) }; case "Node2": return { tag: "Data.SortedMap.toList.go", 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: null, h9: _sc$$0.h5, h10: Data_SortedMap_toList_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, null, _sc$$0.h3, arg.h10) }; case "Leaf": return { tag: "return", h0: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3), arg.h10) }; } break; } } }; +const Data_SortedMap_REC_toList_go = ( arg ) => { const _sc$$0 = arg.h9; switch (_sc$$0.tag) { case "Node3": return { tag: "Data.SortedMap.toList.go", 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: null, h9: _sc$$0.h7, h10: Data_SortedMap_toList_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, null, _sc$$0.h5, Data_SortedMap_toList_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, null, _sc$$0.h3, arg.h10)) }; case "Node2": return { tag: "Data.SortedMap.toList.go", 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: null, h9: _sc$$0.h5, h10: Data_SortedMap_toList_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, null, _sc$$0.h3, arg.h10) }; case "Leaf": return { tag: "return", h0: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3), arg.h10) }; } }; const Data_SortedMap_toList_go = ( _, _1, _2, _3, _4, _5, _6, _7, h$$8, _$$9, _$$10 ) => (bouncer(Data_SortedMap_REC_toList_go, { tag: "Data.SortedMap.toList.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: h$$8, h9: _$$9, h10: _$$10 })); const Data_SortedMap_toList = ( k$$0, v$$1, _$$2 ) => { switch (_$$2.tag) { case "MapOf": return Prelude_reverse(null)(Data_SortedMap_toList_go(k$$0, v$$1, _$$2, _$$2.h0, _$$2.h1, _$$2.h2, _$$2.h3, null, null, _$$2.h3, Prelude_Nil(null))); default: return Prelude_Nil(null); } }; const Lib_TCO_tailNames_altTailNames = ( _, _1, _2, _3, _$$4 ) => { switch (_$$4.tag) { case "CLitAlt": return Lib_TCO_tailNames(_$$4.h1); case "CDefAlt": return Lib_TCO_tailNames(_$$4.h0); case "CConAlt": return Lib_TCO_tailNames(_$$4.h2); } }; @@ -405,7 +405,7 @@ const Prelude_Prelude_Monad$20Prelude_List$2Cbind = ( a$$0, b$$1, _$$2, _$$3 ) = const Prelude_Prelude_Monad$20Prelude_List = Prelude_MkMonad(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Prelude_Prelude_Monad$20Prelude_List$2Cbind(null, null, eta, eta1))))), ( a ) => (( eta ) => (Prelude_Prelude_Monad$20Prelude_List$2Cpure(null, eta)))); const Prelude_id = ( a$$0, _$$1 ) => (_$$1); const Prelude_join = ( m$$0, a$$1, _$$2, _$$3 ) => (Prelude__$3E$3E$3D_(null, null, null, _$$2, _$$3, ( eta ) => (Prelude_id(null, eta)))); -const Lib_TCO_REC_tailNames = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.TCO.tailNames": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "CRaw": return { tag: "return", h0: Prelude_Nil(null) }; case "CConstr": return { tag: "return", h0: Prelude_Nil(null) }; case "CErased": return { tag: "return", h0: Prelude_Nil(null) }; case "CLetRec": return { tag: "Lib.TCO.tailNames", h0: _sc$$0.h2 }; case "CLet": return { tag: "Lib.TCO.tailNames", h0: _sc$$0.h2 }; case "CLit": return { tag: "return", h0: Prelude_Nil(null) }; case "CMeta": return { tag: "return", h0: Prelude_Nil(null) }; case "CRef": return { tag: "return", h0: Prelude_Nil(null) }; case "CCase": return { tag: "return", h0: Prelude_join(null, null, Prelude_Prelude_Monad$20Prelude_List, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_TCO_tailNames_altTailNames(arg.h0, _sc$$0.h0, _sc$$0.h1, null, eta)))(_sc$$0.h1)) }; case "CApp": { const _sc$$1 = _sc$$0.h0; switch (_sc$$1.tag) { case "CRef": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2) { case 0: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$1.h0, Prelude_Nil(null)) }; default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$1.h0, Prelude_Nil(null)) }; } break; } default: return { tag: "return", h0: Prelude_Nil(null) }; } break; } case "CFun": return { tag: "Lib.TCO.tailNames", h0: _sc$$0.h1 }; case "CLam": return { tag: "return", h0: Prelude_Nil(null) }; case "CBnd": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Lib_TCO_REC_tailNames = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "CRaw": return { tag: "return", h0: Prelude_Nil(null) }; case "CConstr": return { tag: "return", h0: Prelude_Nil(null) }; case "CErased": return { tag: "return", h0: Prelude_Nil(null) }; case "CLetRec": return { tag: "Lib.TCO.tailNames", h0: _sc$$0.h2 }; case "CLet": return { tag: "Lib.TCO.tailNames", h0: _sc$$0.h2 }; case "CLit": return { tag: "return", h0: Prelude_Nil(null) }; case "CMeta": return { tag: "return", h0: Prelude_Nil(null) }; case "CRef": return { tag: "return", h0: Prelude_Nil(null) }; case "CCase": return { tag: "return", h0: Prelude_join(null, null, Prelude_Prelude_Monad$20Prelude_List, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_TCO_tailNames_altTailNames(arg.h0, _sc$$0.h0, _sc$$0.h1, null, eta)))(_sc$$0.h1)) }; case "CApp": { const _sc$$1 = _sc$$0.h0; switch (_sc$$1.tag) { case "CRef": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2) { case 0: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$1.h0, Prelude_Nil(null)) }; default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$1.h0, Prelude_Nil(null)) }; } break; } default: return { tag: "return", h0: Prelude_Nil(null) }; } break; } case "CFun": return { tag: "Lib.TCO.tailNames", h0: _sc$$0.h1 }; case "CLam": return { tag: "return", h0: Prelude_Nil(null) }; case "CBnd": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Lib_TCO_tailNames = ( _$$0 ) => (bouncer(Lib_TCO_REC_tailNames, { tag: "Lib.TCO.tailNames", h0: _$$0 })); const Prelude_Prelude_Bifunctor$20Prelude__$D7_$2Cbimap = ( a$$0, b$$1, c$$2, d$$3, _$$4, _$$5, _$$6 ) => (Prelude__$2C_(null, null, _$$4(_$$6.h2), _$$5(_$$6.h3))); const Prelude_MkBifunctor = ( h0, h1 ) => ({ tag: "MkBifunctor", h0: h0, h1: h1 }); @@ -415,18 +415,18 @@ const Lib_TCO_tailCallOpt = ( _$$0 ) => { const graph = Prelude_map(null, Prelud const Lib_Ref2_MkRef = ( h0, h1, h2 ) => ({ tag: "MkRef", h0: h0, h1: h1, h2: h2 }); const Lib_CompileExp_CErased = { tag: "CErased" }; const Lib_CompileExp_compileDCon = ( _$$0, _$$1 ) => { switch (_$$1) { case 0: return Lib_CompileExp_CConstr(_$$0.h1, Prelude_Nil(null)); default: { const args = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( k ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("h")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(k)))("")))(Lib_Common_range(0, _$$1)); return Lib_CompileExp_CFun(args, Lib_CompileExp_CConstr(_$$0.h1, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( k ) => (Lib_CompileExp_CBnd(Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(_$$1)(k))(1))))(Lib_Common_range(0, _$$1)))); break; } } }; -const Lib_CompileExp_REC_apply_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.CompileExp.apply.go": { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "CApp": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Nil": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2) { case 0: return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h0, h6: arg.h6 }; default: { const _sc$$3 = arg.h6; switch (_sc$$3.tag) { case "_::_": return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_CompileExp_CApp(arg.h5, Prelude__$3A$3A_(null, _sc$$3.h1, Prelude_Nil(null)), 0), h6: _sc$$3.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h5) }; } break; } } break; } default: { const _sc$$2 = arg.h6; switch (_sc$$2.tag) { case "_::_": return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_CompileExp_CApp(arg.h5, Prelude__$3A$3A_(null, _sc$$2.h1, Prelude_Nil(null)), 0), h6: _sc$$2.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h5) }; } break; } } break; } default: { const _sc$$1 = arg.h6; switch (_sc$$1.tag) { case "_::_": return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_CompileExp_CApp(arg.h5, Prelude__$3A$3A_(null, _sc$$1.h1, Prelude_Nil(null)), 0), h6: _sc$$1.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h5) }; } break; } } break; } } }; +const Lib_CompileExp_REC_apply_go = ( arg ) => { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "CApp": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Nil": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2) { case 0: return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: _sc$$0.h0, h6: arg.h6 }; default: { const _sc$$3 = arg.h6; switch (_sc$$3.tag) { case "_::_": return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_CompileExp_CApp(arg.h5, Prelude__$3A$3A_(null, _sc$$3.h1, Prelude_Nil(null)), 0), h6: _sc$$3.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h5) }; } break; } } break; } default: { const _sc$$2 = arg.h6; switch (_sc$$2.tag) { case "_::_": return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_CompileExp_CApp(arg.h5, Prelude__$3A$3A_(null, _sc$$2.h1, Prelude_Nil(null)), 0), h6: _sc$$2.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h5) }; } break; } } break; } default: { const _sc$$1 = arg.h6; switch (_sc$$1.tag) { case "_::_": return { tag: "Lib.CompileExp.apply.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Lib_CompileExp_CApp(arg.h5, Prelude__$3A$3A_(null, _sc$$1.h1, Prelude_Nil(null)), 0), h6: _sc$$1.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h5) }; } break; } } }; const Lib_CompileExp_apply_go = ( _, _1, _2, _3, _4, _$$5, _$$6 ) => (bouncer(Lib_CompileExp_REC_apply_go, { tag: "Lib.CompileExp.apply.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _$$5, h6: _$$6 })); const Prelude_Prelude_Cast$20Prelude_Nat$20Prim_Int$2Ccast = Prelude_natToInt; const Prelude_Prelude_Cast$20Prelude_Nat$20Prim_Int = Prelude_MkCast(null, null, Prelude_Prelude_Cast$20Prelude_Nat$20Prim_Int$2Ccast); -const Lib_CompileExp_REC_apply = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.CompileExp.apply": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "S": { const _sc$$1 = arg.h1; switch (_sc$$1.tag) { case "_::_": return { tag: "Lib.CompileExp.apply", h0: arg.h0, h1: _sc$$1.h2, h2: Prelude__$3A$3C_(null, arg.h2, _sc$$1.h1), h3: _sc$$0.h0 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CApp(arg.h0, Prelude__$3C$3E$3E_(null, arg.h2, Prelude_Nil(null)), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prelude_Nat$20Prim_Int)(_sc$$0.h0)))) }; } break; } case "Z": return { tag: "return", h0: Lib_CompileExp_apply_go(arg.h0, arg.h1, arg.h2, arg.h3, null, Lib_CompileExp_CApp(arg.h0, Prelude__$3C$3E$3E_(null, arg.h2, Prelude_Nil(null)), 0), arg.h1) }; } break; } } }; +const Lib_CompileExp_REC_apply = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "S": { const _sc$$1 = arg.h1; switch (_sc$$1.tag) { case "_::_": return { tag: "Lib.CompileExp.apply", h0: arg.h0, h1: _sc$$1.h2, h2: Prelude__$3A$3C_(null, arg.h2, _sc$$1.h1), h3: _sc$$0.h0 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CApp(arg.h0, Prelude__$3C$3E$3E_(null, arg.h2, Prelude_Nil(null)), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prelude_Nat$20Prim_Int)(_sc$$0.h0)))) }; } break; } case "Z": return { tag: "return", h0: Lib_CompileExp_apply_go(arg.h0, arg.h1, arg.h2, arg.h3, null, Lib_CompileExp_CApp(arg.h0, Prelude__$3C$3E$3E_(null, arg.h2, Prelude_Nil(null)), 0), arg.h1) }; } }; const Lib_CompileExp_apply = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_CompileExp_REC_apply, { tag: "Lib.CompileExp.apply", h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_CompileExp_lamArity = ( _$$0 ) => { switch (_$$0.tag) { case "Lam": return Prelude_S(Lib_CompileExp_lamArity(_$$0.h4)); default: return Prelude_Z; } }; const Lib_Ref2_Defs = { tag: "Defs" }; const Data_IORef_primReadIORef = (_, ref) => (w) => Prelude_MkIORes(null, ref[0], w); const Data_IORef_readIORef = ( io$$0, a$$1, _$$2, _$$3 ) => (Prelude_liftIO(null, _$$2)(null)(Data_IORef_primReadIORef(null, _$$3))); const Lib_Ref2_getRef = ( io$$0, a$$1, _$$2, l$$3, _$$4 ) => (Data_IORef_readIORef(null, null, _$$2, _$$4.h2)); -const Lib_CompileExp_arityForName = ( _$$0, _$$1, _$$2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Ref2_getRef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Ref2_Defs, _$$0), ( defs ) => { const sc$$4 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$2, defs); switch (sc$$4.tag) { case "Nothing": return Lib_Types_error(null, _$$1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Name ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$2)))(" not in scope (getting arity)")); case "Just": { const _sc$$0 = sc$$4.h1; switch (_sc$$0.tag) { case "PrimFn": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_sc$$0.h1); case "PrimTCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0)); case "Fn": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_lamArity(_sc$$0.h0)); case "DCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0)); case "TCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0)); case "Axiom": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Z); } break; } } })); +const Lib_CompileExp_arityForName = ( _$$0, _$$1, _$$2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Ref2_getRef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Ref2_Defs, _$$0), ( defs ) => { const sc$$4 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$2, defs); switch (sc$$4.tag) { case "Nothing": return Lib_Types_error(null, _$$1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Name ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$2)))(" not in scope")); case "Just": { const _sc$$0 = sc$$4.h1; switch (_sc$$0.tag) { case "PrimFn": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_sc$$0.h1); case "PrimTCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0)); case "Fn": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_lamArity(_sc$$0.h0)); case "DCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0)); case "TCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h0)); case "Axiom": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Z); } break; } } })); const Lib_CompileExp_CLam = ( h0, h1 ) => ({ tag: "CLam", h0: h0, h1: h1 }); const Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap = ( a$$0, b$$1, _$$2, _$$3 ) => (Lib_Types_MkM(null, ( tc ) => (Prelude__$3E$3E$3D_(null, null, null, Prelude_Prelude_Monad$20Prelude_IO, _$$3.h1(tc), ( $$sc ) => { switch ($$sc.tag) { case "Right": { const _sc$$0 = $$sc.h2; return Prelude_pure(null, Prelude_Prelude_Monad$20Prelude_IO)(null)(Prelude_Right(null, null, Prelude__$2C_(null, null, _sc$$0.h2, _$$2(_sc$$0.h3)))); break; } case "Left": return Prelude_pure(null, Prelude_Prelude_Monad$20Prelude_IO)(null)(Prelude_Left(null, null, $$sc.h2)); } })))); const Lib_Types_Prelude_Functor$20Lib_Types_M = Prelude_MkFunctor(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Lib_Types_Prelude_Functor$20Lib_Types_M$2Cmap(null, null, eta, eta1)))))); @@ -456,13 +456,13 @@ const Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow = ( _$$0 ) => { switch (_$$0. const Lib_Types_Prelude_Show$20Lib_Types_Tm = Prelude_MkShow(null, Lib_Types_Prelude_Show$20Lib_Types_Tm$2Cshow); const Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { case "Erased": return _$$0.h0; case "Lit": return _$$0.h0; case "LetRec": return _$$0.h0; case "Let": return _$$0.h0; case "Case": return _$$0.h0; case "Pi": return _$$0.h0; case "UU": return _$$0.h0; case "App": return _$$0.h0; case "Lam": return _$$0.h0; case "Meta": return _$$0.h0; case "Ref": return _$$0.h0; case "Bnd": return _$$0.h0; } }; const Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm = Lib_Common_MkHasFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm$2CgetFC); -const Lib_Util_REC_funArgs_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Util.funArgs.go": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "App": return { tag: "Lib.Util.funArgs.go", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h1, h3: Prelude__$3A$3A_(null, _sc$$0.h2, arg.h3) }; default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h2, arg.h3) }; } break; } } }; +const Lib_Util_REC_funArgs_go = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "App": return { tag: "Lib.Util.funArgs.go", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h1, h3: Prelude__$3A$3A_(null, _sc$$0.h2, arg.h3) }; default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h2, arg.h3) }; } }; const Lib_Util_funArgs_go = ( _, _1, _$$2, _$$3 ) => (bouncer(Lib_Util_REC_funArgs_go, { tag: "Lib.Util.funArgs.go", h0: _, h1: _1, h2: _$$2, h3: _$$3 })); const Lib_Util_funArgs = ( _$$0 ) => (Lib_Util_funArgs_go(_$$0, null, _$$0, Prelude_Nil(null))); const Prelude_for = ( t$$0, f$$1, _$$2, appf$$3, a$$4, b$$5, _$$6, _$$7 ) => (Prelude_traverse(null, _$$2)(null)(null)(null)(appf$$3)(_$$7)(_$$6)); const Lib_CompileExp_CLit = ( h0 ) => ({ tag: "CLit", h0: h0 }); const Lib_CompileExp_compileTerm = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "Erased": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CErased); case "Lit": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CLit(_$$1.h1)); case "LetRec": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h3), ( t$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h4), ( u$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CLetRec(_$$1.h1, t$27, u$27)))))); case "Let": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h2), ( t$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h3), ( u$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CLet(_$$1.h1, t$27, u$27)))))); case "Case": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h1), ( t$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _$$1.h2, ( $$case ) => { switch ($$case.tag) { case "CaseLit": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_CompileExp_CLitAlt($$case.h0, eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h1)); case "CaseCons": { const _sc$$0 = $$case.h0; return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_CompileExp_CConAlt(_sc$$0.h1, $$case.h1, eta)), Lib_CompileExp_compileTerm(_$$0, $$case.h2)); break; } case "CaseDefault": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, Lib_CompileExp_CDefAlt, Lib_CompileExp_compileTerm(_$$0, $$case.h0)); } }), ( alts$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CCase(t$27, alts$27)))))); case "Pi": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h4), ( t$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, _$$1.h5), ( u$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CApp(Lib_CompileExp_CRef(Lib_Common_QN(Prelude_Nil(null), "PiType")), Prelude__$3A$3A_(null, t$27, Prelude__$3A$3A_(null, Lib_CompileExp_CLam(_$$1.h1, u$27), Prelude_Nil(null))), 0)))))); case "UU": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CRef(Lib_Common_QN(Prelude_Nil(null), "U"))); case "App": { const sc$$5 = Lib_Util_funArgs(_$$1); const _sc$$0 = sc$$5.h2; switch (_sc$$0.tag) { case "Meta": return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_$$1), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Compiling an unsolved meta ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Tm)(_$$1)))("")); case "Ref": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_CompileExp_compileTerm(_$$0, eta)))(sc$$5.h3), ( args$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_arityForName(_$$0, _sc$$0.h0, _sc$$0.h1), ( arity ) => (Lib_CompileExp_apply(Lib_CompileExp_CRef(_sc$$0.h1), args$27, Prelude_Lin(null), arity))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("apply other ")(Lib_Prettier_render(90, Lib_Types_pprint(Prelude_Nil(null), sc$$5.h2))))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_compileTerm(_$$0, sc$$5.h2), ( t$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_CompileExp_compileTerm(_$$0, eta)))(sc$$5.h3), ( args$27 ) => (Lib_CompileExp_apply(t$27, args$27, Prelude_Lin(null), Prelude_Z))))))); } break; } case "Lam": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_CompileExp_CLam(_$$1.h1, eta)), Lib_CompileExp_compileTerm(_$$0, _$$1.h4)); case "Meta": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CRef(Lib_Common_QN(Prelude_Nil(null), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("meta$")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$1.h1)))("")))); case "Ref": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_CompileExp_arityForName(_$$0, _$$1.h0, _$$1.h1), ( arity ) => { switch (arity.tag) { case "S": { const _sc$$0 = arity.h0; switch (_sc$$0.tag) { case "Z": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CRef(_$$1.h1)); default: return Lib_CompileExp_apply(Lib_CompileExp_CRef(_$$1.h1), Prelude_Nil(null), Prelude_Lin(null), arity); } break; } default: return Lib_CompileExp_apply(Lib_CompileExp_CRef(_$$1.h1), Prelude_Nil(null), Prelude_Lin(null), arity); } }); case "Bnd": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_CompileExp_CBnd(_$$1.h1)); } }; -const Lib_CompileExp_REC_compileFun_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.CompileExp.compileFun.go": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "Lam": return { tag: "Lib.CompileExp.compileFun.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h4, h4: Prelude__$3A$3C_(null, arg.h4, _sc$$0.h1) }; default: { const _sc$$1 = arg.h4; switch (_sc$$1.tag) { case "Lin": return { tag: "return", h0: Lib_CompileExp_compileTerm(arg.h0, arg.h3) }; default: return { tag: "return", h0: Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_CompileExp_CFun(Prelude__$3C$3E$3E_(null, arg.h4, Prelude_Nil(null)), eta)), Lib_CompileExp_compileTerm(arg.h0, arg.h3)) }; } break; } } break; } } }; +const Lib_CompileExp_REC_compileFun_go = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "Lam": return { tag: "Lib.CompileExp.compileFun.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h4, h4: Prelude__$3A$3C_(null, arg.h4, _sc$$0.h1) }; default: { const _sc$$1 = arg.h4; switch (_sc$$1.tag) { case "Lin": return { tag: "return", h0: Lib_CompileExp_compileTerm(arg.h0, arg.h3) }; default: return { tag: "return", h0: Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_CompileExp_CFun(Prelude__$3C$3E$3E_(null, arg.h4, Prelude_Nil(null)), eta)), Lib_CompileExp_compileTerm(arg.h0, arg.h3)) }; } break; } } }; const Lib_CompileExp_compileFun_go = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Lib_CompileExp_REC_compileFun_go, { tag: "Lib.CompileExp.compileFun.go", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); const Lib_CompileExp_compileFun = ( _$$0, _$$1 ) => (Lib_CompileExp_compileFun_go(_$$0, _$$1, null, _$$1, Prelude_Lin(null))); const Lib_CompileExp_CRaw = ( h0, h1 ) => ({ tag: "CRaw", h0: h0, h1: h1 }); @@ -499,17 +499,17 @@ const Lib_LiftWhere_liftWhereTm = ( _$$0, _$$1, _$$2, _$$3 ) => { switch (_$$3.t const Lib_LiftWhere_liftWhereFn = ( _$$0, _$$1 ) => { const _sc$$0 = _$$1.h3; switch (_sc$$0.tag) { case "Fn": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_LiftWhere_liftWhereTm(_$$0, _$$1.h2, Prelude_Nil(null), _sc$$0.h0), ( tm$27 ) => (Lib_Ref2_modifyRef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Ref2_Defs, _$$0, ( eta ) => (Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$1.h2, Lib_Types_Fn(tm$27), eta))))); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit); } }; const Prelude_ignore = ( f, a, _ ) => (Prelude_map(null, _)(null)(null)(( eta ) => (Prelude_const(null, null, Prelude_MkUnit, eta)))); const Lib_LiftWhere_liftWhere = ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Ref2_getRef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Ref2_Defs, _), ( defs ) => (Prelude_ignore(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M)(Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_LiftWhere_liftWhereFn(_, eta)))(Data_SortedMap_toList(null, null, defs)))))); -const Lib_Erasure_REC_eraseSpine = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Erasure.eraseSpine": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = arg.h3; switch (_sc$$2.tag) { case "Just": { const _sc$$3 = _sc$$2.h1; switch (_sc$$3.tag) { case "Pi": { const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "Many": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$1.h3, Prelude_Nil(null)), ( u ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_App(_sc$$1.h2, arg.h1, u), _sc$$0.h2, Prelude_Just(null, _sc$$3.h5)))) }; case "Zero": { const u = Lib_Types_Erased(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_sc$$1.h3)); return { tag: "Lib.Erasure.eraseSpine", h0: arg.h0, h1: Lib_Types_App(_sc$$1.h2, arg.h1, u), h2: _sc$$0.h2, h3: Prelude_Just(null, _sc$$3.h5) }; break; } } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$1.h3, Prelude_Nil(null)), ( u ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_App(_sc$$1.h2, arg.h1, u), _sc$$0.h2, Prelude_Nothing(null)))) }; } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$1.h3, Prelude_Nil(null)), ( u ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_App(_sc$$1.h2, arg.h1, u), _sc$$0.h2, Prelude_Nothing(null)))) }; } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h1) }; } break; } } }; +const Lib_Erasure_REC_eraseSpine = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = arg.h3; switch (_sc$$2.tag) { case "Just": { const _sc$$3 = _sc$$2.h1; switch (_sc$$3.tag) { case "Pi": { const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "Many": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$1.h3, Prelude_Nil(null)), ( u ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_App(_sc$$1.h2, arg.h1, u), _sc$$0.h2, Prelude_Just(null, _sc$$3.h5)))) }; case "Zero": { const u = Lib_Types_Erased(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_sc$$1.h3)); return { tag: "Lib.Erasure.eraseSpine", h0: arg.h0, h1: Lib_Types_App(_sc$$1.h2, arg.h1, u), h2: _sc$$0.h2, h3: Prelude_Just(null, _sc$$3.h5) }; break; } } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$1.h3, Prelude_Nil(null)), ( u ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_App(_sc$$1.h2, arg.h1, u), _sc$$0.h2, Prelude_Nothing(null)))) }; } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$1.h3, Prelude_Nil(null)), ( u ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_App(_sc$$1.h2, arg.h1, u), _sc$$0.h2, Prelude_Nothing(null)))) }; } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h1) }; } }; const Lib_Erasure_eraseSpine = ( _$$0, _$$1, _$$2, ty$$3 ) => (bouncer(Lib_Erasure_REC_eraseSpine, { tag: "Lib.Erasure.eraseSpine", h0: _$$0, h1: _$$1, h2: _$$2, h3: ty$$3 })); const Lib_Types__modDefs = ( _$$0 ) => (_$$0.h1); const Lib_Types__modules = ( _$$0 ) => (_$$0.h0); const Lib_Types__defs = ( _$$0 ) => (_$$0.h3); const Lib_TopContext_lookup = ( _$$0, _$$1 ) => { const sc$$4 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$0, Lib_Types__defs(_$$1)); switch (sc$$4.tag) { case "Nothing": { const sc$$6 = Data_SortedMap_lookupMap$27(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), _$$0.h0, Lib_Types__modules(_$$1)); switch (sc$$6.tag) { case "Nothing": return Prelude_Nothing(null); case "Just": return Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$0, Lib_Types__modDefs(sc$$6.h1)); } break; } case "Just": return Prelude_Just(null, sc$$4.h1); } }; const Lib_Types_UU = ( h0 ) => ({ tag: "UU", h0: h0 }); -const Lib_Erasure_REC_doAlt_piEnv = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Erasure.doAlt.piEnv": { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h7; switch (_sc$$1.tag) { case "Pi": return { tag: "Lib.Erasure.doAlt.piEnv", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, _sc$$1.h3, Prelude_Just(null, _sc$$1.h4))), arg.h6), h7: _sc$$1.h5, h8: _sc$$0.h2 }; default: return { tag: "return", h0: arg.h6 }; } break; } default: return { tag: "return", h0: arg.h6 }; } break; } } }; +const Lib_Erasure_REC_doAlt_piEnv = ( arg ) => { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h7; switch (_sc$$1.tag) { case "Pi": return { tag: "Lib.Erasure.doAlt.piEnv", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, _sc$$1.h3, Prelude_Just(null, _sc$$1.h4))), arg.h6), h7: _sc$$1.h5, h8: _sc$$0.h2 }; default: return { tag: "return", h0: arg.h6 }; } break; } default: return { tag: "return", h0: arg.h6 }; } }; const Lib_Erasure_doAlt_piEnv = ( _, _1, _2, _3, _4, _5, _$$6, _$$7, _$$8 ) => (bouncer(Lib_Erasure_REC_doAlt_piEnv, { tag: "Lib.Erasure.doAlt.piEnv", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _$$6, h7: _$$7, h8: _$$8 })); const Lib_Erasure_doAlt = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "CaseLit": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_CaseLit(_$$1.h0, eta)), Lib_Erasure_erase(_$$0, _$$1.h1, Prelude_Nil(null))); case "CaseCons": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$7 = Lib_TopContext_lookup(_$$1.h0, top); switch (sc$$7.tag) { case "Just": { const _sc$$0 = sc$$7.h1; const env$27 = Lib_Erasure_doAlt_piEnv(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, null, _$$0, _sc$$0.h2, _$$1.h1); return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_CaseCons(_$$1.h0, _$$1.h1, eta)), Lib_Erasure_erase(env$27, _$$1.h2, Prelude_Nil(null))); break; } default: return Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$1.h0)))(" dcon missing from context")); } }); case "CaseDefault": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, Lib_Types_CaseDefault, Lib_Erasure_erase(_$$0, _$$1.h0, Prelude_Nil(null))); } }; -const Lib_Erasure_REC_erase = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Erasure.erase": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "Erased": return { tag: "return", h0: Lib_Types_error(null, _sc$$0.h0, "erased value in relevant context") }; case "Lit": return { tag: "return", h0: Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, Prelude_Nothing(null)) }; case "LetRec": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Just(null, _sc$$0.h2))), arg.h0), _sc$$0.h3, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Just(null, _sc$$0.h2))), arg.h0), _sc$$0.h4, Prelude_Nil(null)), ( v$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_LetRec(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, u$27, v$27), arg.h2, Prelude_Nothing(null)))))) }; case "Let": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$0.h2, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Nothing(null))), arg.h0), _sc$$0.h3, Prelude_Nil(null)), ( v$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_Let(_sc$$0.h0, _sc$$0.h1, u$27, v$27), arg.h2, Prelude_Nothing(null)))))) }; case "Case": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$0.h1, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Erasure_doAlt(arg.h0, eta)))(_sc$$0.h2), ( alts$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_Case(_sc$$0.h0, u$27, alts$27), arg.h2, Prelude_Nothing(null)))))) }; case "Pi": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$0.h4, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Just(null, _sc$$0.h4))), arg.h0), _sc$$0.h5, Prelude_Nil(null)), ( v$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_Pi(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, u$27, v$27), arg.h2, Prelude_Just(null, Lib_Types_UU(Lib_Common_emptyFC))))))) }; case "UU": return { tag: "return", h0: Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, Prelude_Just(null, Lib_Types_UU(_sc$$0.h0))) }; case "App": return { tag: "Lib.Erasure.erase", h0: arg.h0, h1: _sc$$0.h1, h2: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h2), arg.h2) }; case "Lam": return { tag: "return", h0: Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_Lam(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, eta)), Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, _sc$$0.h3, Prelude_Nothing(null))), arg.h0), _sc$$0.h4, Prelude_Nil(null))) }; case "Meta": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h1) }; case "Ref": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$7 = Lib_TopContext_lookup(_sc$$0.h1, top); switch (sc$$7.tag) { case "Nothing": return Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$0.h1)))(" not in scope")); case "Just": { const _sc$$1 = sc$$7.h1; return Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, Prelude_Just(null, _sc$$1.h2)); break; } } }) }; case "Bnd": { const sc$$6 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h1), arg.h0); switch (sc$$6.tag) { case "Nothing": return { tag: "return", h0: Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("bad index ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_sc$$0.h1)))("")) }; case "Just": { const _sc$$1 = sc$$6.h1; const _sc$$2 = _sc$$1.h3; const _sc$$3 = _sc$$2.h2; switch (_sc$$3.tag) { case "Many": return { tag: "return", h0: Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, _sc$$2.h3) }; case "Zero": return { tag: "return", h0: Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("used erased value ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$1.h2)))(" (FIXME FC may be wrong here)")) }; } break; } } break; } } break; } } }; +const Lib_Erasure_REC_erase = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "Erased": return { tag: "return", h0: Lib_Types_error(null, _sc$$0.h0, "erased value in relevant context") }; case "Lit": return { tag: "return", h0: Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, Prelude_Nothing(null)) }; case "LetRec": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Just(null, _sc$$0.h2))), arg.h0), _sc$$0.h3, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Just(null, _sc$$0.h2))), arg.h0), _sc$$0.h4, Prelude_Nil(null)), ( v$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_LetRec(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, u$27, v$27), arg.h2, Prelude_Nothing(null)))))) }; case "Let": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$0.h2, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Nothing(null))), arg.h0), _sc$$0.h3, Prelude_Nil(null)), ( v$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_Let(_sc$$0.h0, _sc$$0.h1, u$27, v$27), arg.h2, Prelude_Nothing(null)))))) }; case "Case": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$0.h1, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Erasure_doAlt(arg.h0, eta)))(_sc$$0.h2), ( alts$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_Case(_sc$$0.h0, u$27, alts$27), arg.h2, Prelude_Nothing(null)))))) }; case "Pi": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(arg.h0, _sc$$0.h4, Prelude_Nil(null)), ( u$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, Lib_Types_Many, Prelude_Just(null, _sc$$0.h4))), arg.h0), _sc$$0.h5, Prelude_Nil(null)), ( v$27 ) => (Lib_Erasure_eraseSpine(arg.h0, Lib_Types_Pi(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, u$27, v$27), arg.h2, Prelude_Just(null, Lib_Types_UU(Lib_Common_emptyFC))))))) }; case "UU": return { tag: "return", h0: Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, Prelude_Just(null, Lib_Types_UU(_sc$$0.h0))) }; case "App": return { tag: "Lib.Erasure.erase", h0: arg.h0, h1: _sc$$0.h1, h2: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h2), arg.h2) }; case "Lam": return { tag: "return", h0: Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_Lam(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, eta)), Lib_Erasure_erase(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, _sc$$0.h3, Prelude_Nothing(null))), arg.h0), _sc$$0.h4, Prelude_Nil(null))) }; case "Meta": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h1) }; case "Ref": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$7 = Lib_TopContext_lookup(_sc$$0.h1, top); switch (sc$$7.tag) { case "Nothing": return Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$0.h1)))(" not in scope")); case "Just": { const _sc$$1 = sc$$7.h1; return Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, Prelude_Just(null, _sc$$1.h2)); break; } } }) }; case "Bnd": { const sc$$6 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(_sc$$0.h1), arg.h0); switch (sc$$6.tag) { case "Nothing": return { tag: "return", h0: Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("bad index ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_sc$$0.h1)))("")) }; case "Just": { const _sc$$1 = sc$$6.h1; const _sc$$2 = _sc$$1.h3; const _sc$$3 = _sc$$2.h2; switch (_sc$$3.tag) { case "Many": return { tag: "return", h0: Lib_Erasure_eraseSpine(arg.h0, arg.h1, arg.h2, _sc$$2.h3) }; case "Zero": return { tag: "return", h0: Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("used erased value ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$1.h2)))(" (FIXME FC may be wrong here)")) }; } break; } } break; } } }; const Lib_Erasure_erase = ( _$$0, _$$1, _$$2 ) => (bouncer(Lib_Erasure_REC_erase, { tag: "Lib.Erasure.erase", h0: _$$0, h1: _$$1, h2: _$$2 })); const Lib_Compile_eraseEntries_go = ( _, _$$1, _$$2 ) => { const _sc$$0 = _$$2.h3; switch (_sc$$0.tag) { case "Fn": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Erasure_erase(Prelude_Nil(null), _sc$$0.h0, Prelude_Nil(null)), ( tm$27 ) => (Lib_Ref2_modifyRef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Ref2_Defs, _$$1, ( eta ) => (Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$2.h2, Lib_Types_Fn(tm$27), eta))))); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit); } }; const Lib_Compile_eraseEntries = ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Ref2_getRef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Ref2_Defs, _), ( defs ) => (Prelude_ignore(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M)(Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Compile_eraseEntries_go(null, _, eta)))(Data_SortedMap_toList(null, null, defs)))))); @@ -517,12 +517,12 @@ const Data_IORef_primNewIORef = (_, a) => (w) => Prelude_MkIORes(null, [a], w); const Data_IORef_newIORef = ( io$$0, a$$1, _$$2, _$$3 ) => (Prelude_liftIO(null, _$$2)(null)(Data_IORef_primNewIORef(null, _$$3))); const Lib_Types__def = ( _$$0 ) => (_$$0.h3); const Lib_Compile_getNames_getAltNames = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => { switch (_$$7.tag) { case "CaseLit": return Lib_Compile_getNames(_$$7.h1, _$$6); case "CaseCons": return Lib_Compile_getNames(_$$7.h2, _$$6); case "CaseDefault": return Lib_Compile_getNames(_$$7.h0, _$$6); } }; -const Lib_Compile_REC_getNames = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Compile.getNames": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "LetRec": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h4, h1: Lib_Compile_getNames(_sc$$0.h3, arg.h1) }; case "Let": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h3, h1: Lib_Compile_getNames(_sc$$0.h2, arg.h1) }; case "Case": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_getNames_getAltNames(arg.h0, arg.h1, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, null, eta, eta1))), arg.h1, _sc$$0.h2) }; case "Pi": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h5, h1: Lib_Compile_getNames(_sc$$0.h4, arg.h1) }; case "App": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h2, h1: Lib_Compile_getNames(_sc$$0.h1, arg.h1) }; case "Lam": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h4, h1: arg.h1 }; case "Ref": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h1) }; default: return { tag: "return", h0: arg.h1 }; } break; } } }; +const Lib_Compile_REC_getNames = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "LetRec": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h4, h1: Lib_Compile_getNames(_sc$$0.h3, arg.h1) }; case "Let": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h3, h1: Lib_Compile_getNames(_sc$$0.h2, arg.h1) }; case "Case": return { tag: "return", h0: Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Lib_Compile_getNames_getAltNames(arg.h0, arg.h1, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, null, eta, eta1))), arg.h1, _sc$$0.h2) }; case "Pi": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h5, h1: Lib_Compile_getNames(_sc$$0.h4, arg.h1) }; case "App": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h2, h1: Lib_Compile_getNames(_sc$$0.h1, arg.h1) }; case "Lam": return { tag: "Lib.Compile.getNames", h0: _sc$$0.h4, h1: arg.h1 }; case "Ref": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h1) }; default: return { tag: "return", h0: arg.h1 }; } }; const Lib_Compile_getNames = ( _$$0, _$$1 ) => (bouncer(Lib_Compile_REC_getNames, { tag: "Lib.Compile.getNames", h0: _$$0, h1: _$$1 })); -const Lib_Compile_getEntries = ( _$$0, _$$1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$5 = Lib_TopContext_lookup(_$$1, top); switch (sc$$5.tag) { case "Nothing": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("bad name ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$1)))(" (QN "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(_$$1.h0)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$1.h1)))(")")), ( _ ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_$$0))); case "Just": { const _sc$$0 = sc$$5.h1; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "PrimFn": { const acc = Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _sc$$0.h1, _sc$$0.h3, _$$0); return Prelude_foldlM(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Compile_getEntries(eta, eta1))), acc, _sc$$1.h2); break; } case "Fn": { const sc$$13 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _sc$$0.h1, _$$0); switch (sc$$13.tag) { case "Nothing": { const acc = Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _sc$$0.h1, _sc$$0.h3, _$$0); return Prelude_foldlM(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Compile_getEntries(eta, eta1))), acc, Lib_Compile_getNames(_sc$$1.h0, Prelude_Nil(null))); break; } case "Just": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_$$0); } break; } default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$1, Lib_Types__def(sc$$5.h1), _$$0)); } break; } } })); +const Lib_Compile_getEntries = ( _$$0, _$$1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$3 = Lib_TopContext_lookup(_$$1, top); switch (sc$$3.tag) { case "Nothing": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("bad name ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$1)))("")), ( _ ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_$$0))); case "Just": { const _sc$$0 = sc$$3.h1; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "PrimFn": { const acc = Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _sc$$0.h1, _sc$$0.h3, _$$0); return Prelude_foldlM(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Compile_getEntries(eta, eta1))), acc, _sc$$1.h2); break; } case "Fn": { const sc$$11 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _sc$$0.h1, _$$0); switch (sc$$11.tag) { case "Nothing": { const acc = Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _sc$$0.h1, _sc$$0.h3, _$$0); return Prelude_foldlM(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, ( eta ) => (( eta1 ) => (Lib_Compile_getEntries(eta, eta1))), acc, Lib_Compile_getNames(_sc$$1.h0, Prelude_Nil(null))); break; } case "Just": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_$$0); } break; } default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$1, Lib_Types__def(sc$$3.h1), _$$0)); } break; } } })); const Lib_Compile_process = ( _$$0 ) => { const wat = Lib_Common_QN(Prelude__$3A$3A_(null, "Prelude", Prelude_Nil(null)), "arrayToList"); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Compile_getEntries(Data_SortedMap_EmptyMap(null, null), _$$0), ( entries ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_newIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, entries), ( ref ) => { const foo = Lib_Ref2_MkRef(null, null, ref); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Compile_eraseEntries(Lib_Ref2_MkRef(null, null, ref)), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_LiftWhere_liftWhere(Lib_Ref2_MkRef(null, null, ref)), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, ref), ( entries1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_mapM(null, Lib_Types_Prelude_Monad$20Lib_Types_M, null, null, ( eta ) => (Lib_CompileExp_defToCExp(Lib_Ref2_MkRef(null, null, ref), eta)), Data_SortedMap_toList(null, null, entries1)), ( exprs ) => { const cexpMap = Data_SortedMap_foldMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, ( eta ) => (( eta1 ) => (Prelude_const(null, null, eta, eta1))), Data_SortedMap_EmptyMap(null, null), exprs); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_TCO_tailCallOpt(cexpMap), ( cexpMap1 ) => { const names = Lib_Compile_sortedNames(cexpMap1, _$$0); return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(Lib_Compile_cexpToDoc)(Prelude_mapMaybe(null, null, ( x ) => (Data_SortedMap_lookupMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, x, cexpMap1)), names))); }); }))))))); }))))); }; const Lib_Types__imported = ( _$$0 ) => (_$$0.h1); -const Lib_TopContext_REC_lookupRaw_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.TopContext.lookupRaw.go": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$7 = Data_SortedMap_lookupMap$27(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), _sc$$0.h1, Lib_Types__modules(arg.h1)); switch (sc$$7.tag) { case "Nothing": return { tag: "Lib.TopContext.lookupRaw.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2 }; case "Just": { const sc$$10 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, Lib_Common_QN(_sc$$0.h1, arg.h0), Lib_Types__modDefs(sc$$7.h1)); switch (sc$$10.tag) { case "Nothing": return { tag: "Lib.TopContext.lookupRaw.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2 }; case "Just": return { tag: "return", h0: Prelude_Just(null, sc$$10.h1) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Lib_TopContext_REC_lookupRaw_go = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_::_": { const sc$$7 = Data_SortedMap_lookupMap$27(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), _sc$$0.h1, Lib_Types__modules(arg.h1)); switch (sc$$7.tag) { case "Nothing": return { tag: "Lib.TopContext.lookupRaw.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2 }; case "Just": { const sc$$10 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, Lib_Common_QN(_sc$$0.h1, arg.h0), Lib_Types__modDefs(sc$$7.h1)); switch (sc$$10.tag) { case "Nothing": return { tag: "Lib.TopContext.lookupRaw.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h2 }; case "Just": return { tag: "return", h0: Prelude_Just(null, sc$$10.h1) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Lib_TopContext_lookupRaw_go = ( _, _1, _2, _$$3 ) => (bouncer(Lib_TopContext_REC_lookupRaw_go, { tag: "Lib.TopContext.lookupRaw.go", h0: _, h1: _1, h2: _2, h3: _$$3 })); const Lib_Types__ns = ( _$$0 ) => (_$$0.h2); const Lib_TopContext_lookupRaw = ( _$$0, _$$1 ) => { const sc$$3 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, Lib_Common_QN(Lib_Types__ns(_$$1), _$$0), Lib_Types__defs(_$$1)); switch (sc$$3.tag) { case "Nothing": return Lib_TopContext_lookupRaw_go(_$$0, _$$1, null, Lib_Types__imported(_$$1)); case "Just": return Prelude_Just(null, sc$$3.h1); } }; @@ -558,9 +558,9 @@ const Prelude_arrayToList = (a,arr) => { const Prelude_lines = (s) => Prelude_arrayToList(null,s.split('\n')); const Lib_Common_fcCol = ( _$$0 ) => { const _sc$$0 = _$$0.h1; return _sc$$0.h3; }; const Lib_Common_fcLine = ( _$$0 ) => { const _sc$$0 = _$$0.h1; return _sc$$0.h2; }; -const Lib_Common_REC_showError_go$27 = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Common.showError.go'": { const _sc$$0 = arg.h6; switch (_sc$$0.tag) { case "_::_": { const sc$$10 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(arg.h5)(Lib_Common_fcLine(arg.h2)); switch (sc$$10.tag) { case "False": { const sc$$11 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Lib_Common_fcLine(arg.h2))(3), arg.h5); switch (sc$$11.tag) { case "False": return { tag: "Lib.Common.showError.go'", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1), h6: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_sc$$0.h1)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("\n")(Lib_Common_showError_go$27(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1), _sc$$0.h2)))) }; } break; } case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(_sc$$0.h1))("\n "))(Prelude_replicate(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_fcCol(arg.h2)), " ")))("^\n") }; } break; } case "Nil": return { tag: "return", h0: "" }; } break; } } }; +const Lib_Common_REC_showError_go$27 = ( arg ) => { const _sc$$0 = arg.h6; switch (_sc$$0.tag) { case "_::_": { const sc$$10 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(arg.h5)(Lib_Common_fcLine(arg.h2)); switch (sc$$10.tag) { case "False": { const sc$$11 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Lib_Common_fcLine(arg.h2))(3), arg.h5); switch (sc$$11.tag) { case "False": return { tag: "Lib.Common.showError.go'", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1), h6: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_sc$$0.h1)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("\n")(Lib_Common_showError_go$27(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1), _sc$$0.h2)))) }; } break; } case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(_sc$$0.h1))("\n "))(Prelude_replicate(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_fcCol(arg.h2)), " ")))("^\n") }; } break; } case "Nil": return { tag: "return", h0: "" }; } }; const Lib_Common_showError_go$27 = ( _, _1, _2, _3, _4, _$$5, _$$6 ) => (bouncer(Lib_Common_REC_showError_go$27, { tag: "Lib.Common.showError.go'", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _$$5, h6: _$$6 })); -const Lib_Common_REC_showError_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Common.showError.go": { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const sc$$11 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(arg.h6)(Lib_Common_fcLine(arg.h2)); switch (sc$$11.tag) { case "False": { const sc$$12 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Lib_Common_fcLine(arg.h2))(3), arg.h6); switch (sc$$12.tag) { case "False": return { tag: "Lib.Common.showError.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h6)(1), h7: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_sc$$0.h1)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("\n")(Lib_Common_showError_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h6)(1), _sc$$0.h2)))) }; } break; } case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(_sc$$0.h1))("\n "))(Prelude_replicate(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_fcCol(arg.h2)), " ")))("^\n") }; } break; } case "Nil": return { tag: "return", h0: "" }; } break; } } }; +const Lib_Common_REC_showError_go = ( arg ) => { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const sc$$11 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(arg.h6)(Lib_Common_fcLine(arg.h2)); switch (sc$$11.tag) { case "False": { const sc$$12 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Lib_Common_fcLine(arg.h2))(3), arg.h6); switch (sc$$12.tag) { case "False": return { tag: "Lib.Common.showError.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h6)(1), h7: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_sc$$0.h1)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("\n")(Lib_Common_showError_go(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h6)(1), _sc$$0.h2)))) }; } break; } case "True": return { tag: "return", h0: Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(_sc$$0.h1))("\n "))(Prelude_replicate(Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_fcCol(arg.h2)), " ")))("^\n") }; } break; } case "Nil": return { tag: "return", h0: "" }; } }; const Lib_Common_showError_go = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => (bouncer(Lib_Common_REC_showError_go, { tag: "Lib.Common.showError.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _$$6, h7: _$$7 })); const Lib_Common_showError = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "Postpone": return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("ERROR at ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(_$$1.h0)))(": Postpone "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$1.h1)))(" "))(_$$1.h2))("\n"))(Lib_Common_showError_go(_$$0, _$$1, _$$1.h0, _$$1.h1, _$$1.h2, null, 0, Prelude_lines(_$$0))); case "E": return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("ERROR at ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(_$$1.h0)))(": "))(_$$1.h1))("\n"))(Lib_Common_showError_go$27(_$$0, _$$1, _$$1.h0, _$$1.h1, null, 0, Prelude_lines(_$$0))); } }; const Prelude_for_ = ( t$$0, f$$1, _$$2, appf$$3, a$$4, b$$5, _$$6, _$$7 ) => (Prelude__$3C$2A$3E_(null, appf$$3)(null)(null)(Prelude_return(null, appf$$3)(null)(( eta ) => (Prelude_const(null, null, Prelude_MkUnit, eta))))(Prelude_traverse(null, _$$2)(null)(null)(null)(appf$$3)(_$$7)(_$$6))); @@ -575,7 +575,7 @@ const Lib_Types_modifyTop = ( _$$0 ) => (Prelude__$3E$3E$3D_(null, null, null, L const Lib_Types__metas = ( _$$0 ) => (_$$0.h0); const Lib_Types_info = ( _$$0, _$$1 ) => (Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("INFO at ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(_$$0)))(": "))(_$$1))(""))); const Lib_Elab_rpprint = ( _$$0, _$$1 ) => (Lib_Prettier_render(90, Lib_Types_pprint(_$$0, _$$1))); -const Data_SnocList_REC_snoclen_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Data.SnocList.snoclen.go": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_:<_": return { tag: "Data.SnocList.snoclen.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h1, h4: Prelude_S(arg.h4) }; case "Lin": return { tag: "return", h0: arg.h4 }; } break; } } }; +const Data_SnocList_REC_snoclen_go = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_:<_": return { tag: "Data.SnocList.snoclen.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h1, h4: Prelude_S(arg.h4) }; case "Lin": return { tag: "return", h0: arg.h4 }; } }; const Data_SnocList_snoclen_go = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Data_SnocList_REC_snoclen_go, { tag: "Data.SnocList.snoclen.go", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); const Data_SnocList_snoclen = ( a$$0, _$$1 ) => (Data_SnocList_snoclen_go(a$$0, _$$1, null, _$$1, Prelude_Z)); const Prelude_Prelude_Show$20Prelude_Nat$2Cshow = ( _$$0 ) => (Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Prelude_natToInt(_$$0))); @@ -606,9 +606,9 @@ const Lib_Types_VU = ( h0 ) => ({ tag: "VU", h0: h0 }); const Lib_Types_VPi = ( h0, h1, h2, h3, h4, h5 ) => ({ tag: "VPi", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5 }); const Lib_Types_VCase = ( h0, h1, h2 ) => ({ tag: "VCase", h0: h0, h1: h1, h2: h2 }); const Lib_Eval_lookupVar = ( _$$0, _$$1 ) => { const l = Prelude_cast(null, null, Prelude_Prelude_Cast$20Prelude_Nat$20Prim_Int)(Prelude_length(null, _$$0)); const sc$$3 = Prelude__$3E_(null, Prelude_Prelude_Ord$20Prim_Int, _$$1, l); switch (sc$$3.tag) { case "False": { const sc$$4 = Prelude_getAt(null, Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_lvl2ix(l, _$$1)), _$$0); switch (sc$$4.tag) { case "Nothing": return Prelude_Nothing(null); case "Just": { const _sc$$0 = sc$$4.h1; switch (_sc$$0.tag) { case "VVar": { const sc$$10 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$1)(_sc$$0.h1); switch (sc$$10.tag) { case "False": return Prelude_Just(null, sc$$4.h1); case "True": return Prelude_Nothing(null); } break; } default: return Prelude_Just(null, sc$$4.h1); } break; } } break; } case "True": return Prelude_Nothing(null); } }; -const Prelude_REC__$3C$3E$3C_ = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude._<><_": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude._<><_", h0: null, h1: Prelude__$3A$3C_(null, arg.h1, _sc$$0.h1), h2: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h1 }; } break; } } }; +const Prelude_REC__$3C$3E$3C_ = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": return { tag: "Prelude._<><_", h0: null, h1: Prelude__$3A$3C_(null, arg.h1, _sc$$0.h1), h2: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h1 }; } }; const Prelude__$3C$3E$3C_ = ( a$$0, _$$1, _$$2 ) => (bouncer(Prelude_REC__$3C$3E$3C_, { tag: "Prelude._<><_", h0: a$$0, h1: _$$1, h2: _$$2 })); -const Lib_Eval_REC_evalCase_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Eval.evalCase.go": { const _sc$$0 = arg.h16; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h15; switch (_sc$$1.tag) { case "_::_": return { tag: "Lib.Eval.evalCase.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: arg.h12, h13: arg.h13, h14: Prelude__$3A$3A_(null, _sc$$1.h1, arg.h14), h15: _sc$$1.h2, h16: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(arg.h14, arg.h1, arg.h9), ( t$27 ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Eval_vappSpine(t$27, Prelude__$3C$3E$3C_(null, Prelude_Lin(null), arg.h15))))) }; } break; } } }; +const Lib_Eval_REC_evalCase_go = ( arg ) => { const _sc$$0 = arg.h16; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h15; switch (_sc$$1.tag) { case "_::_": return { tag: "Lib.Eval.evalCase.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: arg.h12, h13: arg.h13, h14: Prelude__$3A$3A_(null, _sc$$1.h1, arg.h14), h15: _sc$$1.h2, h16: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(arg.h14, arg.h1, arg.h9), ( t$27 ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Eval_vappSpine(t$27, Prelude__$3C$3E$3C_(null, Prelude_Lin(null), arg.h15))))) }; } }; const Lib_Eval_evalCase_go = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _$$14, _$$15, _$$16 ) => (bouncer(Lib_Eval_REC_evalCase_go, { tag: "Lib.Eval.evalCase.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _8, h9: _9, h10: _10, h11: _11, h12: _12, h13: _13, h14: _$$14, h15: _$$15, h16: _$$16 })); const Lib_Types_showTm = Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Tm); const Prelude_Prelude_Show$20$28Prelude_SnocList$20BND$3A1$29$2Cshow = ( a$$0, _$$1, _$$2 ) => (Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, _$$1))(Prelude__$3C$3E$3E_(null, _$$2, Prelude_Nil(null)))); @@ -646,18 +646,18 @@ const Lib_Elab_unify_unifyRest_unifyRef = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) const Lib_Elab_unify_unifyRest_unifyRef_unifyVar = ( _, _1, _2, _3, _4, _5, _6, _$$7, _$$8 ) => { switch (_$$8.tag) { case "VVar": switch (_$$7.tag) { case "VVar": { const sc$$15 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$7.h1)(_$$8.h1); switch (sc$$15.tag) { case "False": return Lib_Types_error(null, _$$7.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Failed to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$7)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$8)))("")); case "True": return Lib_Elab_unifySpine(_, _1, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$7.h1)(_$$8.h1), _$$7.h2, _$$8.h2); } break; } default: { const _sc$$0 = _$$8.h2; switch (_sc$$0.tag) { case "Lin": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_tryEval(_, _$$7), ( vt ) => { switch (vt.tag) { case "Nothing": return Lib_Types_error(null, _$$8.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Failed to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$7)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$8)))("")); case "Just": return Lib_Elab_unify(_, _1, vt.h1, _$$8); } }); default: return Lib_Elab_unify_unifyRest_unifyRef(_, _1, _2, _3, _4, _5, _$$7, _$$8); } break; } } break; default: switch (_$$7.tag) { case "VVar": { const _sc$$0 = _$$7.h2; switch (_sc$$0.tag) { case "Lin": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_tryEval(_, _$$8), ( vu ) => { switch (vu.tag) { case "Nothing": return Lib_Types_error(null, _$$7.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Failed to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$7)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$8)))("")); case "Just": return Lib_Elab_unify(_, _1, _$$7, vu.h1); } }); default: return Lib_Elab_unify_unifyRest_unifyRef(_, _1, _2, _3, _4, _5, _$$7, _$$8); } break; } default: return Lib_Elab_unify_unifyRest_unifyRef(_, _1, _2, _3, _4, _5, _$$7, _$$8); } break; } }; const Lib_Elab_unify_unifyRest_unifyRef_unifyVar_unifyLam = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9 ) => { switch (_$$9.tag) { case "VLam": switch (_$$8.tag) { case "VLam": { const fresh = Lib_Types_VVar(_$$8.h0, Prelude_length$27(null, _), Prelude_Lin(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_$$8.h4, fresh), ( vappt ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_$$9.h4, fresh), ( vappt$27 ) => (Lib_Elab_unify(Prelude__$3A$3A_(null, fresh, _), _1, vappt, vappt$27))))); break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _8 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("ETA ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$8)))(""))), ( _8 ) => { const fresh = Lib_Types_VVar(_$$9.h0, Prelude_length$27(null, _), Prelude_Lin(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_vapp(_$$8, fresh), ( vappt ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_$$9.h4, fresh), ( vappt$27 ) => (Lib_Elab_unify(Prelude__$3A$3A_(null, fresh, _), _1, vappt, vappt$27))))); }); } break; default: switch (_$$8.tag) { case "VLam": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _8 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("ETA' ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$9)))(""))), ( _8 ) => { const fresh = Lib_Types_VVar(_$$8.h0, Prelude_length$27(null, _), Prelude_Lin(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_$$8.h4, fresh), ( appt ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_vapp(_$$9, fresh), ( vappt$27 ) => (Lib_Elab_unify(Prelude__$3A$3A_(null, fresh, _), _1, appt, vappt$27))))); }); default: return Lib_Elab_unify_unifyRest_unifyRef_unifyVar(_, _1, _2, _3, _4, _5, _6, _$$8, _$$9); } break; } }; const Lib_Types__bds = ( _$$0 ) => (_$$0.h3); -const Lib_Elab_REC_makeSpine = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.makeSpine": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Defined": return { tag: "Lib.Elab.makeSpine", h0: Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arg.h0)(1), h1: _sc$$0.h2 }; case "Bound": return { tag: "return", h0: Prelude__$3A$3C_(null, Lib_Elab_makeSpine(Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arg.h0)(1), _sc$$0.h2), Lib_Types_VVar(Lib_Common_emptyFC, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arg.h0)(1), Prelude_Lin(null))) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Lin(null) }; } break; } } }; +const Lib_Elab_REC_makeSpine = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Defined": return { tag: "Lib.Elab.makeSpine", h0: Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arg.h0)(1), h1: _sc$$0.h2 }; case "Bound": return { tag: "return", h0: Prelude__$3A$3C_(null, Lib_Elab_makeSpine(Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arg.h0)(1), _sc$$0.h2), Lib_Types_VVar(Lib_Common_emptyFC, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(arg.h0)(1), Prelude_Lin(null))) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Lin(null) }; } }; const Lib_Elab_makeSpine = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_makeSpine, { tag: "Lib.Elab.makeSpine", h0: _$$0, h1: _$$1 })); const Prelude_zip = ( a$$0, b$$1, _$$2, _$$3 ) => { switch (_$$3.tag) { case "_::_": switch (_$$2.tag) { case "_::_": return Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$2.h1, _$$3.h1), Prelude_zip(null, null, _$$2.h2, _$$3.h2)); default: return Prelude_Nil(null); } break; default: return Prelude_Nil(null); } }; const Lib_Types_names = ( _$$0 ) => (Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_$$0))); -const Lib_Elab_REC_isCandidate = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.isCandidate": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "Pi": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "Explicit": return { tag: "return", h0: Prelude_False }; default: return { tag: "Lib.Elab.isCandidate", h0: arg.h0, h1: _sc$$0.h5 }; } break; } case "App": return { tag: "Lib.Elab.isCandidate", h0: arg.h0, h1: _sc$$0.h1 }; case "Ref": { const _sc$$1 = arg.h0; switch (_sc$$1.tag) { case "VRef": return { tag: "return", h0: Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$1.h1)(_sc$$0.h1) }; default: return { tag: "return", h0: Prelude_False }; } break; } default: return { tag: "return", h0: Prelude_False }; } break; } } }; +const Lib_Elab_REC_isCandidate = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "Pi": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "Explicit": return { tag: "return", h0: Prelude_False }; default: return { tag: "Lib.Elab.isCandidate", h0: arg.h0, h1: _sc$$0.h5 }; } break; } case "App": return { tag: "Lib.Elab.isCandidate", h0: arg.h0, h1: _sc$$0.h1 }; case "Ref": { const _sc$$1 = arg.h0; switch (_sc$$1.tag) { case "VRef": return { tag: "return", h0: Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$1.h1)(_sc$$0.h1) }; default: return { tag: "return", h0: Prelude_False }; } break; } default: return { tag: "return", h0: Prelude_False }; } }; const Lib_Elab_isCandidate = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_isCandidate, { tag: "Lib.Elab.isCandidate", h0: _$$0, h1: _$$1 })); const Lib_Elab_contextMatches_go = ( _, _1, _2, _$$3 ) => { switch (_$$3.tag) { case "_::_": { const _sc$$0 = _$$3.h1; const _sc$$1 = _sc$$0.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_), _sc$$1.h3), ( type ) => { const sc$$16 = Lib_Elab_isCandidate(_1, type); switch (sc$$16.tag) { case "False": return Lib_Elab_contextMatches_go(_, _1, _2, _$$3.h2); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc ) => (Lib_Types_catchError(null, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TRY context ")(_sc$$1.h2))(" : "))(Lib_Elab_rpprint(Lib_Types_names(_), type)))(" for "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_1)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_unifyCatch(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_1), _, _1, _sc$$1.h3), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), mc), ( _5 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_), _sc$$0.h2), ( tm ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude__$3A$3A_(null, Prelude__$2C_(null, null, tm, _sc$$1.h3), eta)), Lib_Elab_contextMatches_go(_, _1, _2, _$$3.h2)))))))))))), ( err ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("No match ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_1)))(" "))(Lib_Elab_rpprint(Lib_Types_names(_), type)))(" "))(Lib_Common_showError("", err)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), mc), ( _4 ) => (Lib_Elab_contextMatches_go(_, _1, _2, _$$3.h2))))))))))); } }); break; } case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)); } }; const Lib_Elab_contextMatches = ( _$$0, _$$1 ) => (Lib_Elab_contextMatches_go(_$$0, _$$1, null, Prelude_zip(null, null, Lib_Types__env(_$$0), Lib_Types__types(_$$0)))); const Lib_Elab_trySolveAuto = ( _$$0 ) => { switch (_$$0.tag) { case "Unsolved": { const _sc$$0 = _$$0.h4; switch (_sc$$0.tag) { case "AutoSolve": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TRYAUTO solving ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$0.h1)))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$0.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_$$0.h2), _$$0.h3), ( x ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_$$0.h2), Lib_Types_CBN, x), ( ty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("AUTO ---> ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty)))(""))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_contextMatches(_$$0.h2, ty), ( $$sc ) => { switch ($$sc.tag) { case "_::_": { const _sc$$1 = $$sc.h1; const _sc$$2 = $$sc.h2; switch (_sc$$2.tag) { case "Nil": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_unifyCatch(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(ty), _$$0.h2, ty, _sc$$1.h3), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_$$0.h2), Lib_Types_CBN, _sc$$1.h2), ( val ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SOLUTION ")(Lib_Elab_rpprint(Prelude_Nil(null), _sc$$1.h2)))(" evaled to "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(val)))(""))), ( _3 ) => { const sp = Lib_Elab_makeSpine(Lib_Types__lvl(_$$0.h2), Lib_Types__bds(_$$0.h2)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_solve(Lib_Types__env(_$$0.h2), _$$0.h1, sp, val), ( _4 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_True))); }))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("FAILED to solve ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty)))(", matches: "))(Lib_Prettier_render(90, Lib_Prettier_commaSep(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude__$2218_(null, null, null, ( eta ) => (Lib_Types_pprint(Prelude_Nil(null), eta)), ( eta ) => (Prelude_fst(null, null, eta)), eta)))($$sc)))))(""))), ( _2 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False))); } break; } case "Nil": { const te = Data_SortedMap_listValues(null, null, Lib_Types__defs(top)); const rest = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( x1 ) => (Data_SortedMap_listValues(null, null, Lib_Types__modDefs(x1))))(Prelude_mapMaybe(null, null, ( eta ) => (Prelude_flip(null, null, null, ( eta ) => (( eta1 ) => (Data_SortedMap_lookupMap$27(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), eta, eta1))), Lib_Types__modules(top), eta)), Lib_Types__imported(top))); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_findMatches(_$$0.h2, ty, Prelude_join(null, null, Prelude_Prelude_Monad$20Prelude_List, Prelude__$3A$3A_(null, te, rest))), ( $$sc1 ) => { switch ($$sc1.tag) { case "_::_": { const _sc$$1 = $$sc1.h2; switch (_sc$$1.tag) { case "Nil": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(_$$0.h2, Lib_Syntax_RVar(_$$0.h0, $$sc1.h1), ty), ( tm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_$$0.h2), Lib_Types_CBN, tm), ( val ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SOLUTION ")(Lib_Elab_rpprint(Prelude_Nil(null), tm)))(" evaled to "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(val)))(""))), ( _2 ) => { const sp = Lib_Elab_makeSpine(Lib_Types__lvl(_$$0.h2), Lib_Types__bds(_$$0.h2)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_solve(Lib_Types__env(_$$0.h2), _$$0.h1, sp, val), ( _3 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_True))); }))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("FAILED to solve ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty)))(", matches: "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))($$sc1)))(""))), ( _2 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False))); } break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("FAILED to solve ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty)))(", matches: "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))($$sc1)))(""))), ( _2 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False))); } }); break; } } }))))))))))); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False); } break; } default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False); } }; -const Lib_Elab_REC_checkAutos_usesMeta = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.checkAutos.usesMeta": { const _sc$$0 = arg.h12; switch (_sc$$0.tag) { case "App": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Meta": { const sc$$18 = Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$1.h1)(arg.h0); switch (sc$$18.tag) { case "False": return { tag: "Lib.Elab.checkAutos.usesMeta", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_True }; } break; } default: return { tag: "Lib.Elab.checkAutos.usesMeta", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: _sc$$0.h2 }; } break; } default: return { tag: "return", h0: Prelude_False }; } break; } } }; +const Lib_Elab_REC_checkAutos_usesMeta = ( arg ) => { const _sc$$0 = arg.h12; switch (_sc$$0.tag) { case "App": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Meta": { const sc$$18 = Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$1.h1)(arg.h0); switch (sc$$18.tag) { case "False": return { tag: "Lib.Elab.checkAutos.usesMeta", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_True }; } break; } default: return { tag: "Lib.Elab.checkAutos.usesMeta", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: _sc$$0.h2 }; } break; } default: return { tag: "return", h0: Prelude_False }; } }; const Lib_Elab_checkAutos_usesMeta = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _$$12 ) => (bouncer(Lib_Elab_REC_checkAutos_usesMeta, { tag: "Lib.Elab.checkAutos.usesMeta", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _8, h9: _9, h10: _10, h11: _11, h12: _$$12 })); -const Lib_Elab_REC_checkAutos = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.checkAutos": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Unsolved": { const _sc$$2 = _sc$$1.h4; switch (_sc$$2.tag) { case "AutoSolve": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), _sc$$1.h3), ( ty$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Lib_Elab_checkAutos_usesMeta(arg.h0, arg.h1, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$1.h0, _sc$$1.h1, _sc$$1.h2, _sc$$1.h3, _sc$$1.h4, _sc$$1.h5, null, ty$27), ( _ ) => (Prelude_ignore(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M)(Lib_Elab_trySolveAuto(_sc$$0.h1)))), ( _ ) => (Lib_Elab_checkAutos(arg.h0, _sc$$0.h2))))) }; default: return { tag: "Lib.Elab.checkAutos", h0: arg.h0, h1: _sc$$0.h2 }; } break; } default: return { tag: "Lib.Elab.checkAutos", h0: arg.h0, h1: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit) }; } break; } } }; +const Lib_Elab_REC_checkAutos = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Unsolved": { const _sc$$2 = _sc$$1.h4; switch (_sc$$2.tag) { case "AutoSolve": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), _sc$$1.h3), ( ty$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Lib_Elab_checkAutos_usesMeta(arg.h0, arg.h1, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$1.h0, _sc$$1.h1, _sc$$1.h2, _sc$$1.h3, _sc$$1.h4, _sc$$1.h5, null, ty$27), ( _ ) => (Prelude_ignore(null, null, Lib_Types_Prelude_Functor$20Lib_Types_M)(Lib_Elab_trySolveAuto(_sc$$0.h1)))), ( _ ) => (Lib_Elab_checkAutos(arg.h0, _sc$$0.h2))))) }; default: return { tag: "Lib.Elab.checkAutos", h0: arg.h0, h1: _sc$$0.h2 }; } break; } default: return { tag: "Lib.Elab.checkAutos", h0: arg.h0, h1: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit) }; } }; const Lib_Elab_checkAutos = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_checkAutos, { tag: "Lib.Elab.checkAutos", h0: _$$0, h1: _$$1 })); const Lib_Types_MkMc = ( h0, h1, h2, h3 ) => ({ tag: "MkMc", h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_Types_Unsolved = ( h0, h1, h2, h3, h4, h5 ) => ({ tag: "Unsolved", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4, h5: h5 }); @@ -673,17 +673,17 @@ const Lib_Types_Solved = ( h0, h1, h2 ) => ({ tag: "Solved", h0: h0, h1: h1, const Lib_Types_Bound = { tag: "Bound" }; const Lib_Types_Prelude_Eq$20Lib_Types_BD$2C_$3D$3D_ = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "Defined": switch (_$$0.tag) { case "Defined": return Prelude_True; default: return Prelude_False; } break; case "Bound": switch (_$$0.tag) { case "Bound": return Prelude_True; default: return Prelude_False; } break; } }; const Lib_Types_Prelude_Eq$20Lib_Types_BD = Prelude_MkEq(null, ( eta ) => (( eta1 ) => (Lib_Types_Prelude_Eq$20Lib_Types_BD$2C_$3D$3D_(eta, eta1)))); -const Prelude_REC_filter = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.filter": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$6 = arg.h1(_sc$$0.h1); switch (sc$$6.tag) { case "False": return { tag: "Prelude.filter", h0: null, h1: arg.h1, h2: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Prelude_filter(null, arg.h1, _sc$$0.h2)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Prelude_REC_filter = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$6 = arg.h1(_sc$$0.h1); switch (sc$$6.tag) { case "False": return { tag: "Prelude.filter", h0: null, h1: arg.h1, h2: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Prelude_filter(null, arg.h1, _sc$$0.h2)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Prelude_filter = ( a$$0, _$$1, _$$2 ) => (bouncer(Prelude_REC_filter, { tag: "Prelude.filter", h0: a$$0, h1: _$$1, h2: _$$2 })); const Lib_Elab__boundNames = ( _$$0 ) => (Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_snd(null, null, eta)))(Prelude_filter(null, ( x ) => (Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_BD)(Prelude_fst(null, null, x))(Lib_Types_Bound)), Prelude_zip(null, null, Lib_Types__bds(_$$0), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_$$0)))))); const Lib_Elab_lams = ( _$$0, _$$1, _$$2 ) => { switch (_$$0.tag) { case "S": switch (_$$1.tag) { case "_::_": return Lib_Types_Lam(Lib_Common_emptyFC, _$$1.h1, Lib_Types_Explicit, Lib_Types_Many, Lib_Elab_lams(_$$0.h0, _$$1.h2, _$$2)); case "Nil": return Lib_Types_Lam(Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("arg_")(Prelude_show(null, Prelude_Prelude_Show$20Prelude_Nat)(_$$0.h0)))(""), Lib_Types_Explicit, Lib_Types_Many, Lib_Elab_lams(_$$0.h0, Prelude_Nil(null), _$$2)); } break; case "Z": return _$$2; } }; const Lib_Elab_renameSpine = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { switch (_$$4.tag) { case "_:<_": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, _$$1, _$$2, _$$4.h2), ( xtm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_renameSpine(_$$0, _$$1, _$$2, _$$3, _$$4.h1), ( xs$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_App(Lib_Common_emptyFC, xs$27, xtm)))))); case "Lin": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_$$3); } }; -const Prelude_REC_findIndex$27_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.findIndex'.go": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const sc$$9 = arg.h1(_sc$$0.h1); switch (sc$$9.tag) { case "False": return { tag: "Prelude.findIndex'.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1) }; case "True": return { tag: "return", h0: Prelude_Just(null, arg.h5) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Prelude_REC_findIndex$27_go = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const sc$$9 = arg.h1(_sc$$0.h1); switch (sc$$9.tag) { case "False": return { tag: "Prelude.findIndex'.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1) }; case "True": return { tag: "return", h0: Prelude_Just(null, arg.h5) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Prelude_findIndex$27_go = ( _, _1, _2, _3, _$$4, _$$5 ) => (bouncer(Prelude_REC_findIndex$27_go, { tag: "Prelude.findIndex'.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _$$4, h5: _$$5 })); const Prelude_findIndex$27 = ( a$$0, _$$1, _$$2 ) => (Prelude_findIndex$27_go(a$$0, _$$1, _$$2, null, _$$2, 0)); const Lib_Common_Postpone = ( h0, h1, h2 ) => ({ tag: "Postpone", h0: h0, h1: h1, h2: h2 }); const Lib_Elab_rename = ( _$$0, _$$1, _$$2, _$$3 ) => { switch (_$$3.tag) { case "VLit": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lit(_$$3.h0, _$$3.h1)); case "VErased": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Erased(_$$3.h0)); case "VU": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_UU(_$$3.h0)); case "VLetRec": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, _$$1, _$$2, _$$3.h2), ( ty$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, Prelude__$3A$3A_(null, _$$2, _$$1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$2), _$$3.h3), ( val$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, Prelude__$3A$3A_(null, _$$2, _$$1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$2), _$$3.h4), ( body$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_LetRec(_$$3.h0, _$$3.h1, ty$27, val$27, body$27)))))))); case "VLet": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, _$$1, _$$2, _$$3.h2), ( val$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, Prelude__$3A$3A_(null, _$$2, _$$1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$2), _$$3.h3), ( body$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Let(_$$3.h0, _$$3.h1, val$27, body$27)))))); case "VPi": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, _$$1, _$$2, _$$3.h4), ( ty$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_$$3.h5, Lib_Types_VVar(Lib_Common_emptyFC, _$$2, Prelude_Lin(null))), ( tmapp ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, Prelude__$3A$3A_(null, _$$2, _$$1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$2), tmapp), ( scope$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Pi(_$$3.h0, _$$3.h1, _$$3.h2, _$$3.h3, ty$27, scope$27)))))))); case "VLam": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_$$3.h4, Lib_Types_VVar(_$$3.h0, _$$2, Prelude_Lin(null))), ( tapp ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_rename(_$$0, Prelude__$3A$3A_(null, _$$2, _$$1), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$2), tapp), ( scope ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lam(_$$3.h0, _$$3.h1, _$$3.h2, _$$3.h3, scope)))))); case "VMeta": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("rename Meta ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$3.h1)))(" spine "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_SnocList$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(_$$3.h2)))(""))), ( _ ) => { const sc$$8 = Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_$$3.h1)(_$$0); switch (sc$$8.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_lookupMeta(_$$3.h1), ( meta$27 ) => { switch (meta$27.tag) { case "Solved": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("rename: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$3.h1)))(" is solved"))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_vappSpine(meta$27.h2, _$$3.h2), ( val$27 ) => (Lib_Elab_rename(_$$0, _$$1, _$$2, val$27))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("rename: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$3.h1)))(" is unsolved"))), ( _1 ) => (Lib_Types_catchError(null, Lib_Elab_renameSpine(_$$0, _$$1, _$$2, Lib_Types_Meta(_$$3.h0, _$$3.h1), _$$3.h2), ( err ) => (Lib_Types_throwError(null, Lib_Common_Postpone(_$$3.h0, _$$3.h1, Lib_Types_errorMsg(err))))))); } }); case "True": return Lib_Types_error(null, _$$3.h0, "meta occurs check"); } }); case "VCase": return Lib_Types_error(null, _$$3.h0, "Case in solution"); case "VRef": return Lib_Elab_renameSpine(_$$0, _$$1, _$$2, Lib_Types_Ref(_$$3.h0, _$$3.h1), _$$3.h2); case "VVar": { const sc$$7 = Prelude_findIndex$27(null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$3.h1), _$$1); switch (sc$$7.tag) { case "Nothing": return Lib_Types_error(null, _$$3.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("scope/skolem thinger VVar ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_$$3.h1)))(" ren "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_Int))(_$$1)))("")); case "Just": return Lib_Elab_renameSpine(_$$0, _$$1, _$$2, Lib_Types_Bnd(_$$3.h0, sc$$7.h1), _$$3.h2); } break; } } }; -const Lib_Elab_REC_invert_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.invert.go": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_:<_": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "VVar": { const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Lin": { const sc$$12 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_Int, _sc$$1.h1, arg.h4); switch (sc$$12.tag) { case "False": return { tag: "Lib.Elab.invert.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h1, h4: Prelude__$3A$3A_(null, _sc$$1.h1, arg.h4) }; case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_sc$$1.h1)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_Int))(arg.h4)))(""))), ( _ ) => (Lib_Types_error(null, _sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("non-linear pattern: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_SnocList$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(arg.h1)))("")))) }; } break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("non-variable in pattern ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$0.h2)))("")) }; } break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("non-variable in pattern ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$0.h2)))("")) }; } break; } case "Lin": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_reverse(null)(arg.h4)) }; } break; } } }; +const Lib_Elab_REC_invert_go = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_:<_": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "VVar": { const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Lin": { const sc$$12 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_Int, _sc$$1.h1, arg.h4); switch (sc$$12.tag) { case "False": return { tag: "Lib.Elab.invert.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h1, h4: Prelude__$3A$3A_(null, _sc$$1.h1, arg.h4) }; case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_sc$$1.h1)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_Int))(arg.h4)))(""))), ( _ ) => (Lib_Types_error(null, _sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("non-linear pattern: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_SnocList$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(arg.h1)))("")))) }; } break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("non-variable in pattern ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$0.h2)))("")) }; } break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("non-variable in pattern ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$0.h2)))("")) }; } break; } case "Lin": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_reverse(null)(arg.h4)) }; } }; const Lib_Elab_invert_go = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Lib_Elab_REC_invert_go, { tag: "Lib.Elab.invert.go", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); const Lib_Elab_invert = ( _$$0, _$$1 ) => (Lib_Elab_invert_go(_$$0, _$$1, null, _$$1, Prelude_Nil(null))); const Lib_Types_Prelude_Show$20Lib_Types_BD$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case "Defined": return "def"; case "Bound": return "bnd"; } }; @@ -713,14 +713,14 @@ const Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt = Prelude_MkShow(null, Lib_S const Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case "RAs": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "RAs", Prelude__$3A$3A_(null, _$$0.h1, Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude_Nil(null))))); case "RWhere": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Where", Prelude__$3A$3A_(null, "FIXME", Prelude_Nil(null)))); case "RIf": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "If", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h3), Prelude_Nil(null)))))); case "RDo": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "DO", Prelude__$3A$3A_(null, "FIXME", Prelude_Nil(null)))); case "RHole": return "?"; case "RImplicit": return "_"; case "RCase": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Case", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_RCaseAlt))(_$$0.h2), Prelude_Nil(null))))); case "RLit": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "RLit", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Literal)(_$$0.h1), Prelude_Nil(null)))); case "RAnn": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "RAnn", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude_Nil(null))))); case "RLet": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Let", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h1), Prelude__$3A$3A_(null, " : ", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude__$3A$3A_(null, " = ", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h3), Prelude__$3A$3A_(null, " in ", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h4), Prelude_Nil(null)))))))))); case "RPi": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Pi", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h3), Prelude_Nil(null)))))); case "RU": return "U"; case "RApp": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "App", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Icit)(_$$0.h3), Prelude_Nil(null)))))); case "RLam": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Lam", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude_Nil(null))))); case "RVar": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "RVar", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h1), Prelude_Nil(null)))); } }; const Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw = Prelude_MkShow(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw$2Cshow); const Lib_Types_Normal = { tag: "Normal" }; -const Lib_Elab_REC_freshMeta_applyBDs = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.freshMeta.applyBDs": { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Defined": return { tag: "Lib.Elab.freshMeta.applyBDs", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h5), h6: arg.h6, h7: _sc$$0.h2 }; case "Bound": return { tag: "return", h0: Lib_Types_App(Lib_Common_emptyFC, Lib_Elab_freshMeta_applyBDs(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h5), arg.h6, _sc$$0.h2), Lib_Types_Bnd(Lib_Common_emptyFC, arg.h5)) }; } break; } case "Nil": return { tag: "return", h0: arg.h6 }; } break; } } }; +const Lib_Elab_REC_freshMeta_applyBDs = ( arg ) => { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Defined": return { tag: "Lib.Elab.freshMeta.applyBDs", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h5), h6: arg.h6, h7: _sc$$0.h2 }; case "Bound": return { tag: "return", h0: Lib_Types_App(Lib_Common_emptyFC, Lib_Elab_freshMeta_applyBDs(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h5), arg.h6, _sc$$0.h2), Lib_Types_Bnd(Lib_Common_emptyFC, arg.h5)) }; } break; } case "Nil": return { tag: "return", h0: arg.h6 }; } }; const Lib_Elab_freshMeta_applyBDs = ( _, _1, _2, _3, _4, _$$5, _$$6, _$$7 ) => (bouncer(Lib_Elab_REC_freshMeta_applyBDs, { tag: "Lib.Elab.freshMeta.applyBDs", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _$$5, h6: _$$6, h7: _$$7 })); const Lib_Elab_freshMeta = ( _$$0, _$$1, _$$2, _$$3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("fresh meta ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Lib_Types__next(mc))))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$2)))(" ("))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_MetaKind)(_$$3)))(")"))), ( _ ) => { const qn = Lib_Common_QN(Lib_Types__ns(top), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("$m")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Lib_Types__next(mc))))("")); const newmeta = Lib_Types_Unsolved(_$$1, qn, _$$0, _$$2, _$$3, Prelude_Nil(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), Lib_Types_MC(Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, qn, newmeta, Lib_Types__metas(mc)), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(Lib_Types__next(mc)), Lib_Types__mcmode(mc))), ( _1 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Elab_freshMeta_applyBDs(_$$0, _$$1, _$$2, _$$3, null, 0, Lib_Types_Meta(_$$1, qn), Lib_Types__bds(_$$0))))); })))))); const Lib_Types_AutoSolve = { tag: "AutoSolve" }; const Lib_Elab_insert = ( ctx$$0, _$$1, _$$2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_forceMeta(_$$2), ( ty$27 ) => { switch (ty$27.tag) { case "VPi": { const _sc$$0 = ty$27.h2; switch (_sc$$0.tag) { case "Auto": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_freshMeta(ctx$$0, Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_$$1), ty$27.h4, Lib_Types_AutoSolve), ( m ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("INSERT Auto ")(Lib_Elab_rpprint(Lib_Types_names(ctx$$0), m)))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty$27.h4)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TM ")(Lib_Elab_rpprint(Lib_Types_names(ctx$$0), _$$1)))(""))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(ctx$$0), Lib_Types_CBN, m), ( mv ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(ty$27.h5, mv), ( bapp ) => (Lib_Elab_insert(ctx$$0, Lib_Types_App(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_$$1), _$$1, m), bapp))))))))))); case "Implicit": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_freshMeta(ctx$$0, Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_$$1), ty$27.h4, Lib_Types_Normal), ( m ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("INSERT ")(Lib_Elab_rpprint(Lib_Types_names(ctx$$0), m)))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty$27.h4)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TM ")(Lib_Elab_rpprint(Lib_Types_names(ctx$$0), _$$1)))(""))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(ctx$$0), Lib_Types_CBN, m), ( mv ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(ty$27.h5, mv), ( bapp ) => (Lib_Elab_insert(ctx$$0, Lib_Types_App(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_$$1), _$$1, m), bapp))))))))))); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _$$1, ty$27)); } break; } default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _$$1, ty$27)); } })); const Lib_Types_Prelude_Show$20Lib_Types_Def$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case "PrimFn": return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("PrimFn ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h0)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20Prelude_Nat)(_$$0.h1)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(_$$0.h2)))(""); case "PrimTCon": return "PrimTCon"; case "Fn": return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Fn ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Tm)(_$$0.h0)))(""); case "DCon": return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("DCon ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_$$0.h0)))(" "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$0.h1)))(""); case "TCon": return Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TCon ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(_$$0.h1)))(""); case "Axiom": return "axiom"; } }; const Lib_Types_Prelude_Show$20Lib_Types_Def = Prelude_MkShow(null, Lib_Types_Prelude_Show$20Lib_Types_Def$2Cshow); -const Lib_Elab_REC_infer_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.infer.go": { const _sc$$0 = arg.h6; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$14 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h3); switch (sc$$14.tag) { case "False": return { tag: "Lib.Elab.infer.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1), h6: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Lib_Types_Bnd(arg.h2, arg.h5), _sc$$1.h3)) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$9 = Lib_TopContext_lookupRaw(arg.h3, top); switch (sc$$9.tag) { case "Nothing": return Lib_Types_error(null, arg.h2, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(arg.h3)))(" not in scope")); case "Just": { const _sc$$1 = sc$$9.h1; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("lookup ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" as "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Def)(_sc$$1.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Prelude_Nil(null), Lib_Types_CBN, _sc$$1.h2), ( vty ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Lib_Types_Ref(arg.h2, _sc$$1.h1), vty)))))); break; } } }) }; } break; } } }; +const Lib_Elab_REC_infer_go = ( arg ) => { const _sc$$0 = arg.h6; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$14 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h3); switch (sc$$14.tag) { case "False": return { tag: "Lib.Elab.infer.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h5)(1), h6: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Lib_Types_Bnd(arg.h2, arg.h5), _sc$$1.h3)) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$9 = Lib_TopContext_lookupRaw(arg.h3, top); switch (sc$$9.tag) { case "Nothing": return Lib_Types_error(null, arg.h2, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(arg.h3)))(" not in scope")); case "Just": { const _sc$$1 = sc$$9.h1; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("lookup ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" as "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Def)(_sc$$1.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Prelude_Nil(null), Lib_Types_CBN, _sc$$1.h2), ( vty ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Lib_Types_Ref(arg.h2, _sc$$1.h1), vty)))))); break; } } }) }; } }; const Lib_Elab_infer_go = ( _, _1, _2, _3, _4, _$$5, _$$6 ) => (bouncer(Lib_Elab_REC_infer_go, { tag: "Lib.Elab.infer.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _$$5, h6: _$$6 })); const Lib_Types_MkCtx = ( h0, h1, h2, h3, h4 ) => ({ tag: "MkCtx", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Lib_Types_extend = ( _$$0, _$$1, _$$2 ) => (Lib_Types_MkCtx(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$0.h0), Prelude__$3A$3A_(null, Lib_Types_VVar(Lib_Common_emptyFC, _$$0.h0, Prelude_Lin(null)), _$$0.h1), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$1, _$$2), _$$0.h2), Prelude__$3A$3A_(null, Lib_Types_Bound, _$$0.h3), _$$0.h4)); @@ -756,12 +756,12 @@ const Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern = Prelude_MkShow(null, Lib_Sy const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { case "PatLit": return _$$0.h0; case "PatWild": return _$$0.h0; case "PatCon": return _$$0.h0; case "PatVar": return _$$0.h0; } }; const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern = Lib_Common_MkHasFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern$2CgetFC); const Lib_Elab_checkDone_rename = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _$$15 ) => { switch (_$$15.tag) { case "_::_": { const _sc$$0 = _$$15.h1; const sc$$23 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$0.h2)(_9); switch (sc$$23.tag) { case "False": return Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3), Lib_Elab_checkDone_rename(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _$$15.h2)); case "True": return Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _13, _sc$$0.h3), _$$15.h2); } break; } case "Nil": return Prelude_Nil(null); } }; -const Lib_Elab_REC_checkDone = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.checkDone": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatWild": return { tag: "Lib.Elab.checkDone", h0: arg.h0, h1: _sc$$0.h2, h2: arg.h2, h3: arg.h3 }; case "PatVar": { const ctx = Lib_Types_MkCtx(Lib_Types__lvl(arg.h0), Lib_Types__env(arg.h0), Lib_Elab_checkDone_rename(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$1.h0, _sc$$1.h1, _sc$$1.h2, _sc$$1.h3, _sc$$2.h0, _sc$$2.h1, _sc$$2.h2, null, Lib_Types__types(arg.h0)), Lib_Types__bds(arg.h0), Lib_Types__ctxFC(arg.h0)); return { tag: "Lib.Elab.checkDone", h0: ctx, h1: _sc$$0.h2, h2: arg.h2, h3: arg.h3 }; break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$1.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("stray constraint ")(_sc$$1.h2))(" /? "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)(_sc$$1.h3)))("")) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("DONE-> check body ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h2)))(" at "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debugM(Lib_Elab_showCtx(arg.h0)), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Types__env(arg.h0), ( val ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, Lib_Types__env(arg.h0)), val), ( ty ) => (Lib_Eval_eval(Lib_Types__env(arg.h0), Lib_Types_CBV, ty))))), ( env$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Types__types(arg.h0), ( $$case ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, env$27), $$case.h3), ( nty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(env$27, Lib_Types_CBV, nty), ( ty$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, $$case.h2, ty$27)))))))), ( types$27 ) => { const ctx = Lib_Types_MkCtx(Lib_Types__lvl(arg.h0), env$27, types$27, Lib_Types__bds(arg.h0), Lib_Types__ctxFC(arg.h0)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => ("AFTER")), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debugM(Lib_Elab_showCtx(ctx)), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, Lib_Types__env(ctx)), arg.h3), ( ty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(ctx), Lib_Types_CBN, ty), ( ty1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _4 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("check at ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty1)))(""))), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(ctx, arg.h2, ty1), ( got ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _5 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("DONE<- got ")(Lib_Elab_rpprint(Lib_Types_names(ctx), got)))(""))), ( _5 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(got))))))))))))))); }))))))) }; } break; } } }; +const Lib_Elab_REC_checkDone = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatWild": return { tag: "Lib.Elab.checkDone", h0: arg.h0, h1: _sc$$0.h2, h2: arg.h2, h3: arg.h3 }; case "PatVar": { const ctx = Lib_Types_MkCtx(Lib_Types__lvl(arg.h0), Lib_Types__env(arg.h0), Lib_Elab_checkDone_rename(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$1.h0, _sc$$1.h1, _sc$$1.h2, _sc$$1.h3, _sc$$2.h0, _sc$$2.h1, _sc$$2.h2, null, Lib_Types__types(arg.h0)), Lib_Types__bds(arg.h0), Lib_Types__ctxFC(arg.h0)); return { tag: "Lib.Elab.checkDone", h0: ctx, h1: _sc$$0.h2, h2: arg.h2, h3: arg.h3 }; break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$1.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("stray constraint ")(_sc$$1.h2))(" /? "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)(_sc$$1.h3)))("")) }; } break; } case "Nil": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("DONE-> check body ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h2)))(" at "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debugM(Lib_Elab_showCtx(arg.h0)), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Types__env(arg.h0), ( val ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, Lib_Types__env(arg.h0)), val), ( ty ) => (Lib_Eval_eval(Lib_Types__env(arg.h0), Lib_Types_CBV, ty))))), ( env$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Types__types(arg.h0), ( $$case ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, env$27), $$case.h3), ( nty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(env$27, Lib_Types_CBV, nty), ( ty$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, $$case.h2, ty$27)))))))), ( types$27 ) => { const ctx = Lib_Types_MkCtx(Lib_Types__lvl(arg.h0), env$27, types$27, Lib_Types__bds(arg.h0), Lib_Types__ctxFC(arg.h0)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => ("AFTER")), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debugM(Lib_Elab_showCtx(ctx)), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, Lib_Types__env(ctx)), arg.h3), ( ty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(ctx), Lib_Types_CBN, ty), ( ty1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _4 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("check at ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty1)))(""))), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(ctx, arg.h2, ty1), ( got ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _5 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("DONE<- got ")(Lib_Elab_rpprint(Lib_Types_names(ctx), got)))(""))), ( _5 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(got))))))))))))))); }))))))) }; } }; const Lib_Elab_checkDone = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_Elab_REC_checkDone, { tag: "Lib.Elab.checkDone", h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_Elab__ty = ( _$$0 ) => (_$$0.h1); const Lib_Elab__clauses = ( _$$0 ) => (_$$0.h0); const Lib_Syntax__cons = ( _$$0 ) => (_$$0.h1); -const Prelude_REC_find = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.find": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$6 = arg.h1(_sc$$0.h1); switch (sc$$6.tag) { case "False": return { tag: "Prelude.find", h0: null, h1: arg.h1, h2: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Prelude_REC_find = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$6 = arg.h1(_sc$$0.h1); switch (sc$$6.tag) { case "False": return { tag: "Prelude.find", h0: null, h1: arg.h1, h2: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Prelude_find = ( a$$0, _$$1, _$$2 ) => (bouncer(Prelude_REC_find, { tag: "Prelude.find", h0: a$$0, h1: _$$1, h2: _$$2 })); const Lib_Elab_buildDefault_isDefault = ( _, _1, _2, _3, _4, _5, _$$6 ) => { const sc$$7 = Prelude_find(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_3), ( eta ) => (Prelude_fst(null, null, eta)), eta)), Lib_Syntax__cons(_$$6)); switch (sc$$7.tag) { case "Nothing": return Prelude_True; case "Just": { const _sc$$0 = sc$$7.h1; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "PatWild": return Prelude_True; case "PatVar": return Prelude_True; default: return Prelude_False; } break; } } }; const Lib_Elab_buildDefault = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { const defclauses = Prelude_filter(null, ( eta ) => (Lib_Elab_buildDefault_isDefault(_$$0, _$$1, _$$2, _$$3, _$$4, null, eta)), Lib_Elab__clauses(_$$1)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, defclauses))(0), ( _ ) => (Lib_Types_error(null, _$$2, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("missing cases ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(_$$4)))(" on "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$3)))("")))), ( _ ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, Lib_Types_CaseDefault, Lib_Elab_buildTree(_$$0, Lib_Elab_MkProb(defclauses, Lib_Elab__ty(_$$1)))))); }; @@ -775,7 +775,7 @@ const Lib_Syntax_PatVar = ( h0, h1, h2 ) => ({ tag: "PatVar", h0: h0, h1: h1, const Lib_Syntax_PatWild = ( h0, h1 ) => ({ tag: "PatWild", h0: h0, h1: h1 }); const Lib_Syntax_getIcit = ( _$$0 ) => { switch (_$$0.tag) { case "PatLit": return Lib_Types_Explicit; case "PatWild": return _$$0.h1; case "PatCon": return _$$0.h1; case "PatVar": return _$$0.h1; } }; const Lib_Elab_buildCase_constrainSpine_getName_makeConstr = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _$$16, _$$17, _$$18 ) => { switch (_$$18.tag) { case "_::_": switch (_$$17.tag) { case "_::_": { const _sc$$0 = _$$17.h1; const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Explicit": { const sc$$28 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit)(Lib_Syntax_getIcit(_$$18.h1))(Lib_Types_Explicit); switch (sc$$28.tag) { case "False": return Lib_Types_error(null, Lib_Types__ctxFC(_), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("mismatch between Explicit and ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Icit)(Lib_Syntax_getIcit(_$$18.h1))))("")); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _$$16, _$$17.h2, _$$18.h2), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, _$$18.h1), rest)))); } break; } default: { const sc$$28 = Prelude__$2F$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit, Lib_Syntax_getIcit(_$$18.h1), _sc$$0.h1); switch (sc$$28.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _$$16, _$$17.h2, _$$18.h2), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, _$$18.h1), rest)))); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _$$16, _$$17.h2, Prelude__$3A$3A_(null, _$$18.h1, _$$18.h2)), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, Lib_Syntax_PatWild(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_$$18.h1), _sc$$0.h1)), rest)))); } break; } } break; } case "Nil": return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_$$18.h1), "too many patterns"); } break; case "Nil": switch (_$$17.tag) { case "_::_": { const _sc$$0 = _$$17.h1; const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Auto": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _$$16, _$$17.h2, Prelude_Nil(null)), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, Lib_Syntax_PatWild(Lib_Common_emptyFC, Lib_Types_Auto)), rest)))); case "Explicit": return Lib_Types_error(null, _$$16, "not enough patterns"); case "Implicit": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _$$16, _$$17.h2, Prelude_Nil(null)), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h0, Lib_Syntax_PatWild(Lib_Common_emptyFC, Lib_Types_Implicit)), rest)))); } break; } case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)); } break; } }; -const Lib_Elab_REC_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.buildCase.constrainSpine.getName.makeConstr.rewriteConstraint": { const _sc$$0 = arg.h19; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$28 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h2); switch (sc$$28.tag) { case "False": return { tag: "Lib.Elab.buildCase.constrainSpine.getName.makeConstr.rewriteConstraint", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: arg.h12, h13: arg.h13, h14: arg.h14, h15: arg.h15, h16: arg.h16, h17: arg.h17, h18: arg.h18, h19: _sc$$0.h2, h20: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h20) }; case "True": { const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatLit": return { tag: "return", h0: Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Literal ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Literal)(_sc$$2.h1)))(" in constructor split")) }; case "PatWild": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20)))) }; case "PatCon": { const sc$$35 = Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$2.h2)(arg.h7); switch (sc$$35.tag) { case "False": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$37 = Lib_TopContext_lookup(_sc$$2.h2, top); switch (sc$$37.tag) { case "Nothing": return Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: DCon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$2.h2)))(" not found")); case "Just": { const _sc$$3 = sc$$37.h1; const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "DCon": { const sc$$46 = Prelude__$2F$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _sc$$4.h1, arg.h17); switch (sc$$46.tag) { case "False": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)); case "True": return Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Constructor is ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$4.h1)))(" expected "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(arg.h17)))("")); } break; } default: return Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$2.h2)))(" is not a DCon")); } break; } } }) }; case "True": { const _sc$$3 = _sc$$2.h4; switch (_sc$$3.tag) { case "Nothing": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, arg.h9, arg.h10, arg.h11, arg.h12, arg.h13, arg.h14, arg.h15, _sc$$2.h0, arg.h18, _sc$$2.h3), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(rest)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20)))))) }; case "Just": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, arg.h9, arg.h10, arg.h11, arg.h12, arg.h13, arg.h14, arg.h15, _sc$$2.h0, arg.h18, _sc$$2.h3), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, arg.h2, Lib_Syntax_PatVar(_sc$$2.h0, _sc$$2.h1, _sc$$3.h1)), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(rest)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20))))))) }; } break; } } break; } case "PatVar": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20)))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, arg.h20)) }; } break; } } }; +const Lib_Elab_REC_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint = ( arg ) => { const _sc$$0 = arg.h19; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$28 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h2); switch (sc$$28.tag) { case "False": return { tag: "Lib.Elab.buildCase.constrainSpine.getName.makeConstr.rewriteConstraint", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: arg.h12, h13: arg.h13, h14: arg.h14, h15: arg.h15, h16: arg.h16, h17: arg.h17, h18: arg.h18, h19: _sc$$0.h2, h20: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h20) }; case "True": { const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatLit": return { tag: "return", h0: Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Literal ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Literal)(_sc$$2.h1)))(" in constructor split")) }; case "PatWild": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20)))) }; case "PatCon": { const sc$$35 = Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$2.h2)(arg.h7); switch (sc$$35.tag) { case "False": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$37 = Lib_TopContext_lookup(_sc$$2.h2, top); switch (sc$$37.tag) { case "Nothing": return Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: DCon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$2.h2)))(" not found")); case "Just": { const _sc$$3 = sc$$37.h1; const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "DCon": { const sc$$46 = Prelude__$2F$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _sc$$4.h1, arg.h17); switch (sc$$46.tag) { case "False": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)); case "True": return Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Constructor is ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$4.h1)))(" expected "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(arg.h17)))("")); } break; } default: return Lib_Types_error(null, _sc$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$2.h2)))(" is not a DCon")); } break; } } }) }; case "True": { const _sc$$3 = _sc$$2.h4; switch (_sc$$3.tag) { case "Nothing": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, arg.h9, arg.h10, arg.h11, arg.h12, arg.h13, arg.h14, arg.h15, _sc$$2.h0, arg.h18, _sc$$2.h3), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(rest)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20)))))) }; case "Just": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, arg.h9, arg.h10, arg.h11, arg.h12, arg.h13, arg.h14, arg.h15, _sc$$2.h0, arg.h18, _sc$$2.h3), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, arg.h2, Lib_Syntax_PatVar(_sc$$2.h0, _sc$$2.h1, _sc$$3.h1)), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(rest)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20))))))) }; } break; } } break; } case "PatVar": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h20)))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, arg.h20)) }; } }; const Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _$$17, _$$18, _$$19, _$$20 ) => (bouncer(Lib_Elab_REC_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint, { tag: "Lib.Elab.buildCase.constrainSpine.getName.makeConstr.rewriteConstraint", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _8, h9: _9, h10: _10, h11: _11, h12: _12, h13: _13, h14: _14, h15: _15, h16: _16, h17: _$$17, h18: _$$18, h19: _$$19, h20: _$$20 })); const Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _$$18, _$$19, _$$20 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _$$18, _$$19, _$$20.h1, Prelude_Nil(null)), ( $$sc ) => { switch ($$sc.tag) { case "Just": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Lib_Syntax_MkClause(_$$20.h0, $$sc.h1, _$$20.h2, _$$20.h3))); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)); } })); const Lib_Elab_Prelude_Show$20Lib_Elab_Bind$2Cshow = ( _$$0 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(_$$0.h0))(" "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Icit)(_$$0.h1)))("")); @@ -785,12 +785,12 @@ const Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap = ( a$$0, b$$1, _$$2, _$$ const Prelude_Prelude_Functor$20Prelude_SnocList = Prelude_MkFunctor(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Prelude_Prelude_Functor$20Prelude_SnocList$2Cmap(null, null, eta, eta1)))))); const Lib_Elab_substVal_go = ( _, _1, _2, _3, _$$4 ) => { switch (_$$4.tag) { case "VLet": return Lib_Types_VLet(_$$4.h0, _$$4.h1, Lib_Elab_substVal_go(_, _1, _2, _3, _$$4.h2), _$$4.h3); case "VPi": return Lib_Types_VPi(_$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, Lib_Elab_substVal_go(_, _1, _2, _3, _$$4.h4), _$$4.h5); case "VMeta": return Lib_Types_VMeta(_$$4.h0, _$$4.h1, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_SnocList)(null)(null)(( eta ) => (Lib_Elab_substVal_go(_, _1, _2, _3, eta)))(_$$4.h2)); case "VRef": return Lib_Types_VRef(_$$4.h0, _$$4.h1, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_SnocList)(null)(null)(( eta ) => (Lib_Elab_substVal_go(_, _1, _2, _3, eta)))(_$$4.h2)); case "VVar": { const sc$$8 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$4.h1)(_); switch (sc$$8.tag) { case "False": return Lib_Types_VVar(_$$4.h0, _$$4.h1, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_SnocList)(null)(null)(( eta ) => (Lib_Elab_substVal_go(_, _1, _2, _3, eta)))(_$$4.h2)); case "True": return _1; } break; } default: return _$$4; } }; const Lib_Elab_substVal = ( _$$0, _$$1, _$$2 ) => (Lib_Elab_substVal_go(_$$0, _$$1, _$$2, null, _$$2)); -const Lib_Elab_REC_updateContext = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.updateContext": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const ix = Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_lvl2ix(Prelude_length$27(null, Lib_Types__env(arg.h0)), _sc$$1.h2)); const sc$$12 = Prelude_getAt(null, ix, Lib_Types__env(arg.h0)); switch (sc$$12.tag) { case "Nothing": return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_sc$$1.h3), "INTERNAL ERROR: bad index in updateContext") }; case "Just": { const _sc$$2 = sc$$12.h1; switch (_sc$$2.tag) { case "VVar": { const _sc$$3 = _sc$$2.h2; switch (_sc$$3.tag) { case "Lin": { const sc$$19 = Prelude__$2F$3D_(null, Prelude_Prelude_Eq$20Prim_Int, _sc$$2.h1, _sc$$1.h2); switch (sc$$19.tag) { case "False": { const ctx$27 = Lib_Types_MkCtx(Lib_Types__lvl(arg.h0), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Elab_substVal(_sc$$1.h2, _sc$$1.h3, eta)))(Lib_Types__env(arg.h0)), Lib_Types__types(arg.h0), Lib_Elab_updateContext_replace_replaceV(arg.h0, arg.h1, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$1.h0, _sc$$1.h1, _sc$$1.h2, _sc$$1.h3, null, null, null, ix, Lib_Types_Defined, Lib_Types__bds(arg.h0)), Lib_Types__ctxFC(arg.h0)); return { tag: "Lib.Elab.updateContext", h0: ctx$27, h1: _sc$$0.h2 }; break; } case "True": return { tag: "Lib.Elab.updateContext", h0: arg.h0, h1: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$2.h1, _sc$$1.h3), _sc$$0.h2) }; } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_sc$$1.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("need to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h3)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$12.h1)))(" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, _sc$$0.h2))) }; } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_sc$$1.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("need to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h3)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$12.h1)))(" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, _sc$$0.h2))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h0) }; } break; } } }; +const Lib_Elab_REC_updateContext = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const ix = Prelude_cast(null, null, Prelude_Prelude_Cast$20Prim_Int$20Prelude_Nat)(Lib_Common_lvl2ix(Prelude_length$27(null, Lib_Types__env(arg.h0)), _sc$$1.h2)); const sc$$12 = Prelude_getAt(null, ix, Lib_Types__env(arg.h0)); switch (sc$$12.tag) { case "Nothing": return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_sc$$1.h3), "INTERNAL ERROR: bad index in updateContext") }; case "Just": { const _sc$$2 = sc$$12.h1; switch (_sc$$2.tag) { case "VVar": { const _sc$$3 = _sc$$2.h2; switch (_sc$$3.tag) { case "Lin": { const sc$$19 = Prelude__$2F$3D_(null, Prelude_Prelude_Eq$20Prim_Int, _sc$$2.h1, _sc$$1.h2); switch (sc$$19.tag) { case "False": { const ctx$27 = Lib_Types_MkCtx(Lib_Types__lvl(arg.h0), Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Elab_substVal(_sc$$1.h2, _sc$$1.h3, eta)))(Lib_Types__env(arg.h0)), Lib_Types__types(arg.h0), Lib_Elab_updateContext_replace_replaceV(arg.h0, arg.h1, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$1.h0, _sc$$1.h1, _sc$$1.h2, _sc$$1.h3, null, null, null, ix, Lib_Types_Defined, Lib_Types__bds(arg.h0)), Lib_Types__ctxFC(arg.h0)); return { tag: "Lib.Elab.updateContext", h0: ctx$27, h1: _sc$$0.h2 }; break; } case "True": return { tag: "Lib.Elab.updateContext", h0: arg.h0, h1: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$2.h1, _sc$$1.h3), _sc$$0.h2) }; } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_sc$$1.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("need to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h3)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$12.h1)))(" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, _sc$$0.h2))) }; } break; } default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_sc$$1.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("need to unify ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h3)))(" and "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$12.h1)))(" or something")), ( _ ) => (Lib_Elab_updateContext(arg.h0, _sc$$0.h2))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(arg.h0) }; } }; const Lib_Elab_updateContext = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_updateContext, { tag: "Lib.Elab.updateContext", h0: _$$0, h1: _$$1 })); const Lib_Elab_UPattern = { tag: "UPattern" }; const Lib_Types_tryError = ( a$$0, _$$1 ) => (Lib_Types_catchError(null, Prelude_map(null, Lib_Types_Prelude_Functor$20Lib_Types_M)(null)(null)(( eta ) => (Prelude_Right(null, null, eta)))(_$$1), ( eta ) => (Prelude__$2218_(null, null, null, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null), ( eta ) => (Prelude_Left(null, null, eta)), eta)))); const Lib_Elab_buildCase_constrainSpine = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _$$14, _$$15 ) => { switch (_$$15.tag) { case "_::_": return Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$14, _$$15.h1), Lib_Elab_buildCase_constrainSpine(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$14), _$$15.h2)); case "Nil": return Prelude_Nil(null); } }; -const Lib_Elab_REC_lookupDef_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.lookupDef.go": { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h4; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; const sc$$16 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$2.h2)(arg.h1); switch (sc$$16.tag) { case "False": return { tag: "Lib.Elab.lookupDef.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h3), h4: _sc$$1.h2, h5: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; } break; } default: return { tag: "return", h0: Prelude_Nothing(null) }; } break; } default: return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Lib_Elab_REC_lookupDef_go = ( arg ) => { const _sc$$0 = arg.h5; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = arg.h4; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; const sc$$16 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$2.h2)(arg.h1); switch (sc$$16.tag) { case "False": return { tag: "Lib.Elab.lookupDef.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h3), h4: _sc$$1.h2, h5: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; } break; } default: return { tag: "return", h0: Prelude_Nothing(null) }; } break; } default: return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Lib_Elab_lookupDef_go = ( _, _1, _2, _$$3, _$$4, _$$5 ) => (bouncer(Lib_Elab_REC_lookupDef_go, { tag: "Lib.Elab.lookupDef.go", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4, h5: _$$5 })); const Lib_Elab_lookupDef = ( _$$0, _$$1 ) => (Lib_Elab_lookupDef_go(_$$0, _$$1, null, 0, Lib_Types__types(_$$0), Lib_Types__env(_$$0))); const Lib_Elab_MkBind = ( h0, h1, h2 ) => ({ tag: "MkBind", h0: h0, h1: h1, h2: h2 }); @@ -799,10 +799,10 @@ const Lib_Elab_extendPi = ( _$$0, _$$1, _$$2, _$$3 ) => { switch (_$$1.tag) { ca const Lib_Elab_buildCase = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { const _sc$$0 = _$$4.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("CASE ")(_$$2))(" match "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" ty "))(Lib_Elab_rpprint(Lib_Types_names(_$$0), _sc$$0.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Prelude_Nil(null), Lib_Types_CBN, _sc$$0.h3), ( vty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_extendPi(_$$0, vty, Prelude_Lin(null), Prelude_Lin(null)), ( $$sc ) => { const _sc$$1 = $$sc.h3; const _sc$$2 = _sc$$1.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("unify dcon cod with scrut\n ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h2)))("\n "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))(""))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_catchError(null, Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Elab_unify(Lib_Types__env($$sc.h2), Lib_Elab_UPattern, _sc$$1.h2, _$$3)), ( err ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SKIP ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" because unify error "))(Lib_Types_errorMsg(err)))(""))), ( _2 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)))))), ( $$sc1 ) => { switch ($$sc1.tag) { case "Just": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("scrut ")(_$$2))(" constrained to "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Lib_Elab_lookupDef(_$$0, _$$2))))(""))), ( _2 ) => { switch (_$$3.tag) { case "VRef": { const sc$$44 = Lib_Elab_lookupDef(_$$0, _$$2); switch (sc$$44.tag) { case "Just": { const _sc$$3 = sc$$44.h1; switch (_sc$$3.tag) { case "VRef": { const sc$$50 = Prelude__$2F$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, _sc$$3.h1, _$$4.h2); switch (sc$$50.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("case ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" dotted "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$44.h1)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$2F$3D_(null, Prelude_Prelude_Eq$20Prelude_Nat, Prelude_length(null, _sc$$2.h2), Data_SnocList_snoclen(null, _sc$$3.h2)), ( _4 ) => (Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Prelude_Prelude_Show$20Prelude_Nat)(Prelude_length(null, _sc$$2.h2))))(" vars /= "))(Prelude_show(null, Prelude_Prelude_Show$20Prelude_Nat)(Data_SnocList_snoclen(null, _sc$$3.h2))))("")))), ( _4 ) => { const lvl = Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(Prelude_length$27(null, Lib_Types__env($$sc.h2)))(Prelude_length$27(null, _sc$$2.h2)); const scons = Lib_Elab_buildCase_constrainSpine(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, lvl, Prelude__$3C$3E$3E_(null, _sc$$3.h2, Prelude_Nil(null))); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_updateContext($$sc.h2, scons), ( ctx$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _5 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("(dcon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" ty "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h2)))(" scty "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))(""))), ( _5 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _6 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("(dcon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(") (vars "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind))(_sc$$2.h2)))(") clauses were"))), ( _6 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Elab__clauses(_$$1), ( x ) => (Lib_Types_debug(( _7 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause)(x)))(""))))), ( _7 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), eta)), Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, null, _$$3.h1, _sc$$2.h2, eta)))(Lib_Elab__clauses(_$$1))), ( clauses ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _8 ) => ("and now:")), ( _8 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_debug(( _9 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause)(x)))(""))))), ( _9 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, clauses))(0), ( _10 ) => (Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Missing case for ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" splitting "))(_$$2))("")))), ( _10 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, Lib_Elab__ty(_$$1))), ( tm ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, eta)))(_sc$$2.h2), tm))))))))))))))))))))); }))); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SKIP ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" because "))(_$$2))(" forced to "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$44.h1)))(""))), ( _3 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)))); } break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_tryError(null, Lib_Elab_unify(Lib_Types__env($$sc.h2), Lib_Elab_UPattern, _sc$$1.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case "Right": { const sc$$52 = Prelude_findIndex$27(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_$$2), ( eta ) => (Prelude_fst(null, null, eta)), eta)), Lib_Types__types($$sc.h2)); switch (sc$$52.tag) { case "Nothing": return Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(_$$2))(" not is scope?")); case "Just": { const lvl = Lib_Common_lvl2ix(Prelude_length$27(null, Lib_Types__env($$sc.h2)), sc$$52.h1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VRef(Lib_Types__ctxFC(_$$0), _$$4.h2, _sc$$2.h3)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("scty ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _4 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("UNIFY results ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val)))(Lib_Elab__constraints($$sc2.h2))))(""))), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _5 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("before types: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val)))(Lib_Types__types($$sc.h2))))(""))), ( _5 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _6 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("before env: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Lib_Types__env($$sc.h2))))(""))), ( _6 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _7 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SC CONSTRAINT: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val))(scon)))(""))), ( _7 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_updateContext($$sc.h2, Prelude__$3A$3A_(null, scon, Lib_Elab__constraints($$sc2.h2))), ( ctx$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _8 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("context types: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val)))(Lib_Types__types(ctx$27))))(""))), ( _8 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _9 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("context env: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Lib_Types__env(ctx$27))))(""))), ( _9 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _10 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("(dcon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" ty "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h2)))(" scty "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))(""))), ( _10 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _11 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("(dcon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(") (vars "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind))(_sc$$2.h2)))(") clauses were"))), ( _11 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Elab__clauses(_$$1), ( x ) => (Lib_Types_debug(( _12 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause)(x)))(""))))), ( _12 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), eta)), Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, null, _$$3.h1, _sc$$2.h2, eta)))(Lib_Elab__clauses(_$$1))), ( clauses ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _13 ) => ("and now:")), ( _13 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_debug(( _14 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause)(x)))(""))))), ( _14 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, clauses))(0), ( _15 ) => (Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Missing case for ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" splitting "))(_$$2))("")))), ( _15 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, Lib_Elab__ty(_$$1))), ( tm ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, eta)))(_sc$$2.h2), tm))))))))))))))))))))))))))))))))))); break; } } break; } case "Left": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SKIP ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" because unify error "))(Lib_Types_errorMsg($$sc2.h2)))(""))), ( _3 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)))); } }); } break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_tryError(null, Lib_Elab_unify(Lib_Types__env($$sc.h2), Lib_Elab_UPattern, _sc$$1.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case "Right": { const sc$$50 = Prelude_findIndex$27(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_$$2), ( eta ) => (Prelude_fst(null, null, eta)), eta)), Lib_Types__types($$sc.h2)); switch (sc$$50.tag) { case "Nothing": return Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(_$$2))(" not is scope?")); case "Just": { const lvl = Lib_Common_lvl2ix(Prelude_length$27(null, Lib_Types__env($$sc.h2)), sc$$50.h1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VRef(Lib_Types__ctxFC(_$$0), _$$4.h2, _sc$$2.h3)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("scty ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _4 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("UNIFY results ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val)))(Lib_Elab__constraints($$sc2.h2))))(""))), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _5 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("before types: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val)))(Lib_Types__types($$sc.h2))))(""))), ( _5 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _6 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("before env: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Lib_Types__env($$sc.h2))))(""))), ( _6 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _7 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SC CONSTRAINT: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Val))(scon)))(""))), ( _7 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_updateContext($$sc.h2, Prelude__$3A$3A_(null, scon, Lib_Elab__constraints($$sc2.h2))), ( ctx$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _8 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("context types: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Types_Prelude_Show$20Lib_Types_Val)))(Lib_Types__types(ctx$27))))(""))), ( _8 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _9 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("context env: ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Lib_Types__env(ctx$27))))(""))), ( _9 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _10 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("(dcon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" ty "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h2)))(" scty "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))(""))), ( _10 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _11 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("(dcon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(") (vars "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Elab_Prelude_Show$20Lib_Elab_Bind))(_sc$$2.h2)))(") clauses were"))), ( _11 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, Lib_Elab__clauses(_$$1), ( x ) => (Lib_Types_debug(( _12 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause)(x)))(""))))), ( _12 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), eta)), Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_buildCase_constrainSpine_getName_makeConstr_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, null, _$$3.h1, _sc$$2.h2, eta)))(Lib_Elab__clauses(_$$1))), ( clauses ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _13 ) => ("and now:")), ( _13 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, clauses, ( x ) => (Lib_Types_debug(( _14 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Clause)(x)))(""))))), ( _14 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, clauses))(0), ( _15 ) => (Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Missing case for ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" splitting "))(_$$2))("")))), ( _15 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, Lib_Elab__ty(_$$1))), ( tm ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Just(null, Lib_Types_CaseCons(_$$4.h2, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Lib_Elab_buildCase_constrainSpine_getName(_$$0, _$$1, _$$2, _$$3, _$$4, _$$4.h0, _$$4.h1, _$$4.h2, _$$4.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, eta)))(_sc$$2.h2), tm))))))))))))))))))))))))))))))))))); break; } } break; } case "Left": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SKIP ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" because unify error "))(Lib_Types_errorMsg($$sc2.h2)))(""))), ( _3 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)))); } }); } break; } default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(_$$3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("case split on non-inductive ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_$$3)))("")); } }); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)); } }))); }))))); }; const Lib_Elab_checkCase = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { const _sc$$0 = _$$4.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Prelude_Nil(null), Lib_Types_CBN, _sc$$0.h3), ( vty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_extendPi(_$$0, vty, Prelude_Lin(null), Prelude_Lin(null)), ( $$sc ) => { const _sc$$1 = $$sc.h3; const _sc$$2 = _sc$$1.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_catchError(null, Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude_Just(null, eta)), Lib_Elab_unify(Lib_Types__env($$sc.h2), Lib_Elab_UPattern, _sc$$1.h2, _$$3)), ( err ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SKIP ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" because unify error "))(Lib_Types_errorMsg(err)))(""))), ( _ ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nothing(null)))))), ( $$sc1 ) => { switch ($$sc1.tag) { case "Just": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_tryError(null, Lib_Elab_unify(Lib_Types__env($$sc.h2), Lib_Elab_UPattern, _sc$$1.h2, _$$3)), ( $$sc2 ) => { switch ($$sc2.tag) { case "Right": { const sc$$37 = Lib_Elab_lookupDef(_$$0, _$$2); switch (sc$$37.tag) { case "Just": { const _sc$$3 = sc$$37.h1; switch (_sc$$3.tag) { case "VRef": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_sc$$3.h1)(_$$4.h2)); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_True); } break; } default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_True); } break; } case "Left": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SKIP ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$4.h2)))(" because unify error "))(Lib_Types_errorMsg($$sc2.h2)))(""))), ( _ ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False))); } }); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False); } }); }))); }; const Lib_Types_filterM = ( a$$0, _$$1, _$$2 ) => { switch (_$$2.tag) { case "_::_": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, _$$1(_$$2.h1), ( check ) => { switch (check.tag) { case "False": return Lib_Types_filterM(null, _$$1, _$$2.h2); case "True": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude__$3A$3A_(null, _$$2.h1, eta)), Lib_Types_filterM(null, _$$1, _$$2.h2)); } }); case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)); } }; -const Prelude_REC_partition_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.partition.go": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const sc$$10 = arg.h1(_sc$$0.h1); switch (sc$$10.tag) { case "False": return { tag: "Prelude.partition.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2, h5: arg.h5, h6: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h6) }; case "True": return { tag: "Prelude.partition.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2, h5: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h5), h6: arg.h6 }; } break; } case "Nil": return { tag: "return", h0: Prelude__$2C_(null, null, arg.h5, arg.h6) }; } break; } } }; +const Prelude_REC_partition_go = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const sc$$10 = arg.h1(_sc$$0.h1); switch (sc$$10.tag) { case "False": return { tag: "Prelude.partition.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2, h5: arg.h5, h6: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h6) }; case "True": return { tag: "Prelude.partition.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: _sc$$0.h2, h5: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h5), h6: arg.h6 }; } break; } case "Nil": return { tag: "return", h0: Prelude__$2C_(null, null, arg.h5, arg.h6) }; } }; const Prelude_partition_go = ( _, _1, _2, _3, _$$4, _$$5, _$$6 ) => (bouncer(Prelude_REC_partition_go, { tag: "Prelude.partition.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _$$4, h5: _$$5, h6: _$$6 })); const Prelude_partition = ( a$$0, _$$1, _$$2 ) => (Prelude_partition_go(a$$0, _$$1, _$$2, null, _$$2, Prelude_Nil(null), Prelude_Nil(null))); -const Lib_Elab_REC_matchedConstructors = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.matchedConstructors": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$9 = Prelude_find(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(arg.h0), ( eta ) => (Prelude_fst(null, null, eta)), eta)), _sc$$1.h1); switch (sc$$9.tag) { case "Just": { const _sc$$2 = sc$$9.h1; const _sc$$3 = _sc$$2.h3; switch (_sc$$3.tag) { case "PatCon": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$3.h2, Lib_Elab_matchedConstructors(arg.h0, _sc$$0.h2)) }; default: return { tag: "Lib.Elab.matchedConstructors", h0: arg.h0, h1: _sc$$0.h2 }; } break; } default: return { tag: "Lib.Elab.matchedConstructors", h0: arg.h0, h1: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Lib_Elab_REC_matchedConstructors = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$9 = Prelude_find(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(arg.h0), ( eta ) => (Prelude_fst(null, null, eta)), eta)), _sc$$1.h1); switch (sc$$9.tag) { case "Just": { const _sc$$2 = sc$$9.h1; const _sc$$3 = _sc$$2.h3; switch (_sc$$3.tag) { case "PatCon": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$3.h2, Lib_Elab_matchedConstructors(arg.h0, _sc$$0.h2)) }; default: return { tag: "Lib.Elab.matchedConstructors", h0: arg.h0, h1: _sc$$0.h2 }; } break; } default: return { tag: "Lib.Elab.matchedConstructors", h0: arg.h0, h1: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Lib_Elab_matchedConstructors = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_matchedConstructors, { tag: "Lib.Elab.matchedConstructors", h0: _$$0, h1: _$$1 })); const Lib_Elab_vprint = ( _$$0, _$$1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Prelude_length$27(null, Lib_Types__env(_$$0)), _$$1), ( tm ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Prettier_render(90, Lib_Types_pprint(Lib_Types_names(_$$0), tm)))))); const Lib_Elab_getConstructors_lookupTCon_lookupDCon = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$10 = Lib_TopContext_lookup(_$$8, top); switch (sc$$10.tag) { case "Nothing": return Lib_Types_error(null, _3, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: DCon ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$8)))(" not found")); case "Just": { const _sc$$0 = sc$$10.h1; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "DCon": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _sc$$0.h1, Prelude__$2C_(null, null, _sc$$1.h0, _sc$$0.h2))); default: return Lib_Types_error(null, _3, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$8)))(" is not a DCon")); } break; } } })); @@ -814,30 +814,30 @@ const Prelude_Prelude_Monad$20Prelude_Maybe$2Cbind = ( a$$0, b$$1, _$$2, _$$3 ) const Prelude_Prelude_Monad$20Prelude_Maybe = Prelude_MkMonad(null, ( a ) => (( b ) => (( eta ) => (( eta1 ) => (Prelude_Prelude_Monad$20Prelude_Maybe$2Cbind(null, null, eta, eta1))))), ( a ) => (( eta ) => (Prelude_Prelude_Monad$20Prelude_Maybe$2Cpure(null, eta)))); const Lib_Types_Prelude_Eq$20Lib_Types_Literal$2C_$3D$3D_ = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "LChar": switch (_$$0.tag) { case "LChar": return Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Char)(_$$0.h0)(_$$1.h0); default: return Prelude_False; } break; case "LInt": switch (_$$0.tag) { case "LInt": return Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$0.h0)(_$$1.h0); default: return Prelude_False; } break; case "LString": switch (_$$0.tag) { case "LString": return Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_$$0.h0)(_$$1.h0); default: return Prelude_False; } break; } }; const Lib_Types_Prelude_Eq$20Lib_Types_Literal = Prelude_MkEq(null, ( eta ) => (( eta1 ) => (Lib_Types_Prelude_Eq$20Lib_Types_Literal$2C_$3D$3D_(eta, eta1)))); -const Lib_Elab_REC_buildLitCase_rewriteConstraint = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.buildLitCase.rewriteConstraint": { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$16 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h3); switch (sc$$16.tag) { case "False": return { tag: "Lib.Elab.buildLitCase.rewriteConstraint", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: _sc$$0.h2, h8: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h8) }; case "True": { const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatLit": { const sc$$20 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Literal)(_sc$$2.h1)(arg.h5); switch (sc$$20.tag) { case "False": return { tag: "return", h0: Prelude_Nothing(null) }; case "True": return { tag: "return", h0: Prelude_Just(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h8)) }; } break; } case "PatWild": return { tag: "return", h0: Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h8))) }; case "PatCon": return { tag: "return", h0: Prelude_Nothing(null) }; case "PatVar": return { tag: "return", h0: Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h8))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_Just(null, arg.h8) }; } break; } } }; +const Lib_Elab_REC_buildLitCase_rewriteConstraint = ( arg ) => { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$16 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h3); switch (sc$$16.tag) { case "False": return { tag: "Lib.Elab.buildLitCase.rewriteConstraint", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: _sc$$0.h2, h8: Prelude__$3A$3A_(null, _sc$$0.h1, arg.h8) }; case "True": { const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatLit": { const sc$$20 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Literal)(_sc$$2.h1)(arg.h5); switch (sc$$20.tag) { case "False": return { tag: "return", h0: Prelude_Nothing(null) }; case "True": return { tag: "return", h0: Prelude_Just(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h8)) }; } break; } case "PatWild": return { tag: "return", h0: Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h8))) }; case "PatCon": return { tag: "return", h0: Prelude_Nothing(null) }; case "PatVar": return { tag: "return", h0: Prelude_Just(null, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$0.h2)(arg.h8))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_Just(null, arg.h8) }; } }; const Lib_Elab_buildLitCase_rewriteConstraint = ( _, _1, _2, _3, _4, _5, _6, _$$7, _$$8 ) => (bouncer(Lib_Elab_REC_buildLitCase_rewriteConstraint, { tag: "Lib.Elab.buildLitCase.rewriteConstraint", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _$$7, h8: _$$8 })); const Lib_Elab_buildLitCase_rewriteConstraint_rewriteClause = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8 ) => (Prelude__$3E$3E$3D_(null, null, null, Prelude_Prelude_Monad$20Prelude_Maybe, Lib_Elab_buildLitCase_rewriteConstraint(_, _1, _2, _3, _4, _5, _6, _$$8.h1, Prelude_Nil(null)), ( cons ) => (Prelude_pure(null, Prelude_Prelude_Monad$20Prelude_Maybe)(null)(Lib_Syntax_MkClause(_$$8.h0, cons, _$$8.h2, _$$8.h3))))); const Lib_Elab_buildLitCase = ( _$$0, _$$1, _$$2, _$$3, _$$4, _$$5 ) => { const sc$$8 = Prelude_findIndex$27(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_$$3), ( eta ) => (Prelude_fst(null, null, eta)), eta)), Lib_Types__types(_$$0)); switch (sc$$8.tag) { case "Nothing": return Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(_$$3))(" not is scope?")); case "Just": { const lvl = Lib_Common_lvl2ix(Prelude_length$27(null, Lib_Types__env(_$$0)), sc$$8.h1); const scon = Prelude__$2C_(null, null, lvl, Lib_Types_VLit(_$$2, _$$5)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_updateContext(_$$0, Prelude__$3A$3A_(null, scon, Prelude_Nil(null))), ( ctx$27 ) => { const clauses = Prelude_mapMaybe(null, null, ( eta ) => (Lib_Elab_buildLitCase_rewriteConstraint_rewriteClause(_$$0, _$$1, _$$2, _$$3, _$$4, _$$5, null, null, eta)), Lib_Elab__clauses(_$$1)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, clauses))(0), ( _ ) => (Lib_Types_error(null, Lib_Types__ctxFC(_$$0), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Missing case for ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Literal)(_$$5)))(" splitting "))(_$$3))("")))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, Lib_Elab__ty(_$$1))), ( tm ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_CaseLit(_$$5, tm)))))); }); break; } } }; -const Lib_Elab_REC_getLits = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.getLits": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$9 = Prelude_find(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(arg.h0), ( eta ) => (Prelude_fst(null, null, eta)), eta)), _sc$$1.h1); switch (sc$$9.tag) { case "Just": { const _sc$$2 = sc$$9.h1; const _sc$$3 = _sc$$2.h3; switch (_sc$$3.tag) { case "PatLit": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$3.h1, Lib_Elab_getLits(arg.h0, _sc$$0.h2)) }; default: return { tag: "Lib.Elab.getLits", h0: arg.h0, h1: _sc$$0.h2 }; } break; } default: return { tag: "Lib.Elab.getLits", h0: arg.h0, h1: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Lib_Elab_REC_getLits = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$9 = Prelude_find(null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(arg.h0), ( eta ) => (Prelude_fst(null, null, eta)), eta)), _sc$$1.h1); switch (sc$$9.tag) { case "Just": { const _sc$$2 = sc$$9.h1; const _sc$$3 = _sc$$2.h3; switch (_sc$$3.tag) { case "PatLit": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$3.h1, Lib_Elab_getLits(arg.h0, _sc$$0.h2)) }; default: return { tag: "Lib.Elab.getLits", h0: arg.h0, h1: _sc$$0.h2 }; } break; } default: return { tag: "Lib.Elab.getLits", h0: arg.h0, h1: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Lib_Elab_getLits = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_getLits, { tag: "Lib.Elab.getLits", h0: _$$0, h1: _$$1 })); -const Prelude_REC_nub = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Prelude.nub": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$6 = Prelude_elem(null, arg.h1, _sc$$0.h1, _sc$$0.h2); switch (sc$$6.tag) { case "False": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Prelude_nub(null, arg.h1, _sc$$0.h2)) }; case "True": return { tag: "Prelude.nub", h0: null, h1: arg.h1, h2: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Prelude_REC_nub = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$6 = Prelude_elem(null, arg.h1, _sc$$0.h1, _sc$$0.h2); switch (sc$$6.tag) { case "False": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Prelude_nub(null, arg.h1, _sc$$0.h2)) }; case "True": return { tag: "Prelude.nub", h0: null, h1: arg.h1, h2: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Prelude_nub = ( a$$0, _$$1, _$$2 ) => (bouncer(Prelude_REC_nub, { tag: "Prelude.nub", h0: a$$0, h1: _$$1, h2: _$$2 })); const Lib_Elab_buildLitCases = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { const lits = Prelude_nub(null, Lib_Types_Prelude_Eq$20Lib_Types_Literal, Lib_Elab_getLits(_$$3, Lib_Elab__clauses(_$$1))); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_buildLitCase(_$$0, _$$1, _$$2, _$$3, _$$4, eta)))(lits), ( alts ) => { const defclauses = Prelude_filter(null, ( eta ) => (Lib_Elab_buildLitCases_isDefault(_$$0, _$$1, _$$2, _$$3, _$$4, null, eta)), Lib_Elab__clauses(_$$1)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, defclauses))(0), ( _ ) => (Lib_Types_error(null, _$$2, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("no default for literal slot on ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$3)))("")))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(_$$0, Lib_Elab_MkProb(defclauses, Lib_Elab__ty(_$$1))), ( tm ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(alts)(Prelude__$3A$3A_(null, Lib_Types_CaseDefault(tm), Prelude_Nil(null)))))))); }); }; const Lib_Elab_litTyName = ( _$$0 ) => { switch (_$$0.tag) { case "LChar": return Lib_Elab_charType; case "LInt": return Lib_Elab_intType; case "LString": return Lib_Elab_stringType; } }; const Lib_Elab_solveAutos_isAuto = ( _, _$$1 ) => { switch (_$$1.tag) { case "Unsolved": { const _sc$$0 = _$$1.h4; switch (_sc$$0.tag) { case "AutoSolve": return Prelude_True; default: return Prelude_False; } break; } default: return Prelude_False; } }; const Lib_Elab_solveAutos_isAuto_run = ( _, _1, _$$2 ) => { switch (_$$2.tag) { case "_::_": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_trySolveAuto(_$$2.h1), ( res ) => { switch (res.tag) { case "False": return Lib_Elab_solveAutos_isAuto_run(_, _1, _$$2.h2); case "True": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_True); } }); case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_False); } }; const Lib_Elab_solveAutos = Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_solveAutos_isAuto_run(null, null, Prelude_filter(null, ( eta ) => (Lib_Elab_solveAutos_isAuto(null, eta)), Data_SortedMap_listValues(null, null, Lib_Types__metas(mc)))), ( res ) => { switch (res.tag) { case "False": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit); case "True": return Lib_Elab_solveAutos; } }))))); -const Lib_Elab_REC_lookupName_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.lookupName.go": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$12 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h1); switch (sc$$12.tag) { case "False": return { tag: "Lib.Elab.lookupName.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h3), h4: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_Just(null, Prelude__$2C_(null, null, Lib_Types_Bnd(Lib_Common_emptyFC, arg.h3), _sc$$1.h3)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Lib_Elab_REC_lookupName_go = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$12 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(arg.h1); switch (sc$$12.tag) { case "False": return { tag: "Lib.Elab.lookupName.go", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h3), h4: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude_Just(null, Prelude__$2C_(null, null, Lib_Types_Bnd(Lib_Common_emptyFC, arg.h3), _sc$$1.h3)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Lib_Elab_lookupName_go = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Lib_Elab_REC_lookupName_go, { tag: "Lib.Elab.lookupName.go", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); const Lib_Elab_lookupName = ( _$$0, _$$1 ) => (Lib_Elab_lookupName_go(_$$0, _$$1, null, 0, Lib_Types__types(_$$0))); -const Lib_Elab_REC_findSplit = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.findSplit": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatLit": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; case "PatCon": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; default: return { tag: "Lib.Elab.findSplit", h0: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } break; } } }; +const Lib_Elab_REC_findSplit = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h3; switch (_sc$$2.tag) { case "PatLit": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; case "PatCon": return { tag: "return", h0: Prelude_Just(null, _sc$$0.h1) }; default: return { tag: "Lib.Elab.findSplit", h0: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nothing(null) }; } }; const Lib_Elab_findSplit = ( _$$0 ) => (bouncer(Lib_Elab_REC_findSplit, { tag: "Lib.Elab.findSplit", h0: _$$0 })); const Lib_Elab_introClause = ( _$$0, _$$1, _$$2 ) => { const _sc$$0 = _$$2.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$10 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit)(_$$1)(Lib_Syntax_getIcit(_sc$$0.h1)); switch (sc$$10.tag) { case "False": { const sc$$11 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit)(_$$1)(Lib_Types_Implicit); switch (sc$$11.tag) { case "False": { const sc$$12 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit)(_$$1)(Lib_Types_Auto); switch (sc$$12.tag) { case "False": return Lib_Types_error(null, _$$2.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Explicit arg and ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Icit)(Lib_Syntax_getIcit(_sc$$0.h1))))(" pattern "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0)))(" "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)(_sc$$0.h1)))("")); case "True": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_MkClause(_$$2.h0, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$0, Lib_Syntax_PatWild(_$$2.h0, Lib_Types_Auto)), _$$2.h1), Prelude__$3A$3A_(null, _sc$$0.h1, _sc$$0.h2), _$$2.h3)); } break; } case "True": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_MkClause(_$$2.h0, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$0, Lib_Syntax_PatWild(_$$2.h0, Lib_Types_Implicit)), _$$2.h1), Prelude__$3A$3A_(null, _sc$$0.h1, _sc$$0.h2), _$$2.h3)); } break; } case "True": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_MkClause(_$$2.h0, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$0, _sc$$0.h1), _$$2.h1), _sc$$0.h2, _$$2.h3)); } break; } case "Nil": switch (_$$1.tag) { case "Auto": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_MkClause(_$$2.h0, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$0, Lib_Syntax_PatWild(_$$2.h0, Lib_Types_Auto)), _$$2.h1), Prelude_Nil(null), _$$2.h3)); case "Implicit": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_MkClause(_$$2.h0, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _$$0, Lib_Syntax_PatWild(_$$2.h0, Lib_Types_Implicit)), _$$2.h1), Prelude_Nil(null), _$$2.h3)); default: return Lib_Types_error(null, _$$2.h0, "Clause size doesn't match"); } break; } }; const Lib_Elab_buildTree = ( _$$0, _$$1 ) => { const _sc$$0 = _$$1.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "_::_": { const _sc$$3 = _$$1.h1; switch (_sc$$3.tag) { case "VPi": { const l = Prelude_length$27(null, Lib_Types__env(_$$0)); const nm = Lib_Elab_fresh(_$$0, _sc$$3.h1); const ctx$27 = Lib_Types_extend(_$$0, nm, _sc$$3.h4); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_introClause(nm, _sc$$3.h2, eta)))(Lib_Elab__clauses(_$$1)), ( clauses ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_sc$$3.h5, Lib_Types_VVar(_sc$$1.h0, l, Prelude_Lin(null))), ( vb ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_Lam(_sc$$1.h0, nm, _sc$$3.h2, _sc$$3.h3, eta)), Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, vb))))))); break; } default: return Lib_Types_error(null, _sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Extra pattern variables ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern))(_sc$$1.h2)))("")); } break; } case "Nil": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("buildTree ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)))(_sc$$1.h1)))(" "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_sc$$1.h3)))(""))), ( _ ) => { const sc$$13 = Lib_Elab_findSplit(_sc$$1.h1); switch (sc$$13.tag) { case "Just": { const _sc$$3 = sc$$13.h1; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SPLIT on ")(_sc$$3.h2))(" because "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)(_sc$$3.h3)))(" "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$3.h3))))(""))), ( _1 ) => { const sc$$21 = Lib_Elab_lookupName(_$$0, _sc$$3.h2); switch (sc$$21.tag) { case "Just": { const _sc$$4 = sc$$21.h1; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_unlet(Lib_Types__env(_$$0), _sc$$4.h3), ( eta ) => (Lib_Eval_forceType(Lib_Types__env(_$$0), eta))), ( scty$27 ) => { switch (scty$27.tag) { case "VMeta": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_lookupMeta(scty$27.h1), ( meta ) => { switch (meta.tag) { case "OutOfScope": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(scty$27); case "Solved": return Lib_Eval_forceType(Lib_Types__env(_$$0), scty$27); case "Unsolved": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_solveAutos, ( _2 ) => (Lib_Eval_forceType(Lib_Types__env(_$$0), scty$27))))))); } }), ( scty$271 ) => { const _sc$$5 = _sc$$3.h3; switch (_sc$$5.tag) { case "PatLit": { const tyname = Lib_Elab_litTyName(_sc$$5.h1); switch (scty$271.tag) { case "VRef": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$2F$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, scty$271.h1, tyname), ( _2 ) => (Lib_Types_error(null, _sc$$5.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$4.h3)))(" and got "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(tyname)))("")))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildLitCases(_$$0, _$$1, _sc$$5.h0, _sc$$3.h2, _sc$$4.h3), ( alts ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, alts)))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_error(null, _sc$$5.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$4.h3)))(" and got "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(tyname)))("")), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildLitCases(_$$0, _$$1, _sc$$5.h0, _sc$$3.h2, _sc$$4.h3), ( alts ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, alts)))))); } break; } case "PatCon": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("EXP ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$4.h3)))(" -> "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(scty$271)))(""))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_getConstructors(_$$0, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$3.h3), scty$271), ( cons ) => { const matched = Lib_Elab_matchedConstructors(_sc$$3.h2, Lib_Elab__clauses(_$$1)); const sc$$39 = Prelude_partition(null, ( eta ) => (Prelude__$2218_(null, null, null, ( eta ) => (Prelude_flip(null, null, null, ( eta ) => (( eta1 ) => (Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, eta, eta1))), matched, eta)), ( eta ) => (Prelude_fst(null, null, eta)), eta)), cons); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_filterM(null, ( eta ) => (Lib_Elab_checkCase(_$$0, _$$1, _sc$$3.h2, scty$271, eta)), sc$$39.h3), ( miss$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("CONS ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(cons))))(" matched "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(matched)))(" miss "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm))))(sc$$39.h3)))(" miss' "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm))))(miss$27)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_buildCase(_$$0, _$$1, _sc$$3.h2, scty$271, eta)))(sc$$39.h2), ( alts ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _4 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("GOTALTS ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt)))(alts)))(""))), ( _4 ) => { const alts$27 = Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), alts); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, alts$27))(0), ( _5 ) => (Lib_Types_error(null, _sc$$5.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("no alts for ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(scty$271)))("")))), ( _5 ) => { switch (miss$27.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), alts))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildDefault(_$$0, _$$1, _sc$$5.h0, _sc$$3.h2, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(miss$27)), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, Prelude_snoc(null, alts$27, $$sc))))); } }); }))))))); }))); default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$3.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal error - tried to split on ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)(_sc$$3.h3)))("")); } }); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(scty$27), ( scty$271 ) => { const _sc$$5 = _sc$$3.h3; switch (_sc$$5.tag) { case "PatLit": { const tyname = Lib_Elab_litTyName(_sc$$5.h1); switch (scty$271.tag) { case "VRef": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$2F$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, scty$271.h1, tyname), ( _2 ) => (Lib_Types_error(null, _sc$$5.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$4.h3)))(" and got "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(tyname)))("")))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildLitCases(_$$0, _$$1, _sc$$5.h0, _sc$$3.h2, _sc$$4.h3), ( alts ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, alts)))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_error(null, _sc$$5.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$4.h3)))(" and got "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(tyname)))("")), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildLitCases(_$$0, _$$1, _sc$$5.h0, _sc$$3.h2, _sc$$4.h3), ( alts ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, alts)))))); } break; } case "PatCon": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("EXP ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$4.h3)))(" -> "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(scty$271)))(""))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_getConstructors(_$$0, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$3.h3), scty$271), ( cons ) => { const matched = Lib_Elab_matchedConstructors(_sc$$3.h2, Lib_Elab__clauses(_$$1)); const sc$$39 = Prelude_partition(null, ( eta ) => (Prelude__$2218_(null, null, null, ( eta ) => (Prelude_flip(null, null, null, ( eta ) => (( eta1 ) => (Prelude_elem(null, Lib_Common_Prelude_Eq$20Lib_Common_QName, eta, eta1))), matched, eta)), ( eta ) => (Prelude_fst(null, null, eta)), eta)), cons); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_filterM(null, ( eta ) => (Lib_Elab_checkCase(_$$0, _$$1, _sc$$3.h2, scty$271, eta)), sc$$39.h3), ( miss$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("CONS ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(cons))))(" matched "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Common_Prelude_Show$20Lib_Common_QName))(matched)))(" miss "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm))))(sc$$39.h3)))(" miss' "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Lib_Common_Prelude_Show$20Lib_Common_QName, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_Int, Lib_Types_Prelude_Show$20Lib_Types_Tm))))(miss$27)))(""))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Elab_buildCase(_$$0, _$$1, _sc$$3.h2, scty$271, eta)))(sc$$39.h2), ( alts ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _4 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("GOTALTS ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_CaseAlt)))(alts)))(""))), ( _4 ) => { const alts$27 = Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), alts); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Prelude_length$27(null, alts$27))(0), ( _5 ) => (Lib_Types_error(null, _sc$$5.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("no alts for ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(scty$271)))("")))), ( _5 ) => { switch (miss$27.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, Prelude_mapMaybe(null, null, ( eta ) => (Prelude_id(null, eta)), alts))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildDefault(_$$0, _$$1, _sc$$5.h0, _sc$$3.h2, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(miss$27)), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Case(_sc$$5.h0, _sc$$4.h2, Prelude_snoc(null, alts$27, $$sc))))); } }); }))))))); }))); default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Pattern)(_sc$$3.h3), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal error - tried to split on ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)(_sc$$3.h3)))("")); } }); } }); break; } default: return Lib_Types_error(null, _sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Internal Error: can't find ")(_sc$$3.h2))(" in environment")); } }); break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("checkDone ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Prelude_Prelude_Show$20Prim_String, Lib_Syntax_Prelude_Show$20Lib_Syntax_Pattern)))(_sc$$1.h1)))(""))), ( _1 ) => (Lib_Elab_checkDone(_$$0, _sc$$1.h1, _sc$$1.h3, _$$1.h1))); } }); } break; } case "Nil": return Lib_Types_error(null, Lib_Common_emptyFC, "no clauses"); } }; const Lib_Types_withPos = ( _$$0, _$$1 ) => (Lib_Types_MkCtx(_$$0.h0, _$$0.h1, _$$0.h2, _$$0.h3, _$$1)); const Lib_Syntax_PatCon = ( h0, h1, h2, h3, h4 ) => ({ tag: "PatCon", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Lib_Syntax_PatLit = ( h0, h1 ) => ({ tag: "PatLit", h0: h0, h1: h1 }); -const Lib_Elab_REC_splitArgs = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.splitArgs": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "RApp": return { tag: "Lib.Elab.splitArgs", h0: _sc$$0.h1, h1: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3), arg.h1) }; default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h0, arg.h1) }; } break; } } }; +const Lib_Elab_REC_splitArgs = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "RApp": return { tag: "Lib.Elab.splitArgs", h0: _sc$$0.h1, h1: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$0.h2, _sc$$0.h3), arg.h1) }; default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h0, arg.h1) }; } }; const Lib_Elab_splitArgs = ( _$$0, _$$1 ) => (bouncer(Lib_Elab_REC_splitArgs, { tag: "Lib.Elab.splitArgs", h0: _$$0, h1: _$$1 })); const Lib_Elab_mkPat = ( _$$0 ) => { const _sc$$0 = _$$0.h2; switch (_sc$$0.tag) { case "RAs": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_mkPat(Prelude__$2C_(null, null, _sc$$0.h2, _$$0.h3)), ( pat ) => { switch (pat.tag) { case "PatCon": { const _sc$$1 = pat.h4; switch (_sc$$1.tag) { case "Nothing": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_PatCon(pat.h0, pat.h1, pat.h2, pat.h3, Prelude_Just(null, _sc$$0.h1))); default: return Lib_Types_error(null, pat.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Double as pattern ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_sc$$0.h2)))("")); } break; } default: return Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Can't put as on non-constructor ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_sc$$0.h2)))("")); } }); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$6 = Lib_Elab_splitArgs(_$$0.h2, Prelude_Nil(null)); const _sc$$1 = sc$$6.h2; switch (_sc$$1.tag) { case "RImplicit": { const _sc$$2 = sc$$6.h3; switch (_sc$$2.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_PatWild(_sc$$1.h0, _$$0.h3)); default: return Lib_Types_error(null, _sc$$1.h0, "implicit pat can't be applied to arguments"); } break; } case "RLit": { const _sc$$2 = sc$$6.h3; switch (_sc$$2.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_PatLit(_sc$$1.h0, _sc$$1.h1)); default: return Lib_Types_error(null, _sc$$1.h0, "lit cannot be applied to arguments"); } break; } case "RVar": { const sc$$13 = Lib_TopContext_lookupRaw(_sc$$1.h1, top); switch (sc$$13.tag) { case "Just": { const _sc$$2 = sc$$13.h1; const _sc$$3 = _sc$$2.h3; switch (_sc$$3.tag) { case "DCon": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(Lib_Elab_mkPat)(sc$$6.h3), ( bpat ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_PatCon(_sc$$1.h0, _$$0.h3, _sc$$2.h1, bpat, Prelude_Nothing(null))))); default: { const _sc$$4 = sc$$6.h3; switch (_sc$$4.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_PatVar(_sc$$1.h0, _$$0.h3, _sc$$1.h1)); default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_$$0.h2), "patvar applied to args"); } break; } } break; } default: { const _sc$$2 = sc$$6.h3; switch (_sc$$2.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_PatVar(_sc$$1.h0, _$$0.h3, _sc$$1.h1)); default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_$$0.h2), "patvar applied to args"); } break; } } break; } default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$6.h2), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected pat var or constructor, got ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(sc$$6.h2)))("")); } }); } }; const Lib_Types_User = { tag: "User" }; @@ -850,7 +850,7 @@ const Lib_Syntax_MkAlt = ( h0, h1 ) => ({ tag: "MkAlt", h0: h0, h1: h1 }); const Lib_Syntax_RCase = ( h0, h1, h2 ) => ({ tag: "RCase", h0: h0, h1: h1, h2: h2 }); const Lib_Elab_undo = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "_::_": { const _sc$$0 = _$$1.h1; switch (_sc$$0.tag) { case "DoArrow": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "RVar": { const _sc$$2 = _sc$$0.h3; switch (_sc$$2.tag) { case "Nil": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$13 = Lib_TopContext_lookupRaw(_sc$$1.h1, top); switch (sc$$13.tag) { case "Nothing": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_undo(_sc$$0.h0, _$$1.h2), ( xs$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, "_>>=_"), _sc$$0.h2, Lib_Types_Explicit), Lib_Syntax_RLam(_sc$$0.h0, Lib_Types_BI(_sc$$1.h0, _sc$$1.h1, Lib_Types_Explicit, Lib_Types_Many), xs$27), Lib_Types_Explicit)))); case "Just": { const nm = "$sc"; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_undo(_sc$$0.h0, _$$1.h2), ( xs$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RCase(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, nm), Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(_sc$$0.h1, xs$27), Prelude_Nil(null)))), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, "_>>=_"), _sc$$0.h2, Lib_Types_Explicit), Lib_Syntax_RLam(_sc$$0.h0, Lib_Types_BI(_sc$$0.h0, nm, Lib_Types_Explicit, Lib_Types_Many), rest), Lib_Types_Explicit)))))); break; } } }); default: { const nm = "$sc"; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_undo(_sc$$0.h0, _$$1.h2), ( xs$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RCase(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, nm), Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(_sc$$0.h1, xs$27), _sc$$0.h3))), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, "_>>=_"), _sc$$0.h2, Lib_Types_Explicit), Lib_Syntax_RLam(_sc$$0.h0, Lib_Types_BI(_sc$$0.h0, nm, Lib_Types_Explicit, Lib_Types_Many), rest), Lib_Types_Explicit)))))); break; } } break; } default: { const nm = "$sc"; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_undo(_sc$$0.h0, _$$1.h2), ( xs$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RCase(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, nm), Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(_sc$$0.h1, xs$27), _sc$$0.h3))), ( rest ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, "_>>=_"), _sc$$0.h2, Lib_Types_Explicit), Lib_Syntax_RLam(_sc$$0.h0, Lib_Types_BI(_sc$$0.h0, nm, Lib_Types_Explicit, Lib_Types_Many), rest), Lib_Types_Explicit)))))); break; } } break; } case "DoLet": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Syntax_RLet(_sc$$0.h0, _sc$$0.h1, Lib_Syntax_RImplicit(_sc$$0.h0), _sc$$0.h2, eta)), Lib_Elab_undo(_sc$$0.h0, _$$1.h2)); case "DoExpr": { const _sc$$1 = _$$1.h2; switch (_sc$$1.tag) { case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_sc$$0.h1); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_undo(_sc$$0.h0, _$$1.h2), ( xs$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RApp(_sc$$0.h0, Lib_Syntax_RVar(_sc$$0.h0, "_>>=_"), _sc$$0.h1, Lib_Types_Explicit), Lib_Syntax_RLam(_sc$$0.h0, Lib_Types_BI(_sc$$0.h0, "_", Lib_Types_Explicit, Lib_Types_Many), xs$27), Lib_Types_Explicit)))); } break; } } break; } case "Nil": return Lib_Types_error(null, _$$0, "do block must end in expression"); } }; const Lib_Syntax_Def = ( h0, h1, h2 ) => ({ tag: "Def", h0: h0, h1: h1, h2: h2 }); -const Lib_Elab_REC_collectDecl = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.collectDecl": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Def": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2.tag) { case "_::_": { const _sc$$3 = _sc$$2.h1; switch (_sc$$3.tag) { case "Def": { const sc$$13 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h1)(_sc$$3.h1); switch (sc$$13.tag) { case "False": return { tag: "return", h0: Prelude__$3A$3A_(null, Lib_Syntax_Def(_sc$$1.h0, _sc$$1.h1, _sc$$1.h2), Lib_Elab_collectDecl(_sc$$0.h2)) }; case "True": return { tag: "Lib.Elab.collectDecl", h0: Prelude__$3A$3A_(null, Lib_Syntax_Def(_sc$$1.h0, _sc$$1.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$1.h2)(_sc$$3.h2)), _sc$$2.h2) }; } break; } default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Lib_Elab_collectDecl(_sc$$0.h2)) }; } break; } default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Lib_Elab_collectDecl(_sc$$0.h2)) }; } break; } default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Lib_Elab_collectDecl(_sc$$0.h2)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Lib_Elab_REC_collectDecl = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "Def": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2.tag) { case "_::_": { const _sc$$3 = _sc$$2.h1; switch (_sc$$3.tag) { case "Def": { const sc$$13 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h1)(_sc$$3.h1); switch (sc$$13.tag) { case "False": return { tag: "return", h0: Prelude__$3A$3A_(null, Lib_Syntax_Def(_sc$$1.h0, _sc$$1.h1, _sc$$1.h2), Lib_Elab_collectDecl(_sc$$0.h2)) }; case "True": return { tag: "Lib.Elab.collectDecl", h0: Prelude__$3A$3A_(null, Lib_Syntax_Def(_sc$$1.h0, _sc$$1.h1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(_sc$$1.h2)(_sc$$3.h2)), _sc$$2.h2) }; } break; } default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Lib_Elab_collectDecl(_sc$$0.h2)) }; } break; } default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Lib_Elab_collectDecl(_sc$$0.h2)) }; } break; } default: return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Lib_Elab_collectDecl(_sc$$0.h2)) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Lib_Elab_collectDecl = ( _$$0 ) => (bouncer(Lib_Elab_REC_collectDecl, { tag: "Lib.Elab.collectDecl", h0: _$$0 })); const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC = ( _$$0 ) => { switch (_$$0.tag) { case "Record": return _$$0.h0; case "Instance": return _$$0.h0; case "Class": return _$$0.h0; case "PMixFix": return _$$0.h0; case "PFunc": return _$$0.h0; case "PType": return _$$0.h0; case "ShortData": return _$$0.h0; case "Data": return _$$0.h0; case "DCheck": return _$$0.h0; case "Def": return _$$0.h0; case "TypeSig": return _$$0.h0; } }; const Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl = Lib_Common_MkHasFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl$2CgetFC); @@ -859,15 +859,15 @@ const Prelude_unless = ( f$$0, _$$1, _$$2, _$$3 ) => (Prelude_when(null, _$$1, P const Lib_Elab_checkWhere = ( _$$0, _$$1, _$$2, _$$3 ) => { switch (_$$1.tag) { case "_::_": { const _sc$$0 = _$$1.h1; switch (_sc$$0.tag) { case "TypeSig": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Nil": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(_$$0, _sc$$0.h2, Lib_Types_VU(_sc$$0.h0)), ( funTy ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("where clause ")(_sc$$1.h1))(" : "))(Lib_Elab_rpprint(Lib_Types_names(_$$0), funTy)))(""))), ( _ ) => { const _sc$$3 = _$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4.tag) { case "Def": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_unless(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h1)(_sc$$4.h1), ( _1 ) => (Lib_Types_error(null, _sc$$4.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected def for ")(_sc$$1.h1))("")))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(Lib_Elab_makeClause)(_sc$$4.h2), ( clauses$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_$$0), Lib_Types_CBN, funTy), ( vty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(_sc$$1.h1))(" vty is "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(vty)))(""))), ( _2 ) => { const ctx$27 = Lib_Types_extend(_$$0, _sc$$1.h1, vty); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(Lib_Types_withPos(ctx$27, _sc$$4.h0), Lib_Elab_MkProb(clauses$27, vty)), ( tm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(ctx$27), Lib_Types_CBN, tm), ( vtm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_checkWhere(ctx$27, _sc$$3.h2, _$$2, _$$3), ( ty$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_LetRec(_sc$$0.h0, _sc$$1.h1, funTy, tm, ty$27)))))))); }))))))))); default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl)(_sc$$3.h1), "expected function definition"); } break; } default: return Lib_Types_error(null, _sc$$0.h0, "expected function definition after this signature"); } }))); default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl)(_$$1.h1), "expected type signature"); } break; } default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl)(_$$1.h1), "expected type signature"); } break; } default: return Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Decl)(_$$1.h1), "expected type signature"); } break; } default: return Lib_Elab_check(_$$0, _$$2, _$$3); } }; const Lib_Elab_check = ( _$$0, _$$1, _$$2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_forceType(Lib_Types__env(_$$0), _$$2), ( ty$27 ) => { const sc$$4 = Prelude__$2C_(null, null, _$$1, ty$27); const _sc$$0 = sc$$4.h2; switch (_sc$$0.tag) { case "RWhere": return Lib_Elab_checkWhere(_$$0, Lib_Elab_collectDecl(_sc$$0.h1), _sc$$0.h2, sc$$4.h3); case "RIf": { const tm$27 = Lib_Syntax_RCase(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(Lib_Syntax_RVar(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_sc$$0.h2), "True"), _sc$$0.h2), Prelude__$3A$3A_(null, Lib_Syntax_MkAlt(Lib_Syntax_RVar(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_sc$$0.h3), "False"), _sc$$0.h3), Prelude_Nil(null)))); return Lib_Elab_check(_$$0, tm$27, sc$$4.h3); break; } case "RDo": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_undo(_sc$$0.h0, _sc$$0.h1), ( stmts$27 ) => (Lib_Elab_check(_$$0, stmts$27, sc$$4.h3))); case "RHole": return Lib_Elab_freshMeta(_$$0, _sc$$0.h0, sc$$4.h3, Lib_Types_User); case "RImplicit": return Lib_Elab_freshMeta(_$$0, _sc$$0.h0, sc$$4.h3, Lib_Types_Normal); case "RCase": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_infer(_$$0, _sc$$0.h1), ( $$sc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_forceMeta($$sc.h3), ( scty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SCTM ")(Lib_Elab_rpprint(Lib_Types_names(_$$0), $$sc.h2)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("SCTY ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(scty)))(""))), ( _1 ) => { const scnm = Lib_Elab_fresh(_$$0, "sc"); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _sc$$0.h2, ( $$case ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_mkPat(Prelude__$2C_(null, null, $$case.h0, Lib_Types_Explicit)), ( pat$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_MkClause(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)($$case.h0), Prelude__$3A$3A_(null, Prelude__$2C_(null, null, scnm, pat$27), Prelude_Nil(null)), Prelude_Nil(null), $$case.h1)))))), ( clauses ) => { const ctx$27 = Lib_Types_withPos(Lib_Types_extend(_$$0, scnm, scty), Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_$$1)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_buildTree(ctx$27, Lib_Elab_MkProb(clauses, sc$$4.h3)), ( tree ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Let(_sc$$0.h0, scnm, $$sc.h2, tree)))); }))); }))))))); case "RLet": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(_$$0, _sc$$0.h2, Lib_Types_VU(Lib_Common_emptyFC)), ( ty$271 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_$$0), Lib_Types_CBN, ty$271), ( vty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(_$$0, _sc$$0.h3, vty), ( v$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_$$0), Lib_Types_CBN, v$27), ( vv ) => { const ctx$27 = Lib_Types_define(_$$0, _sc$$0.h1, vv, vty); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(ctx$27, _sc$$0.h4, sc$$4.h3), ( sc$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Let(_sc$$0.h0, _sc$$0.h1, v$27, sc$27)))); }))))))); case "RLam": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = sc$$4.h3; switch (_sc$$2.tag) { case "VPi": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("icits ")(_sc$$1.h1))(" "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Icit)(_sc$$1.h2)))(" "))(_sc$$2.h1))(" "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Icit)(_sc$$2.h2)))(""))), ( _ ) => { const sc$$23 = Prelude__$3D$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit)(_sc$$1.h2)(_sc$$2.h2); switch (sc$$23.tag) { case "False": { const sc$$24 = Prelude__$2F$3D_(null, Lib_Types_Prelude_Eq$20Lib_Types_Icit, _sc$$2.h2, Lib_Types_Explicit); switch (sc$$24.tag) { case "False": return Lib_Types_error(null, _sc$$0.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Icity issue checking ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(sc$$4.h2)))(" at "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$4.h3)))("")); case "True": { const $var = Lib_Types_VVar(_sc$$0.h0, Prelude_length$27(null, Lib_Types__env(_$$0)), Prelude_Lin(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_sc$$2.h5, $var), ( ty$271 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(Lib_Types_extend(_$$0, _sc$$2.h1, _sc$$2.h4), sc$$4.h2, ty$271), ( sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lam(_sc$$0.h0, _sc$$2.h1, _sc$$1.h2, _sc$$2.h3, sc)))))); break; } } break; } case "True": { const $var = Lib_Types_VVar(_sc$$0.h0, Prelude_length$27(null, Lib_Types__env(_$$0)), Prelude_Lin(null)); const ctx$27 = Lib_Types_extend(_$$0, _sc$$1.h1, _sc$$2.h4); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_sc$$2.h5, $var), ( bapp ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(ctx$27, _sc$$0.h2, bapp), ( tm$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lam(_sc$$0.h0, _sc$$1.h1, _sc$$1.h2, _sc$$2.h3, tm$27)))))); break; } } }); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_prvalCtx(_$$0, sc$$4.h3), ( pty ) => (Lib_Types_error(null, _sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected pi type, got ")(pty))("")))); } break; } default: { const _sc$$1 = sc$$4.h3; switch (_sc$$1.tag) { case "VPi": { const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Auto": { const names = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_$$0)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("XXX edge case add auto lambda {")(_sc$$1.h1))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h4)))("} to "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(sc$$4.h2)))(" "))), ( _ ) => { const $var = Lib_Types_VVar(_sc$$1.h0, Prelude_length$27(null, Lib_Types__env(_$$0)), Prelude_Lin(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_sc$$1.h5, $var), ( ty$271 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debugM(Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_prvalCtx(Lib_Types_extend(_$$0, _sc$$1.h1, _sc$$1.h4), ty$271), ( pty$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("XXX ty' is ")(pty$27))(""))))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(Lib_Types_extend(_$$0, _sc$$1.h1, _sc$$1.h4), sc$$4.h2, ty$271), ( sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lam(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$4.h2), _sc$$1.h1, Lib_Types_Auto, _sc$$1.h3, sc)))))))); }); break; } case "Implicit": { const names = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_$$0)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("XXX edge case add implicit lambda {")(_sc$$1.h1))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(_sc$$1.h4)))("} to "))(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(sc$$4.h2)))(" "))), ( _ ) => { const $var = Lib_Types_VVar(_sc$$1.h0, Prelude_length$27(null, Lib_Types__env(_$$0)), Prelude_Lin(null)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval__$$$$_(_sc$$1.h5, $var), ( ty$271 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debugM(Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_prvalCtx(Lib_Types_extend(_$$0, _sc$$1.h1, _sc$$1.h4), ty$271), ( pty$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("XXX ty' is ")(pty$27))(""))))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(Lib_Types_extend(_$$0, _sc$$1.h1, _sc$$1.h4), sc$$4.h2, ty$271), ( sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lam(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$4.h2), _sc$$1.h1, Lib_Types_Implicit, _sc$$1.h3, sc)))))))); }); break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_infer(_$$0, sc$$4.h2), ( $$sc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => { const names = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_$$0)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("INFER ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(sc$$4.h2)))(" to ("))(Lib_Elab_rpprint(names, $$sc1.h2)))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)($$sc1.h3)))(") expect "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$4.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_unifyCatch(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$4.h2), _$$0, $$sc1.h3, sc$$4.h3), ( _1 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc1.h2))))); }))); } break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_infer(_$$0, sc$$4.h2), ( $$sc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_insert(_$$0, $$sc.h2, $$sc.h3), ( $$sc1 ) => { const names = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_$$0)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("INFER ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(sc$$4.h2)))(" to ("))(Lib_Elab_rpprint(names, $$sc1.h2)))(" : "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)($$sc1.h3)))(") expect "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(sc$$4.h3)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_unifyCatch(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$4.h2), _$$0, $$sc1.h3, sc$$4.h3), ( _1 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc1.h2))))); }))); } break; } } })); const Lib_Util_MkBinder = ( h0, h1, h2, h3, h4 ) => ({ tag: "MkBinder", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); -const Lib_Util_REC_splitTele_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Util.splitTele.go": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "Pi": return { tag: "Lib.Util.splitTele.go", h0: arg.h0, h1: Prelude__$3A$3A_(null, Lib_Util_MkBinder(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, _sc$$0.h4), arg.h1), h2: _sc$$0.h5 }; default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h2, Prelude_reverse(null)(arg.h1)) }; } break; } } }; +const Lib_Util_REC_splitTele_go = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "Pi": return { tag: "Lib.Util.splitTele.go", h0: arg.h0, h1: Prelude__$3A$3A_(null, Lib_Util_MkBinder(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, _sc$$0.h4), arg.h1), h2: _sc$$0.h5 }; default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h2, Prelude_reverse(null)(arg.h1)) }; } }; const Lib_Util_splitTele_go = ( _, _$$1, _$$2 ) => (bouncer(Lib_Util_REC_splitTele_go, { tag: "Lib.Util.splitTele.go", h0: _, h1: _$$1, h2: _$$2 })); const Lib_Util_splitTele = ( eta ) => (Lib_Util_splitTele_go(null, Prelude_Nil(null), eta)); -const Lib_Elab_REC_findMatches = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Elab.findMatches": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$10 = Lib_Elab_isCandidate(arg.h1, _sc$$1.h2); switch (sc$$10.tag) { case "False": return { tag: "Lib.Elab.findMatches", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc ) => { const fc = Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(arg.h1); return Lib_Types_catchError(null, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TRY ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" : "))(Lib_Elab_rpprint(Prelude_Nil(null), _sc$$1.h2)))(" for "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h1)))(""))), ( _ ) => { const _sc$$2 = _sc$$1.h1; const sc$$18 = Lib_Util_splitTele(_sc$$1.h2); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_modifyIORef(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), ( mc1 ) => (Lib_Types_MC(Lib_Types__metas(mc1), Lib_Types__next(mc1), Lib_Types_CheckFirst))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(arg.h0, Lib_Syntax_RVar(fc, _sc$$2.h1), arg.h1), ( tm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Found ")(Lib_Elab_rpprint(Prelude_Nil(null), tm)))(" for "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h1)))(""))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), mc), ( _3 ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude__$3A$3A_(null, _sc$$2.h1, eta)), Lib_Elab_findMatches(arg.h0, arg.h1, _sc$$0.h2)))))))))); }), ( err ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("No match ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h1)))(" "))(Lib_Elab_rpprint(Prelude_Nil(null), _sc$$1.h2)))(" "))(Lib_Common_showError("", err)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), mc), ( _1 ) => (Lib_Elab_findMatches(arg.h0, arg.h1, _sc$$0.h2))))))); }))) }; } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)) }; } break; } } }; +const Lib_Elab_REC_findMatches = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const sc$$10 = Lib_Elab_isCandidate(arg.h1, _sc$$1.h2); switch (sc$$10.tag) { case "False": return { tag: "Lib.Elab.findMatches", h0: arg.h0, h1: arg.h1, h2: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top)), ( mc ) => { const fc = Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Val)(arg.h1); return Lib_Types_catchError(null, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TRY ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" : "))(Lib_Elab_rpprint(Prelude_Nil(null), _sc$$1.h2)))(" for "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h1)))(""))), ( _ ) => { const _sc$$2 = _sc$$1.h1; const sc$$18 = Lib_Util_splitTele(_sc$$1.h2); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_modifyIORef(null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), ( mc1 ) => (Lib_Types_MC(Lib_Types__metas(mc1), Lib_Types__next(mc1), Lib_Types_CheckFirst))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_check(arg.h0, Lib_Syntax_RVar(fc, _sc$$2.h1), arg.h1), ( tm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _2 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Found ")(Lib_Elab_rpprint(Prelude_Nil(null), tm)))(" for "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h1)))(""))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), mc), ( _3 ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude__$3A$3A_(null, _sc$$2.h1, eta)), Lib_Elab_findMatches(arg.h0, arg.h1, _sc$$0.h2)))))))))); }), ( err ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("No match ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(arg.h1)))(" "))(Lib_Elab_rpprint(Prelude_Nil(null), _sc$$1.h2)))(" "))(Lib_Common_showError("", err)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_writeIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top), mc), ( _1 ) => (Lib_Elab_findMatches(arg.h0, arg.h1, _sc$$0.h2))))))); }))) }; } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)) }; } }; const Lib_Elab_findMatches = ( _$$0, _$$1, _$$2 ) => (bouncer(Lib_Elab_REC_findMatches, { tag: "Lib.Elab.findMatches", h0: _$$0, h1: _$$1, h2: _$$2 })); const Lib_ProcessDecl_dumpEnv_isVar = ( _, _1, _$$2, _$$3 ) => { switch (_$$3.tag) { case "VVar": { const _sc$$0 = _$$3.h2; switch (_sc$$0.tag) { case "Lin": return Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$2)(_$$3.h1); default: return Prelude_False; } break; } default: return Prelude_False; } }; const Lib_ProcessDecl_dumpEnv_isVar_go = ( _, _1, _2, _$$3, _$$4, _$$5, _$$6 ) => { switch (_$$5.tag) { case "_::_": { const _sc$$0 = _$$5.h1; const _sc$$1 = _sc$$0.h3; const sc$$18 = Lib_ProcessDecl_dumpEnv_isVar(_, _1, _$$4, _sc$$0.h2); switch (sc$$18.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_), _sc$$0.h2), ( v$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_), _sc$$1.h3), ( ty$27 ) => (Lib_ProcessDecl_dumpEnv_isVar_go(_, _1, _2, _$$3, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$4), _$$5.h2, Prelude__$3A$3A_(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(_sc$$1.h2))(" = "))(Lib_Prettier_render(90, Lib_Types_pprint(_$$3, v$27))))(" : "))(Lib_Prettier_render(90, Lib_Types_pprint(_$$3, ty$27))))(""), _$$6)))))); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_), _sc$$1.h3), ( ty$27 ) => (Lib_ProcessDecl_dumpEnv_isVar_go(_, _1, _2, _$$3, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$4), _$$5.h2, Prelude__$3A$3A_(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(_sc$$1.h2))(" : "))(Lib_Prettier_render(90, Lib_Types_pprint(_$$3, ty$27))))(""), _$$6)))); } break; } case "Nil": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(_$$6); } }; const Lib_ProcessDecl_dumpEnv = ( _$$0 ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Prelude__$2218_(null, null, null, Prelude_unlines, Prelude_reverse(null), eta)), Lib_ProcessDecl_dumpEnv_isVar_go(_$$0, null, null, Lib_Types_names(_$$0), 0, Prelude_reverse(null)(Prelude_zip(null, null, Lib_Types__env(_$$0), Lib_Types__types(_$$0))), Prelude_Nil(null)))); -const Lib_ProcessDecl_REC_logMetas = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.ProcessDecl.logMetas": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "OutOfScope": return { tag: "Lib.ProcessDecl.logMetas", h0: _sc$$0.h2 }; case "Solved": return { tag: "Lib.ProcessDecl.logMetas", h0: _sc$$0.h2 }; case "Unsolved": { const _sc$$2 = _sc$$1.h4; switch (_sc$$2.tag) { case "User": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), _sc$$1.h3), ( ty$27 ) => { const names = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_sc$$1.h2)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_dumpEnv(_sc$$1.h2), ( env ) => { const msg = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(env))("\n -----------\n "))(Lib_Prettier_render(90, Lib_Types_pprint(names, ty$27))))(""); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(_sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("User Hole\n")(msg))("")), ( _ ) => (Lib_ProcessDecl_logMetas(_sc$$0.h2))); }); }) }; default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_forceMeta(_sc$$1.h3), ( ty$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), ty$27), ( tm ) => { const msg = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Unsolved meta ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_MetaKind)(_sc$$1.h4)))(" type "))(Lib_Prettier_render(90, Lib_Types_pprint(Lib_Types_names(_sc$$1.h2), tm))))(" "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Prelude_length$27(null, _sc$$1.h5))))(" constraints"); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _sc$$1.h5, ( $$case ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" * (m")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" ("))(Data_String_unwords(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Prelude__$3C$3E$3E_(null, $$case.h2, Prelude_Nil(null))))))(") =?= "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)($$case.h3)))("")))), ( msgs ) => { const _sc$$3 = _sc$$1.h4; switch (_sc$$3.tag) { case "AutoSolve": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), _sc$$1.h3), ( x ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_sc$$1.h2), Lib_Types_CBN, x), ( ty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("AUTO ---> ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_findMatches(_sc$$1.h2, ty, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_snd(null, null, eta)))(Data_SortedMap_toList(null, null, Lib_Types__defs(top)))), ( matches ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Prelude_length$27(null, matches))))(" Solutions: "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(matches)))(""), Prelude_Nil(null))))))))))))), ( sols ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(_sc$$1.h0, Prelude_unlines(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(Prelude__$3A$3A_(null, msg, Prelude_Nil(null)))(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(msgs)(sols)))), ( _ ) => (Lib_ProcessDecl_logMetas(_sc$$0.h2))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)), ( sols ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(_sc$$1.h0, Prelude_unlines(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(Prelude__$3A$3A_(null, msg, Prelude_Nil(null)))(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(msgs)(sols)))), ( _ ) => (Lib_ProcessDecl_logMetas(_sc$$0.h2))))); } }); }))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit) }; } break; } } }; +const Lib_ProcessDecl_REC_logMetas = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "OutOfScope": return { tag: "Lib.ProcessDecl.logMetas", h0: _sc$$0.h2 }; case "Solved": return { tag: "Lib.ProcessDecl.logMetas", h0: _sc$$0.h2 }; case "Unsolved": { const _sc$$2 = _sc$$1.h4; switch (_sc$$2.tag) { case "User": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), _sc$$1.h3), ( ty$27 ) => { const names = Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_fst(null, null, eta)))(Lib_Types__types(_sc$$1.h2)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_dumpEnv(_sc$$1.h2), ( env ) => { const msg = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(env))("\n -----------\n "))(Lib_Prettier_render(90, Lib_Types_pprint(names, ty$27))))(""); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(_sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("User Hole\n")(msg))("")), ( _ ) => (Lib_ProcessDecl_logMetas(_sc$$0.h2))); }); }) }; default: return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_forceMeta(_sc$$1.h3), ( ty$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), ty$27), ( tm ) => { const msg = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Unsolved meta ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_MetaKind)(_sc$$1.h4)))(" type "))(Lib_Prettier_render(90, Lib_Types_pprint(Lib_Types_names(_sc$$1.h2), tm))))(" "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Prelude_length$27(null, _sc$$1.h5))))(" constraints"); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _sc$$1.h5, ( $$case ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" * (m")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_sc$$1.h1)))(" ("))(Data_String_unwords(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(Prelude__$3C$3E$3E_(null, $$case.h2, Prelude_Nil(null))))))(") =?= "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)($$case.h3)))("")))), ( msgs ) => { const _sc$$3 = _sc$$1.h4; switch (_sc$$3.tag) { case "AutoSolve": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_quote(Lib_Types__lvl(_sc$$1.h2), _sc$$1.h3), ( x ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_eval(Lib_Types__env(_sc$$1.h2), Lib_Types_CBN, x), ( ty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("AUTO ---> ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(ty)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Elab_findMatches(_sc$$1.h2, ty, Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(( eta ) => (Prelude_snd(null, null, eta)))(Data_SortedMap_toList(null, null, Lib_Types__defs(top)))), ( matches ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$3A$3A_(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(" ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(Prelude_length$27(null, matches))))(" Solutions: "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(matches)))(""), Prelude_Nil(null))))))))))))), ( sols ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(_sc$$1.h0, Prelude_unlines(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(Prelude__$3A$3A_(null, msg, Prelude_Nil(null)))(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(msgs)(sols)))), ( _ ) => (Lib_ProcessDecl_logMetas(_sc$$0.h2))))); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_Nil(null)), ( sols ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_info(_sc$$1.h0, Prelude_unlines(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(Prelude__$3A$3A_(null, msg, Prelude_Nil(null)))(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20$28Prelude_List$20BND$3A0$29(null))(msgs)(sols)))), ( _ ) => (Lib_ProcessDecl_logMetas(_sc$$0.h2))))); } }); }))) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit) }; } }; const Lib_ProcessDecl_logMetas = ( _$$0 ) => (bouncer(Lib_ProcessDecl_REC_logMetas, { tag: "Lib.ProcessDecl.logMetas", h0: _$$0 })); const Serialize_dumpModFile = (fn,a) => (w) => { let fs = require('fs') @@ -885,12 +885,12 @@ const Lib_TopContext_addError = ( _$$0 ) => (Prelude__$3E$3E$3D_(null, null, nul const Lib_Types_Axiom = { tag: "Axiom" }; const Lib_Types_MkEntry = ( h0, h1, h2, h3 ) => ({ tag: "MkEntry", h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_TopContext_setDef = ( _$$0, _$$1, _$$2, _$$3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const sc$$5 = Data_SortedMap_lookupMap$27(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$0, Lib_Types__defs(top)); switch (sc$$5.tag) { case "Nothing": return Lib_Types_modifyTop(( $$case ) => { const defs = Data_SortedMap_updateMap(null, null, Lib_Common_Prelude_Ord$20Lib_Common_QName, _$$0, Lib_Types_MkEntry(_$$1, _$$0, _$$2, _$$3), Lib_Types__defs(top)); return Lib_Types_MkTop($$case.h0, $$case.h1, $$case.h2, defs, $$case.h4, $$case.h5, $$case.h6, $$case.h7); }); case "Just": { const _sc$$0 = sc$$5.h1; return Lib_Types_error(null, _$$1, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$0)))(" is already defined at "))(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(_sc$$0.h0)))("")); break; } } })); -const Lib_Eval_REC_appSpine = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Eval.appSpine": { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Eval.appSpine", h0: Lib_Types_App(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(arg.h0), arg.h0, _sc$$0.h1), h1: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h0 }; } break; } } }; +const Lib_Eval_REC_appSpine = ( arg ) => { const _sc$$0 = arg.h1; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Eval.appSpine", h0: Lib_Types_App(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(arg.h0), arg.h0, _sc$$0.h1), h1: _sc$$0.h2 }; case "Nil": return { tag: "return", h0: arg.h0 }; } }; const Lib_Eval_appSpine = ( _$$0, _$$1 ) => (bouncer(Lib_Eval_REC_appSpine, { tag: "Lib.Eval.appSpine", h0: _$$0, h1: _$$1 })); const Lib_Eval_tweakFC = ( _$$0, _$$1 ) => { switch (_$$1.tag) { case "Erased": return Lib_Types_Erased(_$$0); case "Lit": return Lib_Types_Lit(_$$0, _$$1.h1); case "LetRec": return Lib_Types_LetRec(_$$0, _$$1.h1, _$$1.h2, _$$1.h3, _$$1.h4); case "Let": return Lib_Types_Let(_$$0, _$$1.h1, _$$1.h2, _$$1.h3); case "Case": return Lib_Types_Case(_$$0, _$$1.h1, _$$1.h2); case "Pi": return Lib_Types_Pi(_$$0, _$$1.h1, _$$1.h2, _$$1.h3, _$$1.h4, _$$1.h5); case "UU": return Lib_Types_UU(_$$0); case "App": return Lib_Types_App(_$$0, _$$1.h1, _$$1.h2); case "Lam": return Lib_Types_Lam(_$$0, _$$1.h1, _$$1.h2, _$$1.h3, _$$1.h4); case "Meta": return Lib_Types_Meta(_$$0, _$$1.h1); case "Ref": return Lib_Types_Ref(_$$0, _$$1.h1); case "Bnd": return Lib_Types_Bnd(_$$0, _$$1.h1); } }; const Lib_Eval_zonkApp = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => { switch (_$$3.tag) { case "App": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h2), ( u$27 ) => (Lib_Eval_zonkApp(_$$0, _$$1, _$$2, _$$3.h1, Prelude__$3A$3A_(null, u$27, _$$4)))); case "Meta": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_lookupMeta(_$$3.h1), ( meta ) => { switch (meta.tag) { case "Solved": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Eval_eval(_$$2, Lib_Types_CBN, eta)))(_$$4), ( sp$27 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _ ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("zonk ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_QName)(_$$3.h1)))(" -> "))(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(meta.h2)))(" spine "))(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Types_Prelude_Show$20Lib_Types_Val))(sp$27)))(""))), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_vappSpine(meta.h2, Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sp$27)), ( foo ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_debug(( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("-> result is ")(Prelude_show(null, Lib_Types_Prelude_Show$20Lib_Types_Val)(foo)))(""))), ( _1 ) => (Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Eval_tweakFC(_$$3.h0, eta)), Lib_Eval_quote(_$$1, foo)))))))))); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Eval_appSpine(_$$3, _$$4)); } }); default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3), ( t$27 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Eval_appSpine(t$27, _$$4)))); } }; const Lib_Eval_zonkBind = ( _$$0, _$$1, _$$2, _$$3 ) => (Lib_Eval_zonk(_$$0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$1), Prelude__$3A$3A_(null, Lib_Types_VVar(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(_$$3), _$$1, Prelude_Lin(null)), _$$2), _$$3)); -const Lib_Eval_REC_zonkAlt_go = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Eval.zonkAlt.go": { const _sc$$0 = arg.h10; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Eval.zonkAlt.go", 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__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h8), h9: Prelude__$3A$3A_(null, Lib_Types_VVar(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(arg.h11), arg.h8, Prelude_Lin(null)), arg.h9), h10: _sc$$0.h2, h11: arg.h11 }; case "Nil": return { tag: "return", h0: Lib_Eval_zonk(arg.h0, arg.h8, arg.h9, arg.h6) }; } break; } } }; +const Lib_Eval_REC_zonkAlt_go = ( arg ) => { const _sc$$0 = arg.h10; switch (_sc$$0.tag) { case "_::_": return { tag: "Lib.Eval.zonkAlt.go", 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__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(arg.h8), h9: Prelude__$3A$3A_(null, Lib_Types_VVar(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_Tm)(arg.h11), arg.h8, Prelude_Lin(null)), arg.h9), h10: _sc$$0.h2, h11: arg.h11 }; case "Nil": return { tag: "return", h0: Lib_Eval_zonk(arg.h0, arg.h8, arg.h9, arg.h6) }; } }; const Lib_Eval_zonkAlt_go = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11 ) => (bouncer(Lib_Eval_REC_zonkAlt_go, { tag: "Lib.Eval.zonkAlt.go", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _$$8, h9: _$$9, h10: _$$10, h11: _$$11 })); const Lib_Eval_zonkAlt = ( _$$0, _$$1, _$$2, _$$3 ) => { switch (_$$3.tag) { case "CaseLit": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_CaseLit(_$$3.h0, eta)), Lib_Eval_zonkBind(_$$0, _$$1, _$$2, _$$3.h1)); case "CaseCons": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_CaseCons(_$$3.h0, _$$3.h1, eta)), Lib_Eval_zonkAlt_go(_$$0, _$$1, _$$2, _$$3, _$$3.h0, _$$3.h1, _$$3.h2, null, _$$1, _$$2, _$$3.h1, _$$3.h2)); case "CaseDefault": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, Lib_Types_CaseDefault, Lib_Eval_zonkBind(_$$0, _$$1, _$$2, _$$3.h0)); } }; const Lib_Eval_zonk = ( _$$0, _$$1, _$$2, _$$3 ) => { switch (_$$3.tag) { case "Erased": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Erased(_$$3.h0)); case "Lit": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Lit(_$$3.h0, _$$3.h1)); case "LetRec": return Prelude__$3C$2A$3E_(null, Lib_Types_Prelude_Applicative$20Lib_Types_M)(null)(null)(Prelude__$3C$2A$3E_(null, Lib_Types_Prelude_Applicative$20Lib_Types_M)(null)(null)(Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( 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, _$$2, _$$3.h3)))(Lib_Eval_zonkBind(_$$0, _$$1, _$$2, _$$3.h4)); case "Let": return Prelude__$3C$2A$3E_(null, Lib_Types_Prelude_Applicative$20Lib_Types_M)(null)(null)(Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (( eta1 ) => (Lib_Types_Let(_$$3.h0, _$$3.h1, eta, eta1))), Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h2)))(Lib_Eval_zonkBind(_$$0, _$$1, _$$2, _$$3.h3)); case "Case": return Prelude__$3C$2A$3E_(null, Lib_Types_Prelude_Applicative$20Lib_Types_M)(null)(null)(Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (( eta1 ) => (Lib_Types_Case(_$$3.h0, eta, eta1))), Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h1)))(Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Lib_Eval_zonkAlt(_$$0, _$$1, _$$2, eta)))(_$$3.h2)); case "Pi": return Prelude__$3C$2A$3E_(null, Lib_Types_Prelude_Applicative$20Lib_Types_M)(null)(null)(Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( 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, _$$2, _$$3.h5)); case "UU": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_UU(_$$3.h0)); case "App": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Eval_zonk(_$$0, _$$1, _$$2, _$$3.h2), ( u$27 ) => (Lib_Eval_zonkApp(_$$0, _$$1, _$$2, _$$3.h1, Prelude__$3A$3A_(null, u$27, Prelude_Nil(null))))); case "Lam": return Prelude__$3C$$$3E_(null, Lib_Types_Prelude_Functor$20Lib_Types_M, null, null, ( eta ) => (Lib_Types_Lam(_$$3.h0, _$$3.h1, _$$3.h2, _$$3.h3, eta)), Lib_Eval_zonk(_$$0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(1)(_$$1), Prelude__$3A$3A_(null, Lib_Types_VVar(_$$3.h0, _$$1, Prelude_Lin(null)), _$$2), _$$3.h4)); case "Meta": return Lib_Eval_zonkApp(_$$0, _$$1, _$$2, _$$3, Prelude_Nil(null)); case "Ref": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Ref(_$$3.h0, _$$3.h1)); case "Bnd": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Types_Bnd(_$$3.h0, _$$3.h1)); } }; @@ -929,10 +929,10 @@ const Lib_Types_Zero = { tag: "Zero" }; const Lib_Syntax_RPi = ( h0, h1, h2, h3 ) => ({ tag: "RPi", h0: h0, h1: h1, h2: h2, h3: h3 }); const Lib_ProcessDecl_processDecl_mkPi_getArgs_mkDecl_mkPi = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _$$14, _$$15 ) => (Lib_Syntax_RPi(_$$14.h2, Lib_Types_BI(_$$14.h2, _$$14.h3, Lib_Types_Implicit, Lib_Types_Zero), Lib_Syntax_RU(_$$14.h2), _$$15)); const Prelude_foldr = ( a$$0, b$$1, _$$2, _$$3, _$$4 ) => { switch (_$$4.tag) { case "_::_": return _$$2(_$$4.h1)(Prelude_foldr(null, null, _$$2, _$$3, _$$4.h2)); case "Nil": return _$$3; } }; -const Lib_ProcessDecl_REC_processDecl_mkPi_getArgs_mkDecl = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.ProcessDecl.processDecl.mkPi.getArgs.mkDecl": { const _sc$$0 = arg.h10; switch (_sc$$0.tag) { case "RApp": return { tag: "Lib.ProcessDecl.processDecl.mkPi.getArgs.mkDecl", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: Prelude__$3A$3A_(null, _sc$$0.h2, arg.h9), h10: _sc$$0.h1 }; case "RVar": { const base = Prelude_foldr(null, null, ( ty ) => (( acc ) => (Lib_Syntax_RPi(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(ty), Lib_Types_BI(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(ty), "_", Lib_Types_Explicit, Lib_Types_Many), ty, acc))), arg.h3, arg.h9); const ty = Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_ProcessDecl_processDecl_mkPi_getArgs_mkDecl_mkPi(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, arg.h9, arg.h10, _sc$$0.h0, _sc$$0.h1, null, eta, eta1))), base, arg.h8); return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_TypeSig(_sc$$0.h0, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude_Nil(null)), ty)) }; break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(arg.h10), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected contructor application, got: ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h10)))("")) }; } break; } } }; +const Lib_ProcessDecl_REC_processDecl_mkPi_getArgs_mkDecl = ( arg ) => { const _sc$$0 = arg.h10; switch (_sc$$0.tag) { case "RApp": return { tag: "Lib.ProcessDecl.processDecl.mkPi.getArgs.mkDecl", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: Prelude__$3A$3A_(null, _sc$$0.h2, arg.h9), h10: _sc$$0.h1 }; case "RVar": { const base = Prelude_foldr(null, null, ( ty ) => (( acc ) => (Lib_Syntax_RPi(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(ty), Lib_Types_BI(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(ty), "_", Lib_Types_Explicit, Lib_Types_Many), ty, acc))), arg.h3, arg.h9); const ty = Prelude_foldr(null, null, ( eta ) => (( eta1 ) => (Lib_ProcessDecl_processDecl_mkPi_getArgs_mkDecl_mkPi(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, arg.h9, arg.h10, _sc$$0.h0, _sc$$0.h1, null, eta, eta1))), base, arg.h8); return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Lib_Syntax_TypeSig(_sc$$0.h0, Prelude__$3A$3A_(null, _sc$$0.h1, Prelude_Nil(null)), ty)) }; break; } default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(arg.h10), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected contructor application, got: ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h10)))("")) }; } }; const Lib_ProcessDecl_processDecl_mkPi_getArgs_mkDecl = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10 ) => (bouncer(Lib_ProcessDecl_REC_processDecl_mkPi_getArgs_mkDecl, { tag: "Lib.ProcessDecl.processDecl.mkPi.getArgs.mkDecl", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _$$8, h9: _$$9, h10: _$$10 })); const Lib_ProcessDecl_processDecl_mkPi = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => (Lib_Syntax_RPi(_$$6.h2, Lib_Types_BI(_$$6.h2, _$$6.h3, Lib_Types_Explicit, Lib_Types_Zero), Lib_Syntax_RU(_$$6.h2), _$$7)); -const Lib_ProcessDecl_REC_processDecl_mkPi_getArgs = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.ProcessDecl.processDecl.mkPi.getArgs": { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "RApp": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "RVar": return { tag: "Lib.ProcessDecl.processDecl.mkPi.getArgs", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: _sc$$0.h1, h8: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h0, _sc$$1.h1), arg.h8) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(arg.h7), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected contructor application, got: ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h7)))("")) }; } break; } case "RVar": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _sc$$0.h1, arg.h8)) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(arg.h7), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected contructor application, got: ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h7)))("")) }; } break; } } }; +const Lib_ProcessDecl_REC_processDecl_mkPi_getArgs = ( arg ) => { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "RApp": { const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "RVar": return { tag: "Lib.ProcessDecl.processDecl.mkPi.getArgs", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: _sc$$0.h1, h8: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h0, _sc$$1.h1), arg.h8) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(arg.h7), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected contructor application, got: ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h7)))("")) }; } break; } case "RVar": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, _sc$$0.h1, arg.h8)) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(arg.h7), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Expected contructor application, got: ")(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(arg.h7)))("")) }; } }; const Lib_ProcessDecl_processDecl_mkPi_getArgs = ( _, _1, _2, _3, _4, _5, _6, _$$7, _$$8 ) => (bouncer(Lib_ProcessDecl_REC_processDecl_mkPi_getArgs, { tag: "Lib.ProcessDecl.processDecl.mkPi.getArgs", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _$$7, h8: _$$8 })); const Lib_Types_PrimTCon = ( h0 ) => ({ tag: "PrimTCon", h0: h0 }); const Lib_Types_PrimFn = ( h0, h1, h2 ) => ({ tag: "PrimFn", h0: h0, h1: h1, h2: h2 }); @@ -946,11 +946,11 @@ const Lib_Types_Lib_Common_HasFC$20Lib_Types_BindInfo = Lib_Common_MkHasFC(null, const Lib_ProcessDecl_teleToPi = ( _$$0, _$$1 ) => { switch (_$$0.tag) { case "_::_": { const _sc$$0 = _$$0.h1; return Lib_Syntax_RPi(Lib_Common_getFC(null, Lib_Types_Lib_Common_HasFC$20Lib_Types_BindInfo)(_sc$$0.h2), _sc$$0.h2, _sc$$0.h3, Lib_ProcessDecl_teleToPi(_$$0.h2, _$$1)); break; } case "Nil": return _$$1; } }; const Lib_ProcessDecl_processDecl_makeLHS_mkAutoApp_mkPi = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10 ) => { const _sc$$0 = _$$9.h3; return Lib_Syntax_RPi(_$$9.h2, Lib_Types_BI(_$$9.h2, _sc$$0.h2, Lib_Types_Explicit, Lib_Types_Many), _sc$$0.h3, _$$10); }; const Lib_ProcessDecl_processDecl_makeLHS_mkAutoApp_mkPi_mkApp = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _$$10, _$$11 ) => { const _sc$$0 = _$$11.h2; return Lib_Syntax_RApp(_sc$$0.h0, _$$10, Lib_Syntax_RVar(_sc$$0.h0, _sc$$0.h1), _sc$$0.h2); }; -const Lib_ProcessDecl_REC_getSigs = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.ProcessDecl.getSigs": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "TypeSig": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2.tag) { case "_::_": return { tag: "return", h0: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h0, Prelude__$2C_(null, null, _sc$$2.h1, _sc$$1.h2)), Lib_ProcessDecl_getSigs(_sc$$0.h2)) }; case "Nil": return { tag: "Lib.ProcessDecl.getSigs", h0: _sc$$0.h2 }; } break; } default: return { tag: "Lib.ProcessDecl.getSigs", h0: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Lib_ProcessDecl_REC_getSigs = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1.tag) { case "TypeSig": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2.tag) { case "_::_": return { tag: "return", h0: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, _sc$$1.h0, Prelude__$2C_(null, null, _sc$$2.h1, _sc$$1.h2)), Lib_ProcessDecl_getSigs(_sc$$0.h2)) }; case "Nil": return { tag: "Lib.ProcessDecl.getSigs", h0: _sc$$0.h2 }; } break; } default: return { tag: "Lib.ProcessDecl.getSigs", h0: _sc$$0.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Lib_ProcessDecl_getSigs = ( _$$0 ) => (bouncer(Lib_ProcessDecl_REC_getSigs, { tag: "Lib.ProcessDecl.getSigs", h0: _$$0 })); const Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow = ( _$$0 ) => { switch (_$$0.tag) { case "Record": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Record", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Lib_Syntax_Prelude_Show$20Lib_Types_BindInfo, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)))(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(_$$0.h3), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl))(_$$0.h4), Prelude_Nil(null))))))); case "Instance": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Instance", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_Maybe)(null)(null)(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl)))(_$$0.h2)), Prelude_Nil(null))))); case "Class": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Class", Prelude__$3A$3A_(null, _$$0.h1, Prelude__$3A$3A_(null, "...", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(Prelude_map(null, Prelude_Prelude_Functor$20Prelude_List)(null)(null)(Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl))(_$$0.h3)), Prelude_Nil(null)))))); case "PMixFix": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "PMixFix", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_Int)(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_Fixity)(_$$0.h3), Prelude_Nil(null)))))); case "PFunc": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "PFunc", Prelude__$3A$3A_(null, _$$0.h1, Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h3), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h4), Prelude_Nil(null))))))); case "PType": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "PType", Prelude__$3A$3A_(null, _$$0.h1, Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_Maybe$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw))(_$$0.h2), Prelude_Nil(null))))); case "ShortData": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "ShortData", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw))(_$$0.h2), Prelude_Nil(null))))); case "Data": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Data", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl))(_$$0.h3), Prelude_Nil(null)))))); case "DCheck": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "DCheck", Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude_Nil(null))))); case "Def": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "Def", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20$28Prelude__$D7_$20BND$3A3$20BND$3A2$29(null, null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)))(_$$0.h2), Prelude_Nil(null))))); case "TypeSig": return Lib_Syntax_foo(Prelude__$3A$3A_(null, "TypeSig", Prelude__$3A$3A_(null, Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(_$$0.h1), Prelude__$3A$3A_(null, Prelude_show(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Raw)(_$$0.h2), Prelude_Nil(null))))); } }; const Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl = Prelude_MkShow(null, Lib_Syntax_Prelude_Show$20Lib_Syntax_Decl$2Cshow); -const Lib_ProcessDecl_REC_processDecl_getFields_tenv_mkRHS = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.ProcessDecl.processDecl.getFields.tenv.mkRHS": { const _sc$$0 = arg.h9; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Explicit": return { tag: "Lib.ProcessDecl.processDecl.getFields.tenv.mkRHS", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: _sc$$0.h2, h10: Lib_Syntax_RApp(_sc$$1.h0, arg.h10, Lib_Syntax_RVar(_sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(arg.h8))(","))(_sc$$1.h1))("")), Lib_Types_Explicit) }; default: return { tag: "Lib.ProcessDecl.processDecl.getFields.tenv.mkRHS", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: _sc$$0.h2, h10: arg.h10 }; } break; } case "Nil": return { tag: "return", h0: arg.h10 }; } break; } } }; +const Lib_ProcessDecl_REC_processDecl_getFields_tenv_mkRHS = ( arg ) => { const _sc$$0 = arg.h9; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Explicit": return { tag: "Lib.ProcessDecl.processDecl.getFields.tenv.mkRHS", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: _sc$$0.h2, h10: Lib_Syntax_RApp(_sc$$1.h0, arg.h10, Lib_Syntax_RVar(_sc$$1.h0, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(arg.h8))(","))(_sc$$1.h1))("")), Lib_Types_Explicit) }; default: return { tag: "Lib.ProcessDecl.processDecl.getFields.tenv.mkRHS", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: _sc$$0.h2, h10: arg.h10 }; } break; } case "Nil": return { tag: "return", h0: arg.h10 }; } }; const Lib_ProcessDecl_processDecl_getFields_tenv_mkRHS = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10 ) => (bouncer(Lib_ProcessDecl_REC_processDecl_getFields_tenv_mkRHS, { tag: "Lib.ProcessDecl.processDecl.getFields.tenv.mkRHS", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _$$8, h9: _$$9, h10: _$$10 })); const Lib_Syntax_Decl = { tag: "Decl" }; const Lib_Util_Binder = { tag: "Binder" }; @@ -967,7 +967,7 @@ const Lib_Token__bounds = ( ty$$0, _$$1 ) => (_$$1.h2); const Lib_Token_Prelude_Eq$20Lib_Token_Bounds$2C_$3D$3D_ = ( _$$0, _$$1 ) => (Prelude__$26$26_(Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$0.h0)(_$$1.h0), Prelude__$26$26_(Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$0.h1)(_$$1.h1), Prelude__$26$26_(Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$0.h2)(_$$1.h2), Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(_$$0.h3)(_$$1.h3))))); const Lib_Token_Prelude_Eq$20Lib_Token_Bounds = Prelude_MkEq(null, ( eta ) => (( eta1 ) => (Lib_Token_Prelude_Eq$20Lib_Token_Bounds$2C_$3D$3D_(eta, eta1)))); const Lib_Token__startCol = ( _$$0 ) => (_$$0.h1); -const Main_REC_parseDecls_recover = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Main.parseDecls.recover": { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": { const sc$$12 = Prelude__$26$26_(Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Lib_Token__startCol(Lib_Token__bounds(null, _sc$$0.h1)))(0), Prelude__$2F$3D_(null, Lib_Token_Prelude_Eq$20Lib_Token_Bounds, Lib_Token__bounds(null, _sc$$0.h1), Lib_Token__bounds(null, arg.h5))); switch (sc$$12.tag) { case "False": return { tag: "Main.parseDecls.recover", 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: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, _sc$$0.h2) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } break; } } }; +const Main_REC_parseDecls_recover = ( arg ) => { const _sc$$0 = arg.h8; switch (_sc$$0.tag) { case "_::_": { const sc$$12 = Prelude__$26$26_(Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Int)(Lib_Token__startCol(Lib_Token__bounds(null, _sc$$0.h1)))(0), Prelude__$2F$3D_(null, Lib_Token_Prelude_Eq$20Lib_Token_Bounds, Lib_Token__bounds(null, _sc$$0.h1), Lib_Token__bounds(null, arg.h5))); switch (sc$$12.tag) { case "False": return { tag: "Main.parseDecls.recover", 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: _sc$$0.h2 }; case "True": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, _sc$$0.h2) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Nil(null) }; } }; const Main_parseDecls_recover = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8 ) => (bouncer(Main_REC_parseDecls_recover, { tag: "Main.parseDecls.recover", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _7, h8: _$$8 })); const Lib_Syntax_Record = ( h0, h1, h2, h3, h4 ) => ({ tag: "Record", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); const Lib_Parser_Impl_OK = ( h0, h1, h2, h3, h4 ) => ({ tag: "OK", h0: h0, h1: h1, h2: h2, h3: h3, h4: h4 }); @@ -1011,9 +1011,9 @@ const Lib_Parser_term_apply = ( _, _$$1, _$$2 ) => { switch (_$$2.tag) { case "_ const Lib_Parser_Impl_fail = ( a$$0, _$$1 ) => (Lib_Parser_Impl_P(null, ( toks ) => (( com ) => (( ops ) => (( col ) => (Lib_Parser_Impl_Fail(null, Prelude_False, Lib_Parser_Impl_perror(Lib_Common__file(col), toks, _$$1), toks, com, ops))))))); const Lib_Parser_pratt_projectHead_runProject_runRule = ( _, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { switch (_$$11.tag) { case "_::_": { const _sc$$0 = _$$11.h1; switch (_sc$$0) { case "": { const _sc$$1 = _$$11.h2; switch (_sc$$1.tag) { case "Nil": { let pr; switch (_$$9.tag) { case "InfixR": { pr = _$$8; break; } default: { pr = Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_$$8)(1); break; } } switch (_$$13.tag) { case "_::_": { const _sc$$2 = _$$13.h1; const _sc$$3 = _sc$$2.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_pratt(_, pr, _$$10, _sc$$3.h3, _$$13.h2), ( $$sc ) => (Lib_Parser_pratt(_, _1, _$$10, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_$$12), _$$12, $$sc.h2, Lib_Types_Explicit), $$sc.h3))); break; } default: return Lib_Parser_Impl_fail(null, "trailing operator"); } break; } default: switch (_$$13.tag) { case "_::_": { const _sc$$2 = _$$13.h1; const _sc$$3 = _sc$$2.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_pratt(_, 0, _$$11.h1, _sc$$3.h3, _$$13.h2), ( $$sc ) => { const _sc$$4 = $$sc.h3; switch (_sc$$4.tag) { case "_::_": { const _sc$$5 = _sc$$4.h1; const _sc$$6 = _sc$$5.h3; const _sc$$7 = _sc$$6.h3; switch (_sc$$7.tag) { case "RVar": { const sc$$49 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$7.h1)(_$$11.h1); switch (sc$$49.tag) { case "False": return Lib_Parser_Impl_fail(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(_$$11.h1))("")); case "True": return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_$$12), _$$12, $$sc.h2, Lib_Types_Explicit), _sc$$4.h2); } break; } default: return Lib_Parser_Impl_fail(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(_$$11.h1))("")); } break; } default: return Lib_Parser_Impl_fail(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(_$$11.h1))("")); } }); break; } case "Nil": return Lib_Parser_Impl_fail(null, "short"); } break; } break; } default: switch (_$$13.tag) { case "_::_": { const _sc$$1 = _$$13.h1; const _sc$$2 = _sc$$1.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_pratt(_, 0, _$$11.h1, _sc$$2.h3, _$$13.h2), ( $$sc ) => { const _sc$$3 = $$sc.h3; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; const _sc$$5 = _sc$$4.h3; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "RVar": { const sc$$49 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$6.h1)(_$$11.h1); switch (sc$$49.tag) { case "False": return Lib_Parser_Impl_fail(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(_$$11.h1))("")); case "True": return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _$$8, _$$9, _$$10, _$$11.h2, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_$$12), _$$12, $$sc.h2, Lib_Types_Explicit), _sc$$3.h2); } break; } default: return Lib_Parser_Impl_fail(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(_$$11.h1))("")); } break; } default: return Lib_Parser_Impl_fail(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("expected ")(_$$11.h1))("")); } }); break; } case "Nil": return Lib_Parser_Impl_fail(null, "short"); } break; } break; } case "Nil": return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, _$$12, _$$13)); } }; const Prelude_isPrefixOf = (pfx, s) => s.startsWith(pfx) ? Prelude_True : Prelude_False; -const Lib_Parser_REC_pratt_projectHead_runProject = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Parser.pratt.projectHead.runProject": { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Explicit": { const _sc$$3 = _sc$$1.h3; const _sc$$4 = _sc$$0.h2; switch (_sc$$4.tag) { case "_::_": { const _sc$$5 = _sc$$4.h1; const _sc$$6 = _sc$$5.h2; switch (_sc$$6.tag) { case "Explicit": { const _sc$$7 = _sc$$5.h3; const _sc$$8 = _sc$$7.h3; switch (_sc$$8.tag) { case "RVar": { const sc$$32 = Prelude_isPrefixOf(".", _sc$$8.h1); switch (sc$$32.tag) { case "False": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$3A$3A_(null, _sc$$4.h1, _sc$$4.h2)) }; case "True": return { tag: "Lib.Parser.pratt.projectHead.runProject", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Lib_Types_Explicit, Prelude__$2C_(null, null, _sc$$3.h2, Lib_Syntax_RApp(_sc$$8.h0, Lib_Syntax_RVar(_sc$$8.h0, _sc$$8.h1), _sc$$3.h3, Lib_Types_Explicit))), _sc$$4.h2) }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } } }; +const Lib_Parser_REC_pratt_projectHead_runProject = ( arg ) => { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Explicit": { const _sc$$3 = _sc$$1.h3; const _sc$$4 = _sc$$0.h2; switch (_sc$$4.tag) { case "_::_": { const _sc$$5 = _sc$$4.h1; const _sc$$6 = _sc$$5.h2; switch (_sc$$6.tag) { case "Explicit": { const _sc$$7 = _sc$$5.h3; const _sc$$8 = _sc$$7.h3; switch (_sc$$8.tag) { case "RVar": { const sc$$32 = Prelude_isPrefixOf(".", _sc$$8.h1); switch (sc$$32.tag) { case "False": return { tag: "return", h0: Prelude__$3A$3A_(null, _sc$$0.h1, Prelude__$3A$3A_(null, _sc$$4.h1, _sc$$4.h2)) }; case "True": return { tag: "Lib.Parser.pratt.projectHead.runProject", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: Prelude__$3A$3A_(null, Prelude__$2C_(null, null, Lib_Types_Explicit, Prelude__$2C_(null, null, _sc$$3.h2, Lib_Syntax_RApp(_sc$$8.h0, Lib_Syntax_RVar(_sc$$8.h0, _sc$$8.h1), _sc$$3.h3, Lib_Types_Explicit))), _sc$$4.h2) }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } break; } default: return { tag: "return", h0: arg.h7 }; } }; const Lib_Parser_pratt_projectHead_runProject = ( _, _1, _2, _3, _4, _5, _6, _$$7 ) => (bouncer(Lib_Parser_REC_pratt_projectHead_runProject, { tag: "Lib.Parser.pratt.projectHead.runProject", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _6, h7: _$$7 })); -const Lib_Parser_REC_pratt_projectHead = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Parser.pratt.projectHead": { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Explicit": { const _sc$$3 = _sc$$1.h3; const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "RVar": { const sc$$21 = Prelude_isPrefixOf(".", _sc$$4.h1); switch (sc$$21.tag) { case "False": return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; case "True": return { tag: "Lib.Parser.pratt.projectHead", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Lib_Syntax_RApp(_sc$$4.h0, Lib_Syntax_RVar(_sc$$4.h0, _sc$$4.h1), arg.h6, Lib_Types_Explicit), h7: _sc$$0.h2 }; } break; } default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; } default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; } default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; } } }; +const Lib_Parser_REC_pratt_projectHead = ( arg ) => { const _sc$$0 = arg.h7; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; const _sc$$2 = _sc$$1.h2; switch (_sc$$2.tag) { case "Explicit": { const _sc$$3 = _sc$$1.h3; const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "RVar": { const sc$$21 = Prelude_isPrefixOf(".", _sc$$4.h1); switch (sc$$21.tag) { case "False": return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; case "True": return { tag: "Lib.Parser.pratt.projectHead", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: Lib_Syntax_RApp(_sc$$4.h0, Lib_Syntax_RVar(_sc$$4.h0, _sc$$4.h1), arg.h6, Lib_Types_Explicit), h7: _sc$$0.h2 }; } break; } default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; } default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } break; } default: return { tag: "return", h0: Prelude__$2C_(null, null, arg.h6, arg.h7) }; } }; const Lib_Parser_pratt_projectHead = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => (bouncer(Lib_Parser_REC_pratt_projectHead, { tag: "Lib.Parser.pratt.projectHead", h0: _, h1: _1, h2: _2, h3: _3, h4: _4, h5: _5, h6: _$$6, h7: _$$7 })); const Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10, _$$11 ) => { switch (_$$10.tag) { case "RVar": { const sc$$14 = Data_SortedMap_lookupMap$27(null, null, Prelude_Prelude_Ord$20Prim_String, _$$10.h1, _); switch (sc$$14.tag) { case "Just": { const _sc$$0 = sc$$14.h1; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "True": return Lib_Parser_pratt_projectHead_runProject_runRule(_, _1, _2, _3, _4, _5, _6, _7, _sc$$0.h1, _sc$$0.h2, _$$9, _sc$$0.h4, Lib_Syntax_RVar(_$$10.h0, _sc$$0.h0), _$$11); default: return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, _3, _$$11)); } break; } default: return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, _3, _$$11)); } break; } default: return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, _$$10, _$$11)); } }; const Lib_Parser_pratt = ( _$$0, _$$1, _$$2, _$$3, _$$4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_pratt_projectHead_runProject_runRule_runPrefix(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, null, _$$2, _$$3, _$$4), ( $$sc ) => { const sc$$15 = Lib_Parser_pratt_projectHead(_$$0, _$$1, _$$2, _$$3, _$$4, null, $$sc.h2, $$sc.h3); const spine = Lib_Parser_pratt_projectHead_runProject(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, sc$$15.h3); switch (spine.tag) { case "_::_": { const _sc$$0 = spine.h1; const _sc$$1 = _sc$$0.h2; switch (_sc$$1.tag) { case "Explicit": { const _sc$$2 = _sc$$0.h3; const _sc$$3 = _sc$$2.h3; switch (_sc$$3.tag) { case "RVar": { const sc$$35 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$3.h1)(_$$2); switch (sc$$35.tag) { case "False": { const sc$$36 = Data_SortedMap_lookupMap$27(null, null, Prelude_Prelude_Ord$20Prim_String, _sc$$3.h1, _$$0); switch (sc$$36.tag) { case "Nothing": { const sc$$38 = Prelude_isPrefixOf(".", _sc$$3.h1); switch (sc$$38.tag) { case "False": return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$15.h2), sc$$15.h2, _sc$$2.h3, Lib_Types_Explicit), spine.h2); case "True": return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(_sc$$2.h3), _sc$$2.h3, sc$$15.h2, Lib_Types_Explicit), spine.h2); } break; } case "Just": { const _sc$$4 = sc$$36.h1; const _sc$$5 = _sc$$4.h3; switch (_sc$$5.tag) { case "False": { const sc$$44 = Prelude__$3C_(null, Prelude_Prelude_Ord$20Prim_Int, _sc$$4.h1, _$$1); switch (sc$$44.tag) { case "False": return Lib_Parser_pratt_projectHead_runProject_runRule(_$$0, _$$1, _$$2, _$$3, _$$4, null, null, null, _sc$$4.h1, _sc$$4.h2, _$$2, _sc$$4.h4, Lib_Syntax_RApp(_sc$$2.h2, Lib_Syntax_RVar(_sc$$2.h2, _sc$$4.h0), sc$$15.h2, Lib_Types_Explicit), spine.h2); case "True": return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, sc$$15.h2, spine)); } break; } default: return Lib_Parser_Impl_fail(null, "expected operator"); } break; } } break; } case "True": return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, sc$$15.h2, spine)); } break; } default: return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$15.h2), sc$$15.h2, _sc$$2.h3, _sc$$0.h2), spine.h2); } break; } default: { const _sc$$2 = _sc$$0.h3; return Lib_Parser_pratt(_$$0, _$$1, _$$2, Lib_Syntax_RApp(Lib_Common_getFC(null, Lib_Syntax_Lib_Common_HasFC$20Lib_Syntax_Raw)(sc$$15.h2), sc$$15.h2, _sc$$2.h3, _sc$$0.h2), spine.h2); break; } } break; } case "Nil": return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Prelude__$2C_(null, null, sc$$15.h2, Prelude_Nil(null))); } })); @@ -1110,7 +1110,7 @@ const Lib_Parser_nakedBind = Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Im const Lib_Parser_parseRecord = Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_getPos, ( fc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_keyword("record"), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_uident, ( name ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_many(null, Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_ebind)(Lib_Parser_nakedBind)), ( teles ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_keyword("where"), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_optional(null, Prelude__$2A$3E_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_keyword("constructor"), Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_uident)(Lib_Parser_Impl_token(Lib_Token_MixFix)))), ( cname ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_manySame(null, Lib_Parser_parseSig)), ( decls ) => (Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Lib_Syntax_Record(fc, name, Prelude_join(null, null, Prelude_Prelude_Monad$20Prelude_List, teles), cname, decls)))))))))))))))); const Lib_Syntax_Instance = ( h0, h1, h2 ) => ({ tag: "Instance", h0: h0, h1: h1, h2: h2 }); const Lib_Syntax_RWhere = ( h0, h1, h2 ) => ({ tag: "RWhere", h0: h0, h1: h1, h2: h2 }); -const Lib_Parser_REC_getName = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Parser.getName": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "RApp": return { tag: "Lib.Parser.getName", h0: _sc$$0.h1 }; case "RVar": return { tag: "return", h0: Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(_sc$$0.h1) }; default: return { tag: "return", h0: Lib_Parser_Impl_fail(null, "bad LHS") }; } break; } } }; +const Lib_Parser_REC_getName = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "RApp": return { tag: "Lib.Parser.getName", h0: _sc$$0.h1 }; case "RVar": return { tag: "return", h0: Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(_sc$$0.h1) }; default: return { tag: "return", h0: Lib_Parser_Impl_fail(null, "bad LHS") }; } }; const Lib_Parser_getName = ( _$$0 ) => (bouncer(Lib_Parser_REC_getName, { tag: "Lib.Parser.getName", h0: _$$0 })); const Lib_Parser_parseDef = Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_getPos, ( fc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_typeExpr, ( t ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_getName(t), ( nm ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_keyword("="), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_typeExpr, ( body ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_getPos, ( wfc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_optional(null, Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_keyword("where"), ( _1 ) => (Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_manySame(null, Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseSig)(Lib_Parser_parseDef)))))), ( w ) => { const body1 = Prelude_maybe(null, null, body, ( decls ) => (Lib_Syntax_RWhere(wfc, decls, body)), w); return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Lib_Syntax_Def(fc, nm, Prelude__$3A$3A_(null, Prelude__$2C_(null, null, t, body1), Prelude_Nil(null)))); }))))))))))))); const Lib_Parser_parseInstance = Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_getPos, ( fc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_keyword("instance"), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_typeExpr, ( ty ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_optional(null, Lib_Parser_Impl_keyword("where")), ( $$sc ) => { switch ($$sc.tag) { case "Just": return Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_startBlock(null, Lib_Parser_Impl_manySame(null, Lib_Parser_parseDef)), ( decls ) => (Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Lib_Syntax_Instance(fc, ty, Prelude_Just(null, decls))))); default: return Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Lib_Syntax_Instance(fc, ty, Prelude_Nothing(null))); } }))))))); @@ -1145,7 +1145,7 @@ const Lib_Common_InfixL = { tag: "InfixL" }; const Lib_Parser_parseMixfix = Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_getPos, ( fc ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Common_InfixL, Lib_Parser_Impl_keyword("infixl")))(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Common_InfixR, Lib_Parser_Impl_keyword("infixr")))(Prelude__$3C$$_(null, null, null, Lib_Parser_Impl_Prelude_Functor$20Lib_Parser_Impl_Parser, Lib_Common_Infix, Lib_Parser_Impl_keyword("infix")))), ( fix ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_token(Lib_Token_Number), ( prec ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Lib_Parser_Impl_some(null, Lib_Parser_Impl_token(Lib_Token_MixFix)), ( ops ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Parser_Impl_Prelude_Applicative$20Lib_Parser_Impl_Parser, null, null, ops, ( op ) => (Lib_Parser_Impl_addOp(op, Prelude_cast(null, null, Data_String_Prelude_Cast$20Prim_String$20Prim_Int)(prec), fix))), ( _ ) => (Prelude_pure(null, Lib_Parser_Impl_Prelude_Monad$20Lib_Parser_Impl_Parser)(null)(Lib_Syntax_PMixFix(fc, ops, Prelude_cast(null, null, Data_String_Prelude_Cast$20Prim_String$20Prim_Int)(prec), fix)))))))))))); const Lib_Parser_parseDecl = Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseMixfix)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parsePType)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parsePFunc)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseNorm)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseData)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseShortData)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseSig)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseDef)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseClass)(Prelude__$3C$7C$3E_(null, Lib_Parser_Impl_Prelude_Alternative$20Lib_Parser_Impl_Parser)(null)(Lib_Parser_parseInstance)(Lib_Parser_parseRecord)))))))))); const Lib_Parser_Impl_partialParse = ( a$$0, _$$1, _$$2, _$$3, _$$4 ) => { const sc$$5 = Lib_Parser_Impl_runP(null, _$$2)(_$$4)(Prelude_False)(_$$3)(Lib_Common_MkFC(_$$1, Prelude__$2C_(null, null, 0, 0))); switch (sc$$5.tag) { case "Fail": return Prelude_Left(null, null, Prelude__$2C_(null, null, sc$$5.h2, sc$$5.h3)); case "OK": return Prelude_Right(null, null, Prelude__$2C_(null, null, sc$$5.h1, Prelude__$2C_(null, null, sc$$5.h4, sc$$5.h2))); } }; -const Main_REC_parseDecls = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Main.parseDecls": { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$8 = Lib_Parser_Impl_partialParse(null, arg.h0, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseDecl), arg.h1, arg.h2); switch (sc$$8.tag) { case "Right": { const _sc$$1 = sc$$8.h2; const _sc$$2 = _sc$$1.h3; return { tag: "Main.parseDecls", h0: arg.h0, h1: _sc$$2.h2, h2: _sc$$2.h3, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$1.h2) }; break; } case "Left": { const _sc$$1 = sc$$8.h2; return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Common_showError("", _sc$$1.h2)), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_TopContext_addError(_sc$$1.h2), ( _1 ) => (Main_parseDecls(arg.h0, arg.h1, Main_parseDecls_recover(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, null, _sc$$1.h3), arg.h3))))) }; break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Prelude__$3C$3E$3E_(null, arg.h3, Prelude_Nil(null)), arg.h1)) }; } break; } } }; +const Main_REC_parseDecls = ( arg ) => { const _sc$$0 = arg.h2; switch (_sc$$0.tag) { case "_::_": { const sc$$8 = Lib_Parser_Impl_partialParse(null, arg.h0, Lib_Parser_Impl_sameLevel(null, Lib_Parser_parseDecl), arg.h1, arg.h2); switch (sc$$8.tag) { case "Right": { const _sc$$1 = sc$$8.h2; const _sc$$2 = _sc$$1.h3; return { tag: "Main.parseDecls", h0: arg.h0, h1: _sc$$2.h2, h2: _sc$$2.h3, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$1.h2) }; break; } case "Left": { const _sc$$1 = sc$$8.h2; return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Common_showError("", _sc$$1.h2)), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_TopContext_addError(_sc$$1.h2), ( _1 ) => (Main_parseDecls(arg.h0, arg.h1, Main_parseDecls_recover(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, null, _sc$$1.h3), arg.h3))))) }; break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Prelude__$3C$3E$3E_(null, arg.h3, Prelude_Nil(null)), arg.h1)) }; } }; const Main_parseDecls = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Main_REC_parseDecls, { tag: "Main.parseDecls", h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Data_SortedMap_mapFromList_go = ( _, _1, _2, _3, _4, _5, _$$6, _$$7 ) => (Data_SortedMap_updateMap(null, null, _2, _$$7.h2, _$$7.h3, _$$6)); const Data_SortedMap_mapFromList = ( k$$0, v$$1, _$$2, _$$3, _$$4 ) => (Prelude_foldl(null, null, ( eta ) => (( eta1 ) => (Data_SortedMap_mapFromList_go(k$$0, v$$1, _$$2, _$$3, _$$4, null, eta, eta1))), Data_SortedMap_EmptyMap(null, null), _$$4)); @@ -1186,7 +1186,7 @@ const Lib_Token_Tok = ( h0, h1 ) => ({ tag: "Tok", h0: h0, h1: h1 }); const Lib_Token_MkBounded = ( h0, h1, h2 ) => ({ tag: "MkBounded", h0: h0, h1: h1, h2: h2 }); const Lib_Tokenizer_keywords = Prelude__$3A$3A_(null, "let", Prelude__$3A$3A_(null, "in", Prelude__$3A$3A_(null, "where", Prelude__$3A$3A_(null, "case", Prelude__$3A$3A_(null, "of", Prelude__$3A$3A_(null, "data", Prelude__$3A$3A_(null, "U", Prelude__$3A$3A_(null, "do", Prelude__$3A$3A_(null, "ptype", Prelude__$3A$3A_(null, "pfunc", Prelude__$3A$3A_(null, "module", Prelude__$3A$3A_(null, "infixl", Prelude__$3A$3A_(null, "infixr", Prelude__$3A$3A_(null, "infix", Prelude__$3A$3A_(null, "∀", Prelude__$3A$3A_(null, "forall", Prelude__$3A$3A_(null, "import", Prelude__$3A$3A_(null, "uses", Prelude__$3A$3A_(null, "class", Prelude__$3A$3A_(null, "instance", Prelude__$3A$3A_(null, "record", Prelude__$3A$3A_(null, "constructor", Prelude__$3A$3A_(null, "if", Prelude__$3A$3A_(null, "then", Prelude__$3A$3A_(null, "else", Prelude__$3A$3A_(null, "$", Prelude__$3A$3A_(null, "λ", Prelude__$3A$3A_(null, "?", Prelude__$3A$3A_(null, "@", Prelude__$3A$3A_(null, ".", Prelude__$3A$3A_(null, "->", Prelude__$3A$3A_(null, "→", Prelude__$3A$3A_(null, ":", Prelude__$3A$3A_(null, "=>", Prelude__$3A$3A_(null, ":=", Prelude__$3A$3A_(null, "=", Prelude__$3A$3A_(null, "<-", Prelude__$3A$3A_(null, "\\", Prelude__$3A$3A_(null, "_", Prelude__$3A$3A_(null, "|", Prelude_Nil(null))))))))))))))))))))))))))))))))))))))))); const Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok = ( _, _1, _2, _3, _4, _5, _6, _7, _8, _$$9, _$$10, _$$11, _$$12, _$$13 ) => { let kind; const sc$$14 = Prelude__$26$26_(_$$9, Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, _$$13, Lib_Tokenizer_keywords)); switch (sc$$14.tag) { case "False": { kind = _$$12; break; } case "True": { kind = Lib_Token_Keyword; break; } } return Lib_Token_MkBounded(null, Lib_Token_Tok(kind, _$$13), Lib_Token_MkBounds(_1, _2, _$$10, _$$11)); }; -const Data_SnocList_REC_snocelem = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Data.SnocList.snocelem": { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_:<_": { const sc$$7 = Prelude__$3D$3D_(null, arg.h1)(arg.h2)(_sc$$0.h2); switch (sc$$7.tag) { case "False": return { tag: "Data.SnocList.snocelem", h0: null, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h1 }; case "True": return { tag: "return", h0: Prelude_True }; } break; } case "Lin": return { tag: "return", h0: Prelude_False }; } break; } } }; +const Data_SnocList_REC_snocelem = ( arg ) => { const _sc$$0 = arg.h3; switch (_sc$$0.tag) { case "_:<_": { const sc$$7 = Prelude__$3D$3D_(null, arg.h1)(arg.h2)(_sc$$0.h2); switch (sc$$7.tag) { case "False": return { tag: "Data.SnocList.snocelem", h0: null, h1: arg.h1, h2: arg.h2, h3: _sc$$0.h1 }; case "True": return { tag: "return", h0: Prelude_True }; } break; } case "Lin": return { tag: "return", h0: Prelude_False }; } }; const Data_SnocList_snocelem = ( a$$0, _$$1, _$$2, _$$3 ) => (bouncer(Data_SnocList_REC_snocelem, { tag: "Data.SnocList.snocelem", h0: a$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); const Lib_Tokenizer_standalone = Prelude_unpack("()\\{}[],.@"); const Prelude_isSpace = ( _$$0 ) => { switch (_$$0) { case " ": return Prelude_True; case "\n": return Prelude_True; default: return Prelude_False; } }; @@ -1196,9 +1196,9 @@ const Prelude_isDigit = ( _$$0 ) => { switch (_$$0) { case "0": return Prelude_T const Lib_Token_Pragma = { tag: "Pragma" }; const Lib_Tokenizer_singleton = ( _$$0 ) => (Prelude_pack(Prelude__$3A$3A_(null, _$$0, Prelude_Nil(null)))); const Lib_Tokenizer_quoteTokenise_stok = ( _, _1, _2, _3, _4, _5, _6, _7, _8 ) => (Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_StringKind, Prelude_pack(Prelude__$3C$3E$3E_(null, _3, Prelude_Nil(null)))), Lib_Token_MkBounds(_1, _2, _4, _5))); -const Lib_Tokenizer_REC_quoteTokenise = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Tokenizer.quoteTokenise": { const _sc$$0 = arg.h0; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "\"": return { tag: "return", h0: Prelude_Right(null, null, Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null)), _sc$$0.h3)) }; case "\n": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "Newline in string")) }; case "\\": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "{": { const tok = Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_StartInterp, "\\{"), Lib_Token_MkBounds(_sc$$0.h0, _sc$$0.h1, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2))); const sc$$17 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null)), tok), _sc$$3.h2)); switch (sc$$17.tag) { case "Right": { const _sc$$5 = sc$$17.h2; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "}": { const tok1 = Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_EndInterp, "}"), Lib_Token_MkBounds(_sc$$5.h0, _sc$$5.h1, _sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1))); return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), Prelude__$3A$3C_(null, _sc$$5.h2, tok1), _sc$$6.h2), h1: _sc$$5.h0, h2: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), h3: Prelude_Lin(null) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '{'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '{'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$17.h2) }; } break; } case "n": return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, "\n") }; default: return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$3.h1) }; } break; } default: return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$1.h1) }; } break; } default: return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$1.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "Expected '\"' at EOF")) }; } break; } } }; +const Lib_Tokenizer_REC_quoteTokenise = ( arg ) => { const _sc$$0 = arg.h0; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "\"": return { tag: "return", h0: Prelude_Right(null, null, Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null)), _sc$$0.h3)) }; case "\n": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "Newline in string")) }; case "\\": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "{": { const tok = Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_StartInterp, "\\{"), Lib_Token_MkBounds(_sc$$0.h0, _sc$$0.h1, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2))); const sc$$17 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_quoteTokenise_stok(arg.h0, arg.h1, arg.h2, arg.h3, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null)), tok), _sc$$3.h2)); switch (sc$$17.tag) { case "Right": { const _sc$$5 = sc$$17.h2; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "}": { const tok1 = Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_EndInterp, "}"), Lib_Token_MkBounds(_sc$$5.h0, _sc$$5.h1, _sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1))); return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), Prelude__$3A$3C_(null, _sc$$5.h2, tok1), _sc$$6.h2), h1: _sc$$5.h0, h2: Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), h3: Prelude_Lin(null) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '{'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '{'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$17.h2) }; } break; } case "n": return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, "\n") }; default: return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$3.h1) }; } break; } default: return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$1.h1) }; } break; } default: return { tag: "Lib.Tokenizer.quoteTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h1: arg.h1, h2: arg.h2, h3: Prelude__$3A$3C_(null, arg.h3, _sc$$1.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "Expected '\"' at EOF")) }; } }; const Lib_Tokenizer_quoteTokenise = ( _$$0, _$$1, _$$2, _$$3 ) => (bouncer(Lib_Tokenizer_REC_quoteTokenise, { tag: "Lib.Tokenizer.quoteTokenise", h0: _$$0, h1: _$$1, h2: _$$2, h3: _$$3 })); -const Lib_Tokenizer_REC_rawTokenise = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Tokenizer.rawTokenise": { const _sc$$0 = arg.h0; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case " ": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; case "\n": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2) }; case "\"": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_StartQuote, "\""); const sc$$18 = Lib_Tokenizer_quoteTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2), _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude_Lin(null)); switch (sc$$18.tag) { case "Right": { const _sc$$3 = sc$$18.h2; const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "_::_": { const _sc$$5 = _sc$$4.h1; switch (_sc$$5) { case "\"": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$3.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$3.h1)(1), Lib_Token_EndQuote, "\""); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$3.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$3.h1)(1), Prelude__$3A$3C_(null, _sc$$3.h2, tok1), _sc$$4.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$3.h0, _sc$$3.h1)), "Expected '\"'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$3.h0, _sc$$3.h1)), "Expected '\"'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } case "}": return { tag: "return", h0: Prelude_Right(null, null, arg.h0) }; case "{": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "{": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), Lib_Token_Keyword, "{{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$3.h2)); switch (sc$$21.tag) { case "Right": { const _sc$$5 = sc$$21.h2; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "}": { const _sc$$8 = _sc$$6.h2; switch (_sc$$8.tag) { case "_::_": { const _sc$$9 = _sc$$8.h1; switch (_sc$$9) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(2), Lib_Token_Keyword, "}}"); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(2), Prelude__$3A$3C_(null, _sc$$5.h2, tok1), _sc$$8.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_Symbol, "{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2)); switch (sc$$21.tag) { case "Right": { const _sc$$5 = sc$$21.h2; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), Lib_Token_Symbol, "}"); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), Prelude__$3A$3C_(null, _sc$$5.h2, tok1), _sc$$6.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } } break; } default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_Symbol, "{"); const sc$$18 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2)); switch (sc$$18.tag) { case "Right": { const _sc$$4 = sc$$18.h2; const _sc$$5 = _sc$$4.h3; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$4.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$4.h1)(1), Lib_Token_Symbol, "}"); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$4.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$4.h1)(1), Prelude__$3A$3C_(null, _sc$$4.h2, tok1), _sc$$5.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$4.h0, _sc$$4.h1)), "Expected '}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$4.h0, _sc$$4.h1)), "Expected '}'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } } break; } case ",": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_Ident, ",")), _sc$$1.h2) }; case "_": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case ",": { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "_": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_MixFix, "_,_")), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case ".": { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "_": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_MixFix, "_._")), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "'": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "\\": { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h2; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "'": { const ch = Prelude_ite(null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Char)(_sc$$5.h1)("n"), "\n", _sc$$5.h1); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(4), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(4), Lib_Token_Character, Lib_Tokenizer_singleton(ch))), _sc$$6.h2) }; break; } default: { const _sc$$8 = _sc$$5.h1; switch (_sc$$8) { case "'": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_Character, Lib_Tokenizer_singleton(_sc$$3.h1))), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } } break; } default: { const _sc$$7 = _sc$$5.h1; switch (_sc$$7) { case "'": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_Character, Lib_Tokenizer_singleton(_sc$$3.h1))), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "'": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_Character, Lib_Tokenizer_singleton(_sc$$3.h1))), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "#": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h13: Lib_Token_Pragma, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "#") }; case "/": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "-": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "`": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h9: Prelude_Lin(null) }; case ".": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h13: Lib_Token_Projection, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), ".") }; case "-": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "-": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2) }; default: { const sc$$20 = Prelude_isDigit(_sc$$3.h1); switch (sc$$20.tag) { case "False": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, Prelude__$3A$3A_(null, _sc$$3.h1, _sc$$3.h2)), h13: Lib_Token_Ident, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "-") }; case "True": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2), h13: Lib_Token_Number, h14: Prelude_isDigit, h15: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude_Lin(null), "-"), _sc$$3.h1) }; } break; } } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Right(null, null, arg.h0) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar": { const sc$$15 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_Char, arg.h13, Lib_Tokenizer_standalone); switch (sc$$15.tag) { case "False": { let kind; const sc$$16 = Prelude_isDigit(arg.h13); switch (sc$$16.tag) { case "False": { const sc$$17 = Prelude_isUpper(arg.h13); switch (sc$$17.tag) { case "False": { kind = Lib_Token_Ident; break; } case "True": { kind = Lib_Token_UIdent; break; } } break; } case "True": { kind = Lib_Token_Number; break; } } return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(arg.h1, arg.h2, arg.h3, Prelude__$3A$3A_(null, arg.h13, arg.h14)), h13: kind, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, eta)), h15: Prelude_Lin(null) }; break; } case "True": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(arg.h1, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h2)(1), Prelude__$3A$3C_(null, arg.h3, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, Prelude_True, arg.h1, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h2)(1), Lib_Token_Symbol, Prelude_pack(Prelude__$3A$3A_(null, arg.h13, Prelude_Nil(null))))), arg.h14) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest": { const _sc$$0 = arg.h12; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const sc$$23 = arg.h14(_sc$$1.h1); switch (sc$$23.tag) { case "False": { let kind; const sc$$24 = Data_SnocList_snocelem(null, Prelude_Prelude_Eq$20Prim_Char, "_", arg.h15); switch (sc$$24.tag) { case "False": { kind = arg.h13; break; } case "True": { kind = Lib_Token_MixFix; break; } } return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, Prelude_True, _sc$$0.h0, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(_sc$$0.h1)(1), kind, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude__$3A$3A_(null, _sc$$1.h1, _sc$$1.h2)) }; break; } case "True": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h13: arg.h13, h14: arg.h14, h15: Prelude__$3A$3C_(null, arg.h15, _sc$$1.h1) }; } break; } case "Nil": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, Prelude_True, _sc$$0.h0, _sc$$0.h1, arg.h13, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude_Nil(null)) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment": { const _sc$$0 = arg.h11; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "-": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "/": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } case "\n": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "EOF in block comment")) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick": { const _sc$$0 = arg.h8; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "`": { const tok = Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_JSLit, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h9, Prelude_Nil(null)))), Lib_Token_MkBounds(arg.h1, arg.h2, _sc$$0.h0, _sc$$0.h1)); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2) }; break; } case "\n": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2), h9: Prelude__$3A$3C_(null, arg.h9, "\n") }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h9: Prelude__$3A$3C_(null, arg.h9, _sc$$1.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "EOF in backtick string")) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment": { const _sc$$0 = arg.h10; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "\n": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } case "Nil": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, Prelude_Nil(null)) }; } break; } } }; +const Lib_Tokenizer_REC_rawTokenise = ( arg ) => { switch (arg.tag) { case "Lib.Tokenizer.rawTokenise": { const _sc$$0 = arg.h0; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case " ": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; case "\n": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2) }; case "\"": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_StartQuote, "\""); const sc$$18 = Lib_Tokenizer_quoteTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2), _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude_Lin(null)); switch (sc$$18.tag) { case "Right": { const _sc$$3 = sc$$18.h2; const _sc$$4 = _sc$$3.h3; switch (_sc$$4.tag) { case "_::_": { const _sc$$5 = _sc$$4.h1; switch (_sc$$5) { case "\"": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$3.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$3.h1)(1), Lib_Token_EndQuote, "\""); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$3.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$3.h1)(1), Prelude__$3A$3C_(null, _sc$$3.h2, tok1), _sc$$4.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$3.h0, _sc$$3.h1)), "Expected '\"'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$3.h0, _sc$$3.h1)), "Expected '\"'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } case "}": return { tag: "return", h0: Prelude_Right(null, null, arg.h0) }; case "{": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "{": { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), Lib_Token_Keyword, "{{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$3.h2)); switch (sc$$21.tag) { case "Right": { const _sc$$5 = sc$$21.h2; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "}": { const _sc$$8 = _sc$$6.h2; switch (_sc$$8.tag) { case "_::_": { const _sc$$9 = _sc$$8.h1; switch (_sc$$9) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(2), Lib_Token_Keyword, "}}"); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(2), Prelude__$3A$3C_(null, _sc$$5.h2, tok1), _sc$$8.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}}'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_Symbol, "{"); const sc$$21 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2)); switch (sc$$21.tag) { case "Right": { const _sc$$5 = sc$$21.h2; const _sc$$6 = _sc$$5.h3; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), Lib_Token_Symbol, "}"); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$5.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$5.h1)(1), Prelude__$3A$3C_(null, _sc$$5.h2, tok1), _sc$$6.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$5.h0, _sc$$5.h1)), "Expected '}'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$21.h2) }; } break; } } break; } default: { const tok = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_Symbol, "{"); const sc$$18 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2)); switch (sc$$18.tag) { case "Right": { const _sc$$4 = sc$$18.h2; const _sc$$5 = _sc$$4.h3; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "}": { const tok1 = Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$4.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$4.h1)(1), Lib_Token_Symbol, "}"); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$4.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$4.h1)(1), Prelude__$3A$3C_(null, _sc$$4.h2, tok1), _sc$$5.h2) }; break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$4.h0, _sc$$4.h1)), "Expected '}'")) }; } break; } default: return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$4.h0, _sc$$4.h1)), "Expected '}'")) }; } break; } case "Left": return { tag: "return", h0: Prelude_Left(null, null, sc$$18.h2) }; } break; } } break; } case ",": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Lib_Token_Ident, ",")), _sc$$1.h2) }; case "_": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case ",": { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "_": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_MixFix, "_,_")), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case ".": { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "_": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_MixFix, "_._")), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "'": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "\\": { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h2; switch (_sc$$6.tag) { case "_::_": { const _sc$$7 = _sc$$6.h1; switch (_sc$$7) { case "'": { const ch = Prelude_ite(null, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_Char)(_sc$$5.h1)("n"), "\n", _sc$$5.h1); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(4), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(4), Lib_Token_Character, Lib_Tokenizer_singleton(ch))), _sc$$6.h2) }; break; } default: { const _sc$$8 = _sc$$5.h1; switch (_sc$$8) { case "'": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_Character, Lib_Tokenizer_singleton(_sc$$3.h1))), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } } break; } default: { const _sc$$7 = _sc$$5.h1; switch (_sc$$7) { case "'": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_Character, Lib_Tokenizer_singleton(_sc$$3.h1))), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: { const _sc$$5 = _sc$$3.h2; switch (_sc$$5.tag) { case "_::_": { const _sc$$6 = _sc$$5.h1; switch (_sc$$6) { case "'": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, null, null, null, Prelude_False, _sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(3), Lib_Token_Character, Lib_Tokenizer_singleton(_sc$$3.h1))), _sc$$5.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "#": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h13: Lib_Token_Pragma, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "#") }; case "/": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "-": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "`": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h9: Prelude_Lin(null) }; case ".": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h13: Lib_Token_Projection, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), ".") }; case "-": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "-": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2) }; default: { const sc$$20 = Prelude_isDigit(_sc$$3.h1); switch (sc$$20.tag) { case "False": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, Prelude__$3A$3A_(null, _sc$$3.h1, _sc$$3.h2)), h13: Lib_Token_Ident, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, _sc$$0.h0, _sc$$0.h1, _sc$$0.h2, _sc$$0.h3, null, eta)), h15: Prelude__$3A$3C_(null, Prelude_Lin(null), "-") }; case "True": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2), h13: Lib_Token_Number, h14: Prelude_isDigit, h15: Prelude__$3A$3C_(null, Prelude__$3A$3C_(null, Prelude_Lin(null), "-"), _sc$$3.h1) }; } break; } } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar", h0: arg.h0, h1: _sc$$0.h0, h2: _sc$$0.h1, h3: _sc$$0.h2, h4: _sc$$0.h3, h5: null, h6: null, h7: null, h8: null, h9: null, h10: null, h11: null, h12: null, h13: _sc$$1.h1, h14: _sc$$1.h2 }; } break; } case "Nil": return { tag: "return", h0: Prelude_Right(null, null, arg.h0) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest.doChar": { const sc$$15 = Prelude_elem(null, Prelude_Prelude_Eq$20Prim_Char, arg.h13, Lib_Tokenizer_standalone); switch (sc$$15.tag) { case "False": { let kind; const sc$$16 = Prelude_isDigit(arg.h13); switch (sc$$16.tag) { case "False": { const sc$$17 = Prelude_isUpper(arg.h13); switch (sc$$17.tag) { case "False": { kind = Lib_Token_Ident; break; } case "True": { kind = Lib_Token_UIdent; break; } } break; } case "True": { kind = Lib_Token_Number; break; } } return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(arg.h1, arg.h2, arg.h3, Prelude__$3A$3A_(null, arg.h13, arg.h14)), h13: kind, h14: ( eta ) => (Lib_Tokenizer_rawTokenise_isIdent(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, eta)), h15: Prelude_Lin(null) }; break; } case "True": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(arg.h1, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h2)(1), Prelude__$3A$3C_(null, arg.h3, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, Prelude_True, arg.h1, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(arg.h2)(1), Lib_Token_Symbol, Prelude_pack(Prelude__$3A$3A_(null, arg.h13, Prelude_Nil(null))))), arg.h14) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest": { const _sc$$0 = arg.h12; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const sc$$23 = arg.h14(_sc$$1.h1); switch (sc$$23.tag) { case "False": { let kind; const sc$$24 = Data_SnocList_snocelem(null, Prelude_Prelude_Eq$20Prim_Char, "_", arg.h15); switch (sc$$24.tag) { case "False": { kind = arg.h13; break; } case "True": { kind = Lib_Token_MixFix; break; } } return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, Prelude_True, _sc$$0.h0, Prelude__$2D_(null, Prelude_Prelude_Sub$20Prim_Int)(_sc$$0.h1)(1), kind, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude__$3A$3A_(null, _sc$$1.h1, _sc$$1.h2)) }; break; } case "True": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment.doRest", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: arg.h11, h12: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h13: arg.h13, h14: arg.h14, h15: Prelude__$3A$3C_(null, arg.h15, _sc$$1.h1) }; } break; } case "Nil": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, Prelude__$3A$3C_(null, _sc$$0.h2, Lib_Tokenizer_rawTokenise_isIdent_isUIdent_doBacktick_mktok(arg.h0, arg.h1, arg.h2, arg.h3, arg.h4, arg.h5, arg.h6, arg.h7, arg.h8, Prelude_True, _sc$$0.h0, _sc$$0.h1, arg.h13, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h15, Prelude_Nil(null))))), Prelude_Nil(null)) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment": { const _sc$$0 = arg.h11; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "-": { const _sc$$3 = _sc$$1.h2; switch (_sc$$3.tag) { case "_::_": { const _sc$$4 = _sc$$3.h1; switch (_sc$$4) { case "/": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(2), _sc$$0.h2, _sc$$3.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } case "\n": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment.blockComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: arg.h10, h11: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "EOF in block comment")) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick": { const _sc$$0 = arg.h8; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "`": { const tok = Lib_Token_MkBounded(null, Lib_Token_Tok(Lib_Token_JSLit, Prelude_pack(Prelude__$3C$3E$3E_(null, arg.h9, Prelude_Nil(null)))), Lib_Token_MkBounds(arg.h1, arg.h2, _sc$$0.h0, _sc$$0.h1)); return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), Prelude__$3A$3C_(null, _sc$$0.h2, tok), _sc$$1.h2) }; break; } case "\n": return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2), h9: Prelude__$3A$3C_(null, arg.h9, "\n") }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2), h9: Prelude__$3A$3C_(null, arg.h9, _sc$$1.h1) }; } break; } case "Nil": return { tag: "return", h0: Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC("", Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "EOF in backtick string")) }; } break; } case "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment": { const _sc$$0 = arg.h10; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "_::_": { const _sc$$2 = _sc$$1.h1; switch (_sc$$2) { case "\n": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h0)(1), 0, _sc$$0.h2, _sc$$1.h2) }; default: return { tag: "Lib.Tokenizer.rawTokenise.isIdent.isUIdent.doBacktick.mktok.lineComment", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: arg.h3, h4: arg.h4, h5: arg.h5, h6: arg.h6, h7: arg.h7, h8: arg.h8, h9: arg.h9, h10: Lib_Tokenizer_TS(_sc$$0.h0, Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(_sc$$0.h1)(1), _sc$$0.h2, _sc$$1.h2) }; } break; } case "Nil": return { tag: "Lib.Tokenizer.rawTokenise", h0: Lib_Tokenizer_TS(_sc$$0.h0, _sc$$0.h1, _sc$$0.h2, Prelude_Nil(null)) }; } break; } } }; const Lib_Tokenizer_rawTokenise = ( _$$0 ) => (bouncer(Lib_Tokenizer_REC_rawTokenise, { tag: "Lib.Tokenizer.rawTokenise", h0: _$$0 })); const Lib_Tokenizer_tokenise = ( _$$0, _$$1 ) => { const sc$$2 = Lib_Tokenizer_rawTokenise(Lib_Tokenizer_TS(0, 0, Prelude_Lin(null), Prelude_unpack(_$$1))); switch (sc$$2.tag) { case "Right": { const _sc$$0 = sc$$2.h2; const _sc$$1 = _sc$$0.h3; switch (_sc$$1.tag) { case "Nil": return Prelude_Right(null, null, Prelude__$3C$3E$3E_(null, _sc$$0.h2, Prelude_Nil(null))); default: return Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, _sc$$0.h0, _sc$$0.h1)), "Extra toks")); } break; } case "Left": { const _sc$$0 = sc$$2.h2; switch (_sc$$0.tag) { case "E": { const _sc$$1 = _sc$$0.h0; return Prelude_Left(null, null, Lib_Common_E(Lib_Common_MkFC(_$$0, _sc$$1.h1), _sc$$0.h1)); break; } default: return Prelude_Left(null, null, sc$$2.h2); } break; } } }; const Node_readFile = (fn) => (w) => { @@ -1215,14 +1215,14 @@ const Node_readFile = (fn) => (w) => { }; const Lib_Types_emptyModCtx = ( _$$0 ) => (Lib_Types_MkModCtx(_$$0, Data_SortedMap_EmptyMap(null, null), Lib_Types_MC(Data_SortedMap_EmptyMap(null, null), 0, Lib_Types_NoCheck), Data_SortedMap_EmptyMap(null, null))); const Main_processModule = ( _$$0, _$$1, _$$2, _$$3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const modns = Prelude_snoc(null, _$$3.h0, _$$3.h1); const name = Prelude_joinBy(".", modns); const sc$$10 = Data_SortedMap_lookupMap(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), modns, Lib_Types__modules(top)); switch (sc$$10.tag) { case "Nothing": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top1 ) => (Lib_Types_MkTop(Data_SortedMap_updateMap(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), modns, Lib_Types_emptyModCtx(""), Lib_Types__modules(top1)), Lib_Types__imported(top1), Lib_Types__ns(top1), Lib_Types__defs(top1), Lib_Types__metaCtx(top1), Lib_Types__verbose(top1), Lib_Types__errors(top1), Lib_Types__ops(top1)))), ( _ ) => { const fn = Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude_joinBy("/", Prelude__$3A$3A_(null, _$$1, _$$3.h0)))(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("/")(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(_$$3.h1)(".newt"))); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_liftIO(null, Lib_Types_Prelude_HasIO$20Lib_Types_M)(null)(Node_readFile(fn)), ( $$sc ) => { switch ($$sc.tag) { case "Right": { const sc$$19 = Lib_Tokenizer_tokenise(fn, $$sc.h2); switch (sc$$19.tag) { case "Right": { const sc$$23 = Lib_Parser_Impl_partialParse(null, fn, Lib_Parser_parseModHeader, Lib_Types__ops(top), sc$$19.h2); switch (sc$$23.tag) { case "Right": { const _sc$$0 = sc$$23.h2; const _sc$$1 = _sc$$0.h2; const _sc$$2 = _sc$$0.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_log(1, ( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("scan imports for module ")(_sc$$1.h3))(""))), ( _1 ) => { const ns = Prelude_split(_sc$$1.h3, "."); const sc$$41 = Data_List1_unsnoc(null, Data_List1_split1(_sc$$1.h3, ".")); const sc$$46 = Prelude__$3D$3D_(null, Lib_Common_Prelude_Eq$20Lib_Common_QName)(_$$3)(Lib_Common_QN(sc$$41.h2, sc$$41.h3)); switch (sc$$46.tag) { case "True": { const sc$$47 = Lib_Parser_Impl_partialParse(null, fn, Lib_Parser_parseImports, _sc$$2.h2, _sc$$2.h3); switch (sc$$47.tag) { case "Right": { const _sc$$3 = sc$$47.h2; const _sc$$4 = _sc$$3.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, _sc$$3.h2, ( $$case ) => { const sc$$63 = Data_List1_unsnoc(null, Data_List1_split1($$case.h1, ".")); const qname = Lib_Common_QN(sc$$63.h2, sc$$63.h3); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, $$case.h1, _$$2), ( _2 ) => (Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("import loop ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(name)))(" -> "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)($$case.h1)))("")))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_processModule($$case.h0, _$$1, Prelude__$3A$3A_(null, name, _$$2), qname), ( _3 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_split($$case.h1, ".")))))); }), ( imported ) => { const imported1 = Prelude_snoc(null, imported, Main_primNS); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_liftIO(null, Lib_Types_Prelude_HasIO$20Lib_Types_M)(null)(Serialize_checksum($$sc.h2)), ( srcSum ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_moduleHash(srcSum, imported1), ( csum ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("module ")(_sc$$1.h3))("")), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Serialize_loadModule(_$$3, csum), ( $$sc1 ) => { switch ($$sc1.tag) { case "Nothing": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_log(1, ( _3 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("MODNS ")(Prelude_show(null, Prelude_Prelude_Show$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Show$20Prim_String))(modns)))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_parseDecls(fn, Lib_Types__ops(top2), _sc$$4.h3, Prelude_Lin(null)), ( $$sc2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_newIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types_MC(Data_SortedMap_EmptyMap(null, null), 0, Lib_Types_CheckAll)), ( freshMC ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top4 ) => (Lib_Types_MkTop(Lib_Types__modules(top4), imported1, modns, Data_SortedMap_EmptyMap(null, null), freshMC, Lib_Types__verbose(top4), Lib_Types__errors(top4), $$sc2.h3))), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_log(1, ( _5 ) => ("process Decls")), ( _5 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(( eta ) => (Main_processModule_tryProcessDecl(_$$0, _$$1, _$$2, _$$3, _$$3.h0, _$$3.h1, null, ns, eta)))(Lib_Elab_collectDecl($$sc2.h2)), ( _6 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Data_IORef_readIORef(null, null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Types__metaCtx(top4)), ( mc ) => { const mod = Lib_Types_MkModCtx(csum, Lib_Types__defs(top4), mc, Lib_Types__ops(top4)); const sc$$84 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Eq$20Prim_String))(_$$2)(Prelude_Nil(null)); switch (sc$$84.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Serialize_dumpModule(_$$3, $$sc.h2, mod), ( _7 ) => { const modules = Data_SortedMap_updateMap(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), modns, mod, Lib_Types__modules(top4)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top5 ) => (Lib_Types_MkTop(modules, Lib_Types__imported(top5), Lib_Types__ns(top5), Lib_Types__defs(top5), Lib_Types__metaCtx(top5), Lib_Types__verbose(top5), Lib_Types__errors(top5), Lib_Types__ops(top5)))), ( _8 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_liftIO(null, Lib_Types_Prelude_HasIO$20Lib_Types_M)(null)(Data_IORef_readIORef(null, null, Prelude_Prelude_HasIO$20Prelude_IO, Lib_Types__errors(top4))), ( $$sc3 ) => { switch ($$sc3.tag) { case "Nil": { const sc$$90 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Eq$20Prim_String))(_$$2)(Prelude_Nil(null)); switch (sc$$90.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit), ( _9 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc.h2))); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_logMetas(Prelude_reverse(null)(Data_SortedMap_listValues(null, null, Lib_Types__metas(mc)))), ( _9 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc.h2))); } break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for_(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, $$sc3, ( err ) => (Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Common_showError($$sc.h2, err)))), ( _9 ) => (Node_exitFailure(null, "Compile failed"))); } }))); }); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit), ( _7 ) => { const modules = Data_SortedMap_updateMap(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), modns, mod, Lib_Types__modules(top4)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top5 ) => (Lib_Types_MkTop(modules, Lib_Types__imported(top5), Lib_Types__ns(top5), Lib_Types__defs(top5), Lib_Types__metaCtx(top5), Lib_Types__verbose(top5), Lib_Types__errors(top5), Lib_Types__ops(top5)))), ( _8 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_liftIO(null, Lib_Types_Prelude_HasIO$20Lib_Types_M)(null)(Data_IORef_readIORef(null, null, Prelude_Prelude_HasIO$20Prelude_IO, Lib_Types__errors(top4))), ( $$sc3 ) => { switch ($$sc3.tag) { case "Nil": { const sc$$90 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Eq$20Prim_String))(_$$2)(Prelude_Nil(null)); switch (sc$$90.tag) { case "False": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit), ( _9 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc.h2))); case "True": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_logMetas(Prelude_reverse(null)(Data_SortedMap_listValues(null, null, Lib_Types__metas(mc)))), ( _9 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc.h2))); } break; } default: return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_for_(null, null, Prelude_Prelude_Traversable$20Prelude_List, Lib_Types_Prelude_Applicative$20Lib_Types_M, null, null, $$sc3, ( err ) => (Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Lib_Common_showError($$sc.h2, err)))), ( _9 ) => (Node_exitFailure(null, "Compile failed"))); } }))); }); } }))))))))))))))))))); case "Just": { const modules = Data_SortedMap_updateMap(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), modns, $$sc1.h1, Lib_Types__modules(top1)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top2 ) => { const ops = Data_SortedMap_foldMap(null, null, Prelude_Prelude_Ord$20Prim_String, ( eta ) => (( eta1 ) => (Prelude_const(null, null, eta, eta1))), Lib_Types__ops(top2), Data_SortedMap_toList(null, null, Lib_Types__ctxOps($$sc1.h1))); return Lib_Types_MkTop(modules, Lib_Types__imported(top2), Lib_Types__ns(top2), Lib_Types__defs(top2), Lib_Types__metaCtx(top2), Lib_Types__verbose(top2), Lib_Types__errors(top2), ops); }), ( _3 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)($$sc.h2))); break; } } }))))))))); }); break; } case "Left": { const _sc$$3 = sc$$47.h2; return Node_exitFailure(null, Lib_Common_showError($$sc.h2, _sc$$3.h2)); break; } } break; } default: return Node_exitFailure(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("ERROR at ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(_sc$$1.h2)))(": module name "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$1.h3)))(" doesn't match file name "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(fn)))("")); } }); break; } case "Left": { const _sc$$0 = sc$$23.h2; return Node_exitFailure(null, Lib_Common_showError($$sc.h2, _sc$$0.h2)); break; } } break; } case "Left": return Node_exitFailure(null, Lib_Common_showError($$sc.h2, sc$$19.h2)); } break; } case "Left": return Node_exitFailure(null, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("ERROR at ")(Prelude_show(null, Lib_Common_Prelude_Show$20Lib_Common_FC)(_$$0)))(": error reading "))(fn))(": "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)($$sc.h2)))("")); } }); }); default: return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(""); } })); -const Lib_Util_REC_getBaseDir_baseDir = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Lib.Util.getBaseDir.baseDir": { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_:<_": { const _sc$$1 = arg.h3; switch (_sc$$1.tag) { case "_:<_": { const sc$$11 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(_sc$$0.h2); switch (sc$$11.tag) { case "False": return { tag: "return", h0: Prelude_Left(null, null, "module path doesn't match directory") }; case "True": return { tag: "Lib.Util.getBaseDir.baseDir", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$1.h1, h4: _sc$$0.h1 }; } break; } case "Lin": return { tag: "return", h0: Prelude_Left(null, null, "module path doesn't match directory") }; } break; } case "Lin": return { tag: "return", h0: Prelude_Right(null, null, Prelude_joinBy("/", Prelude__$3C$3E$3E_(null, arg.h3, Prelude_Nil(null)))) }; } break; } } }; +const Lib_Util_REC_getBaseDir_baseDir = ( arg ) => { const _sc$$0 = arg.h4; switch (_sc$$0.tag) { case "_:<_": { const _sc$$1 = arg.h3; switch (_sc$$1.tag) { case "_:<_": { const sc$$11 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(_sc$$1.h2)(_sc$$0.h2); switch (sc$$11.tag) { case "False": return { tag: "return", h0: Prelude_Left(null, null, "module path doesn't match directory") }; case "True": return { tag: "Lib.Util.getBaseDir.baseDir", h0: arg.h0, h1: arg.h1, h2: arg.h2, h3: _sc$$1.h1, h4: _sc$$0.h1 }; } break; } case "Lin": return { tag: "return", h0: Prelude_Left(null, null, "module path doesn't match directory") }; } break; } case "Lin": return { tag: "return", h0: Prelude_Right(null, null, Prelude_joinBy("/", Prelude__$3C$3E$3E_(null, arg.h3, Prelude_Nil(null)))) }; } }; const Lib_Util_getBaseDir_baseDir = ( _, _1, _2, _$$3, _$$4 ) => (bouncer(Lib_Util_REC_getBaseDir_baseDir, { tag: "Lib.Util.getBaseDir.baseDir", h0: _, h1: _1, h2: _2, h3: _$$3, h4: _$$4 })); const Prelude_mapFst = ( a$$0, b$$1, c$$2, f$$3, _$$4, _$$5, _$$6 ) => (Prelude_bimap(null, _$$4)(null)(null)(null)(null)(_$$5)(( eta ) => (Prelude_id(null, eta)))(_$$6)); const Data_List1_splitFileName = ( _$$0 ) => { const sc$$1 = Data_List1_split1(_$$0, "."); const _sc$$0 = sc$$1.h2; switch (_sc$$0.tag) { case "Nil": return Prelude__$2C_(null, null, sc$$1.h1, ""); default: return Prelude_mapFst(null, null, null, null, Prelude_Prelude_Bifunctor$20Prelude__$D7_, ( eta ) => (Prelude_joinBy(".", eta)), Data_List1_unsnoc(null, sc$$1)); } }; const Lib_Util_getBaseDir = ( _$$0, _$$1 ) => { const sc$$3 = Data_List1_unsnoc(null, Data_List1_split1(_$$1, ".")); const parts = Data_List1_split1(_$$0, "/"); const sc$$9 = Data_List1_unsnoc(null, parts); const sc$$14 = Data_List1_splitFileName(sc$$9.h3); const parts1 = Data_List1_split1(_$$0, "/"); const sc$$20 = Data_List1_unsnoc(null, parts1); const sc$$25 = Data_List1_unsnoc(null, Data_List1_split1(_$$1, ".")); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_unless(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(sc$$25.h3)(sc$$14.h2), ( _ ) => (Lib_Types_error(null, Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("module name ")(sc$$25.h3))(" doesn't match "))(sc$$14.h2))("")))), ( _ ) => { const sc$$31 = Lib_Util_getBaseDir_baseDir(_$$0, _$$1, null, Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sc$$20.h2), Prelude__$3C$3E$3C_(null, Prelude_Lin(null), sc$$25.h2)); switch (sc$$31.tag) { case "Right": { let base; const sc$$35 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20Prim_String)(sc$$31.h2)(""); switch (sc$$35.tag) { case "False": { base = sc$$31.h2; break; } case "True": { base = "."; break; } } return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, base, Lib_Common_QN(sc$$25.h2, sc$$25.h3))); break; } case "Left": return Lib_Types_error(null, Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), sc$$31.h2); } }); }; const Main_processFile = ( _$$0 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("*** Process ")(_$$0))("")), ( _ ) => { const parts = Data_List1_split1(_$$0, "/"); const sc$$3 = Data_List1_unsnoc(null, parts); let dir; const sc$$8 = Prelude__$3D$3D_(null, Prelude_Prelude_Eq$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Eq$20Prim_String))(sc$$3.h2)(Prelude_Nil(null)); switch (sc$$8.tag) { case "False": { dir = Prelude_joinBy("/", sc$$3.h2); break; } case "True": { dir = "."; break; } } const sc$$9 = Data_List1_splitFileName(sc$$3.h3); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_log(1, ( _1 ) => (Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(dir)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(sc$$9.h2)))(" "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(sc$$9.h3)))(""))), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_liftIO(null, Lib_Types_Prelude_HasIO$20Lib_Types_M)(null)(Node_readFile(_$$0)), ( $$sc ) => { switch ($$sc.tag) { case "Right": { const sc$$20 = Lib_Tokenizer_tokenise(_$$0, $$sc.h2); switch (sc$$20.tag) { case "Right": { const sc$$24 = Lib_Parser_Impl_partialParse(null, _$$0, Lib_Parser_parseModHeader, Data_SortedMap_EmptyMap(null, null), sc$$20.h2); switch (sc$$24.tag) { case "Right": { const _sc$$0 = sc$$24.h2; const _sc$$1 = _sc$$0.h2; const _sc$$2 = _sc$$0.h3; return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Util_getBaseDir(_$$0, _sc$$1.h3), ( $$sc1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_processDecl(Main_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Int", Prelude_Nothing(null))), ( _2 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_processDecl(Main_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "String", Prelude_Nothing(null))), ( _3 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_ProcessDecl_processDecl(Main_primNS, Lib_Syntax_PType(Lib_Common_emptyFC, "Char", Prelude_Nothing(null))), ( _4 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top ) => { const modules = Data_SortedMap_updateMap(null, null, Prelude_Prelude_Ord$20$28Prelude_List$20BND$3A1$29(null, Prelude_Prelude_Ord$20Prim_String), Main_primNS, Lib_Types_MkModCtx("", Lib_Types__defs(top), Lib_Types_MC(Data_SortedMap_EmptyMap(null, null), 0, Lib_Types_CheckAll), Lib_Types__ops(top)), Lib_Types__modules(top)); return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top1 ) => (Lib_Types_MkTop(modules, Prelude__$3A$3A_(null, Main_primNS, Prelude_Nil(null)), Prelude_Nil(null), Data_SortedMap_EmptyMap(null, null), Lib_Types__metaCtx(top1), Lib_Types__verbose(top1), Lib_Types__errors(top1), Lib_Types__ops(top1)))), ( _5 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_processModule(Lib_Common_emptyFC, $$sc1.h2, Prelude_Nil(null), $$sc1.h3), ( src ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_getTop, ( top1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_showErrors(_$$0, src), ( _6 ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit))))))))); }))))))))); break; } case "Left": { const _sc$$0 = sc$$24.h2; return Lib_Types_throwError(null, _sc$$0.h2); break; } } break; } case "Left": return Lib_Types_throwError(null, sc$$20.h2); } break; } case "Left": return Lib_Types_error(null, Lib_Common_MkFC(_$$0, Prelude__$2C_(null, null, 0, 0)), Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("error reading ")(_$$0))(": "))(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)($$sc.h2)))("")); } }))); })); const Prelude_isSuffixOf = (pfx, s) => s.endsWith(pfx) ? Prelude_True : Prelude_False; -const Main_REC_cmdLine = ( arg ) => { switch (arg.tag) { case "return": return arg.h0; case "Main.cmdLine": { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1) { case "--top": return { tag: "Main.cmdLine", h0: _sc$$0.h2 }; case "-v": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top ) => (Lib_Types_MkTop(Lib_Types__modules(top), Lib_Types__imported(top), Lib_Types__ns(top), Lib_Types__defs(top), Lib_Types__metaCtx(top), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(Lib_Types__verbose(top))(1), Lib_Types__errors(top), Lib_Types__ops(top)))), ( _ ) => (Main_cmdLine(_sc$$0.h2))) }; case "-o": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2.tag) { case "_::_": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine(_sc$$2.h2), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Prelude__$3C$7C$3E_(null, Prelude_Prelude_Alternative$20Prelude_Maybe)(null)($$sc.h2)(Prelude_Just(null, _sc$$2.h1)), $$sc.h3)))) }; default: { const sc$$4 = Prelude_isSuffixOf(".newt", _sc$$0.h1); switch (sc$$4.tag) { case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine(_sc$$0.h2), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, $$sc.h2, Prelude__$3A$3A_(null, _sc$$0.h1, $$sc.h3))))) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Bad argument ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$0.h1)))("")) }; } break; } } break; } default: { const sc$$4 = Prelude_isSuffixOf(".newt", _sc$$0.h1); switch (sc$$4.tag) { case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine(_sc$$0.h2), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, $$sc.h2, Prelude__$3A$3A_(null, _sc$$0.h1, $$sc.h3))))) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Bad argument ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$0.h1)))("")) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Prelude_Nothing(null), Prelude_Nil(null))) }; } break; } } }; +const Main_REC_cmdLine = ( arg ) => { const _sc$$0 = arg.h0; switch (_sc$$0.tag) { case "_::_": { const _sc$$1 = _sc$$0.h1; switch (_sc$$1) { case "--top": return { tag: "Main.cmdLine", h0: _sc$$0.h2 }; case "-v": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Lib_Types_modifyTop(( top ) => (Lib_Types_MkTop(Lib_Types__modules(top), Lib_Types__imported(top), Lib_Types__ns(top), Lib_Types__defs(top), Lib_Types__metaCtx(top), Prelude__$2B_(null, Prelude_Prelude_Add$20Prim_Int)(Lib_Types__verbose(top))(1), Lib_Types__errors(top), Lib_Types__ops(top)))), ( _ ) => (Main_cmdLine(_sc$$0.h2))) }; case "-o": { const _sc$$2 = _sc$$0.h2; switch (_sc$$2.tag) { case "_::_": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine(_sc$$2.h2), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Prelude__$3C$7C$3E_(null, Prelude_Prelude_Alternative$20Prelude_Maybe)(null)($$sc.h2)(Prelude_Just(null, _sc$$2.h1)), $$sc.h3)))) }; default: { const sc$$4 = Prelude_isSuffixOf(".newt", _sc$$0.h1); switch (sc$$4.tag) { case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine(_sc$$0.h2), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, $$sc.h2, Prelude__$3A$3A_(null, _sc$$0.h1, $$sc.h3))))) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Bad argument ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$0.h1)))("")) }; } break; } } break; } default: { const sc$$4 = Prelude_isSuffixOf(".newt", _sc$$0.h1); switch (sc$$4.tag) { case "True": return { tag: "return", h0: Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine(_sc$$0.h2), ( $$sc ) => (Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, $$sc.h2, Prelude__$3A$3A_(null, _sc$$0.h1, $$sc.h3))))) }; default: return { tag: "return", h0: Lib_Types_error(null, Lib_Common_emptyFC, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("Bad argument ")(Prelude_show(null, Prelude_Prelude_Show$20Prim_String)(_sc$$0.h1)))("")) }; } break; } } break; } case "Nil": return { tag: "return", h0: Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude__$2C_(null, null, Prelude_Nothing(null), Prelude_Nil(null))) }; } }; const Main_cmdLine = ( _$$0 ) => (bouncer(Main_REC_cmdLine, { tag: "Main.cmdLine", h0: _$$0 })); const Node_getArgs = (w) => Prelude_MkIORes(null, Prelude_arrayToList(null, process.argv.slice(1)), w); const Main_main$27 = Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_liftIO(null, Lib_Types_Prelude_HasIO$20Lib_Types_M)(null)(Node_getArgs), ( $$sc ) => { switch ($$sc.tag) { case "_::_": return Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_cmdLine($$sc.h2), ( $$sc1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_traverse(null, Prelude_Prelude_Traversable$20Prelude_List)(null)(null)(null)(Lib_Types_Prelude_Applicative$20Lib_Types_M)(Main_processFile)($$sc1.h3), ( _ ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Prelude_when(null, Lib_Types_Prelude_Applicative$20Lib_Types_M, Prelude_elem(null, Prelude_Prelude_Eq$20Prim_String, "--top", $$sc.h2), ( _1 ) => (Prelude__$3E$3E$3D_(null, null, null, Lib_Types_Prelude_Monad$20Lib_Types_M, Main_jsonTopContext, ( json ) => (Prelude_putStrLn(null, Lib_Types_Prelude_HasIO$20Lib_Types_M, Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)(Prelude__$2B$2B_(null, Prelude_Prelude_Concat$20Prim_String)("TOP:")(Lib_Common_renderJson(json)))("")))))), ( _1 ) => { const _sc$$0 = $$sc1.h2; switch (_sc$$0.tag) { case "Nothing": return Prelude_pure(null, Lib_Types_Prelude_Monad$20Lib_Types_M)(null)(Prelude_MkUnit); case "Just": return Main_writeSource(_sc$$0.h1); } }))))); default: return Lib_Types_error(null, Lib_Common_emptyFC, "error reading args"); } }); diff --git a/newt-vscode/src/extension.ts b/newt-vscode/src/extension.ts index 737e9fb..0d55067 100644 --- a/newt-vscode/src/extension.ts +++ b/newt-vscode/src/extension.ts @@ -32,10 +32,12 @@ export function activate(context: vscode.ExtensionContext) { const config = vscode.workspace.getConfiguration("newt"); const cmd = config.get("path", "build/exec/newt"); const command = `${cmd} --top ${fileName}`; + let st = +new Date(); exec( command, { cwd, maxBuffer: 1024 * 1024 * 10 }, (err, stdout, _stderr) => { + console.log(`newt took ${+new Date() - st}`); // I think I ignored 1 here because I wanted failure to launch if (err && err.code !== 1) vscode.window.showErrorMessage(`newt error: ${err}`); diff --git a/src/Lib/TCO.newt b/src/Lib/TCO.newt index 9f1327c..a591892 100644 --- a/src/Lib/TCO.newt +++ b/src/Lib/TCO.newt @@ -65,7 +65,7 @@ doOptimize : List (QName × CExp) → M (List (QName × CExp)) doOptimize fns = do splitFuns <- traverse splitFun fns let nms = map fst fns - let alts = CConAlt "return" ("rval" :: Nil) (CBnd 0) :: map (mkAlt nms) splitFuns + let alts = map (mkAlt nms) splitFuns recName <- mkRecName nms let recfun = CFun ("arg" :: Nil) $ CCase (CBnd 0) alts wrapped <- traverse (mkWrap recName) fns diff --git a/src/Main.newt b/src/Main.newt index 366d6c0..ad115de 100644 --- a/src/Main.newt +++ b/src/Main.newt @@ -133,6 +133,7 @@ processModule importFC base stk qn@(QN ns nm) = do putStrLn "module \{modName}" top <- getTop + -- TODO we need a flag on this so `make newt3.js` properly tests self-compile (Nothing) <- loadModule qn csum | Just mod => do let modules = updateMap modns mod top.modules