From 27d864845d71591b7043180128499cd08d1af23b Mon Sep 17 00:00:00 2001 From: gnumonik Date: Fri, 24 May 2024 23:45:00 -0400 Subject: [PATCH] fixed a bug in the CST grouper, cleaned up old passing tests --- src/Language/PureScript/CST/Convert.hs | 41 +- src/Language/PureScript/Sugar/Names.hs | 41 +- tests/TestPurus.hs | 1 + tests/purus/passing/Misc/Lib.purs | 2 + .../passing/Misc/output/Lib/externs.cbor | Bin 0 -> 45567 bytes tests/purus/passing/Misc/output/Lib/index.cfn | 1 + .../passing/Misc/output/Lib/index.cfn.pretty | 584 ++++++++++++++++++ .../NonOrphanInstanceFunDepExtra/Lib.purs | 2 +- .../output/Lib/externs.cbor | Bin 0 -> 3541 bytes .../output/Lib/index.cfn | 1 + .../output/Lib/index.cfn.pretty | 13 + .../passing/NonOrphanInstanceMulti/Lib.purs | 2 +- .../output/Lib/externs.cbor | Bin 2671 -> 2491 bytes .../output/Lib/index.cfn | 2 +- .../output/Lib/index.cfn.pretty | 4 +- .../output/A/index.cfn.pretty | 4 +- .../output/B/index.cfn.pretty | 4 +- .../output/Main/index.cfn.pretty | 4 +- .../output/A/index.cfn.pretty | 4 +- .../output/Main/index.cfn.pretty | 8 +- .../output/A/index.cfn.pretty | 4 +- .../output/B/index.cfn.pretty | 4 +- .../output/Main/index.cfn.pretty | 11 +- tests/purus/passing/RedefinedFixity/M1.purs | 2 +- .../RedefinedFixity/output/M1/externs.cbor | Bin 1743 -> 2048 bytes .../RedefinedFixity/output/M1/index.cfn | 2 +- .../output/M1/index.cfn.pretty | 11 +- .../output/Main/index.cfn.pretty | 4 +- .../output/A/index.cfn.pretty | 4 +- .../output/B/index.cfn.pretty | 8 +- .../output/Main/index.cfn.pretty | 14 +- .../output/A/index.cfn.pretty | 8 +- .../output/Main/index.cfn.pretty | 18 +- .../output/A/index.cfn.pretty | 4 +- .../output/Main/index.cfn.pretty | 8 +- tests/purus/passing/RowSyntax/RowSyntax.purs | 12 + .../passing/RowSyntax/output/package.json | 1 + .../output/Main/index.cfn.pretty | 8 +- .../output/Test/index.cfn.pretty | 10 +- .../passing/TransitiveImport/Middle.purs | 2 +- .../purus/passing/TransitiveImport/Test.purs | 2 +- .../TransitiveImport/output/Main/index.cfn | 2 +- .../output/Main/index.cfn.pretty | 9 +- .../output/Middle/externs.cbor | Bin 1624 -> 1872 bytes .../TransitiveImport/output/Middle/index.cfn | 2 +- .../output/Middle/index.cfn.pretty | 13 +- .../TransitiveImport/output/Test/externs.cbor | Bin 3554 -> 4393 bytes .../TransitiveImport/output/Test/index.cfn | 2 +- .../output/Test/index.cfn.pretty | 28 +- 49 files changed, 796 insertions(+), 115 deletions(-) create mode 100644 tests/purus/passing/Misc/output/Lib/externs.cbor create mode 100644 tests/purus/passing/Misc/output/Lib/index.cfn create mode 100644 tests/purus/passing/Misc/output/Lib/index.cfn.pretty create mode 100644 tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/externs.cbor create mode 100644 tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn create mode 100644 tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn.pretty create mode 100644 tests/purus/passing/RowSyntax/RowSyntax.purs create mode 100644 tests/purus/passing/RowSyntax/output/package.json diff --git a/src/Language/PureScript/CST/Convert.hs b/src/Language/PureScript/CST/Convert.hs index e61377ed0..c3fff6b4d 100644 --- a/src/Language/PureScript/CST/Convert.hs +++ b/src/Language/PureScript/CST/Convert.hs @@ -46,6 +46,7 @@ import Data.Bitraversable (Bitraversable(..)) import Language.PureScript.Names (runProperName, coerceProperName) import Debug.Trace (trace) +import Data.List (partition) type ConvertM a = State (Map Text T.SourceType) a @@ -77,34 +78,42 @@ srcTokenRange = tokRange . tokAnn -} groupSignaturesAndDeclarations :: Show a => [Declaration a] -> [[Declaration a]] -groupSignaturesAndDeclarations decls = trace ("DECLARATIONS (grouping): " <> concatMap ((<> "\n\n") . show) decls) - $ foldr (go kindSigs typeSigs) [] decls' +groupSignaturesAndDeclarations [] = [] +groupSignaturesAndDeclarations decls = trace ("DECLARATIONS (grouping): \n" <> concatMap ((<> "\n\n") . show) decls) + $ go kindSigs typeSigs decls' where - -- I think this minimizes the # of traversals? ((kindSigs,typeSigs),decls') = foldr (\x acc -> case x of ksig@(DeclKindSignature _ _ (Labeled (nameValue -> nm) _ ty)) -> first (first $ M.insert nm ksig) acc tsig@(DeclSignature _ (Labeled (nameValue -> nm) _ _)) -> first (second (M.insert nm tsig)) acc other -> second (other:) acc ) ((M.empty,M.empty),[]) decls - go ksigs tsigs x acc = case x of + go ksigs tsigs [] = [] + go ksigs tsigs (d:ds) = case d of dataDecl@(DeclData _ (DataHead _ (nameValue -> nm) _ ) _) -> case M.lookup nm ksigs of - Just sigDecl -> [sigDecl,dataDecl] : acc - Nothing -> [dataDecl] : acc + Just sigDecl -> [sigDecl,dataDecl] : go ksigs tsigs ds + Nothing -> [dataDecl] : go ksigs tsigs ds tyDecl@(DeclType _ (DataHead _ (nameValue -> nm) _) _ _) -> case M.lookup nm ksigs of - Just sigDecl -> [sigDecl,tyDecl] : acc - Nothing -> [tyDecl] : acc + Just sigDecl -> [sigDecl,tyDecl] : go ksigs tsigs ds + Nothing -> [tyDecl] : go ksigs tsigs ds newtypeDecl@(DeclNewtype _ (DataHead _ (nameValue -> nm) _) _ _ _) -> case M.lookup nm ksigs of - Just sigDecl -> [sigDecl,newtypeDecl] : acc - Nothing -> [newtypeDecl] : acc + Just sigDecl -> [sigDecl,newtypeDecl] : go ksigs tsigs ds + Nothing -> [newtypeDecl] : go ksigs tsigs ds classDecl@(DeclClass _ (clsName -> nm) _) -> case M.lookup (coerceProperName $ nameValue nm) ksigs of - Just sigDecl -> [sigDecl,classDecl] : acc - Nothing -> [classDecl] : acc - valDecl@(DeclValue _ (valName -> nm)) -> case M.lookup (nameValue nm) tsigs of - Just sigDecl -> [sigDecl,valDecl] : acc - Nothing -> [valDecl] : acc + Just sigDecl -> [sigDecl,classDecl] : go ksigs tsigs ds + Nothing -> [classDecl] : go ksigs tsigs ds + valDecl@(DeclValue _ (valName -> nm)) -> + let (valDecls',ds') = partition (valDecWithName nm) ds + valDecls = valDecl : valDecls' + in case M.lookup (nameValue nm) tsigs of + Just sigDecl -> (sigDecl:valDecls) : go ksigs tsigs ds' + Nothing -> valDecls : go ksigs tsigs ds' -- I don't think anything else can have a type/kind sig but I could be wrong... - other -> [other] : acc + other -> [other] : go ksigs tsigs ds + where + valDecWithName :: Name Ident -> Declaration a -> Bool + valDecWithName nm (DeclValue _ (valName -> nm')) = nameValue nm == nameValue nm' + valDecWithName _ _ = False comment :: Comment a -> Maybe C.Comment diff --git a/src/Language/PureScript/Sugar/Names.hs b/src/Language/PureScript/Sugar/Names.hs index 753f7288c..8509547fa 100644 --- a/src/Language/PureScript/Sugar/Names.hs +++ b/src/Language/PureScript/Sugar/Names.hs @@ -356,12 +356,51 @@ renameInModule imports (Module modSS coms mn decls exps) = updateType (TypeOp ann@(ss, _) name) = TypeOp ann <$> updateTypeOpName name ss updateType (TypeConstructor ann@(ss, _) name) = TypeConstructor ann <$> updateTypeName name ss updateType (ConstrainedType ann c t) = ConstrainedType ann <$> updateInConstraint c <*> pure t - updateType (TypeVar ann nm ki) = TypeVar ann nm <$> updateType ki + updateType (TypeVar ann nm ki) = TypeVar ann nm <$> updateType' ki updateType t = return t updateInConstraint :: SourceConstraint -> m SourceConstraint updateInConstraint (Constraint ann@(ss, _) name ks ts info) = Constraint ann <$> updateClassName name ss <*> pure ks <*> pure ts <*> pure info + {- NOTE/REVIEW/HACK: + + Before our 'mandatory kinds' changes, `updateType` ignored TypeApps. + + Our changes add mandatory kind annotations to Type variables. If those annotations mention + unqualified type constructors (kind constructors) from `Prim`, we need to qualify them to + avoid typechecking errors. + + For example, if we have: + + ``` + aFunction4 :: forall (r :: Row Type). {a :: Int | r} -> Int + ``` + + Then `updateType` will ignore the `Row Type` annotation because there isn't a case branch + for TypeApps. + + Adding a TypeApp case above breaks everything - afaict it qualifies local names + that shouldn't need to be qualified such that they're qualified by the module + in which they occur. (Didn't look too closely into why because it broke every single test + module). + + We need this helper function to ensure that the above example does not have to be explicitly + annotated as + + ``` + aFunction4 :: forall (r :: Prim.Row Prim.Type). {a :: Int | r} -> Int + ``` + + THIS MIGHT BREAK SOMETHING. It appears to work with our existing tests, but those + are not comprehensive. + -} + updateType' :: SourceType -> m SourceType + updateType' = \case + TypeApp ann t1 t2 -> TypeApp ann <$> updateType' t1 <*> updateType' t2 + other -> updateType other + + + updateConstraints :: [SourceConstraint] -> m [SourceConstraint] updateConstraints = traverse $ \(Constraint ann@(pos, _) name ks ts info) -> Constraint ann diff --git a/tests/TestPurus.hs b/tests/TestPurus.hs index e3e8a7206..4eaa06b00 100644 --- a/tests/TestPurus.hs +++ b/tests/TestPurus.hs @@ -110,6 +110,7 @@ shouldPass = map (prefix ) paths "ResolvableScopeConflict", "ResolvableScopeConflict2", "ResolvableScopeConflict3", + -- "RowSyntax", "ShadowedModuleName", "TransitiveImport" ] diff --git a/tests/purus/passing/Misc/Lib.purs b/tests/purus/passing/Misc/Lib.purs index 2228170ba..a85389692 100644 --- a/tests/purus/passing/Misc/Lib.purs +++ b/tests/purus/passing/Misc/Lib.purs @@ -1,5 +1,7 @@ module Lib where +import Prim + {- Type Classes -} -- Single Param class Eq (a :: Type) where diff --git a/tests/purus/passing/Misc/output/Lib/externs.cbor b/tests/purus/passing/Misc/output/Lib/externs.cbor new file mode 100644 index 0000000000000000000000000000000000000000..96b02ed5dc6d3de7f389aec26377727146068b20 GIT binary patch literal 45567 zcmeHQ%Wqr9)xY%Dz^)QEZlk0lH;EM|{_^xovf?In+S;+5rl0d{lT{bKBCjRN6e&|w z9A`y6+Nv-RKtO>m2^i?cJ1_eO7%-q!7Xh?2AVB{>cNW6$oS8fK&Rp_J^BdA}8W8Y9 zlyv62&zw1PX6A3f)QMv!Cyt#QFJ3B7wwC{ACHV4%Ml|1;KR&lmU!Z@(`T25n>i7rc z`QmZ zA40FNDE*LLys+~7 zit2w@m|biw1y|m!Ro|~R$jH>T-sD1kE z`LGcZqpb1dL)&Mlt7kuqt~ZF0cr^K$8Kci$1D4LlmdFN3Msrfx8GSY8Wf;>T+w-Mz z!$*ZPp|W*P@KX4BSnwFUJgwJ!~ z>ptkNPA!D>QdD|3ocGGL>MBg1otvwaiy=FQSG1>jm!?Y}2FkU`na}1*VZ)33@?5QQ z<9%P;)dc#3uu+`$AwLQ~u16&w$WqZ$*5zn+u5rUR3RW5I1wDe7Z`nh5g~Q3Rm(18$ zF4pRl0{KY19MoaXNIn^$V}k{qnvS_w)Y*UPhu!J_`yMA8`%Ni%IGjW~ z1X)pzc-&oWAB7}PI57ku95SJOy+$KRC>D!ygaZ&xe$B!$d}~V2spMb3VE^J$Vowex z4*ir|_|VfP7U^Q0qfWY$E)I$3cv$g5$GFbZCROly^4(m{vQu$?_(EcW7#$+%jAB!9 z0t2XF^a;lE6H^Huks&7caVR$Ai{CwC8GX`2Od19e6Z^pEQ$34GqCU_J`(sfE1H-YP za$>~@Psj&XC_|$WaD__Jw0QgT zers97Yp|Ax#I?4&u5`MCL%8c|kRa`_8M^NWm>{j}v+eQ;>tip5BmJ-4{>z@!YZeRX z*PUq-P;JO@(u`APK1yb~2Gb;9J3|b-+NFD7Cp9_MHU`U{ox)N6vgaXt_3mz>>WoP~ z;$PFtF`*`HA(u*&>a_p*BblqUmijQs%PF2JF_J$w1057C@|%YS-s|VR?Pl{oT(eO9 zNbbfsM2qDiXsxUv+~@frDk}{gX!e%NOSD!Qj%%R+qqGbK8I2(TMycjJ)V<^k48mxw zsw^`Kz;oT0IW^=hMK5^Y= zn#2bde#9ZF%Al3i1O~9b6eisk?z_sIa<%_HmOU)Qv+9*wgkCHx_o+%7SI`n$?OO>= zi~&Wo!H$BPuMBn+9Q$5Ici2(r*D_pm*`6}WYl%y7eJ%OWQ-Liv9(0b{pFNz+RGayj zKO-hni8I75rMp2i$s7U7H3cd0K{Sa^O6{beZFG%tO7%jI z0Wt0f_u3q>YB9PH#kBzYbYPdLWAzpXivjs^a)Pi0(D4S-@y3&8VTnr`ZQkam?h5*H zUae8w=D4HWHGGsRhRy{!p+GE2L}%;u@CGsl=bwx=U0!Q0j3bnYT#iwxOdPXD)cRrB zq-QaaL638}>$p{hx}r|GX?gRRPGrOr`)R}zKQ$RI@fey$buv_qXcvyuv}M~FL)m9Y zTQb#k)BPALVN9H8E*8Qs0p*Q}7bM^jiwoH_@80}1CSHlL19L?R1d;oi#Po(qZkmDf zRP89QnB-TReG(VM#L-w>8JB6Y4P?#@BStXJUFzfFEz}6csRNt=|JRhNs^jp<2{(z3 zi&tap@_YpbbW~ziZjp9^yN>aOM0^xeWj@nTf9SY48M6)8ehLJb&A1qsm?lgu`Pjb3 zKGrXRK}@_Ei>sUMr$^+GdG8cQ_ETaMnfMfpwT);l%iS#R6wgzq#G$5YrmKlbF(WRD zGPTuJM5zsk<&=0f9x5XiS-^3mMjVReu*5x7C{VA|s&Wtoux@u7AnKfu=eQ=sc|@NY z$m+qzH98>l zb}VP4FLS$w5Hfcti>*2u+|pCNUtm^@mO(&dyv4Q5b-aXDv4C9}Me72sDB;s;WL z!NY(&0Kq%i=j5%l^Fa7N%~j~r;t0~mpTGdxIW6PsY5Ss(q|Ap5qzG2`bakuzAY;j` zE9Ty)gUNFNbfRRp%Wd8F$$u}={5}Vb+l9C8*glh6X`cyems2xkUV;k<>Q5~6KUq8d zJR#g6|$p3$k&{ zygD2Ss1@-dxo<@rM*^w_ddZ9(ctEYlSXdFq;y8AN;usW6D}rtVCE|~nbjS&buLE%l zrUV@e0N8Cyfq?kcm0BZynJVNX5T+S?mr+b>cVH68l-6gH=;HS($u+Ga6F21T|6KsP zreFGn0Hjy3%B^8lA+qkq9cS@)W6*dq_*BJf=72f}iSOK@4Ia86>?F_WlE0ok0r1#7 ze!Iw6DMwOhXhm;169;3DhJ&3X?92wQE7PYS+?OENxVQD1)gPr7Am-x`?gKWsNvqMV z{gz2oFGjeJcAaiL5!atEjZc%8ydeQ(e_t`TUy*nCzyMbH)z27@bsdAx0$P!)8jlU@ zMF`<=zzk=WGOUaE9SwJ7H2Ks=)9QoPkwA^d_sRp3UFPwYX{qW?f&#HR>ES;1WnLjO zTDy;(SxBGx0JdgVxgCF1Ttd5XSLI@LmD&moN@TJD$Z%B_EEu~N5Fq+hnF_Aj&BKXR z16#A2w}!!yUEk@O^P`{xJY0C`fu`OFgL9ITgj9^tTRxuKu zW^T$>Z;82cqDhrE4)F3dOXF+oCZ7Zb;Qwn@-q$@VPoeHm9zqB!f*H8cO(E^g4wyW597AhDLV% zSydUoCi5I(>tx-(cM{P3E!O=lT=%zF_qTe}{Vl0`Mh@sc1p?%DOX~hs@4DC6LEYy{ z3*v!w&(iAD{a)6+^<<>`eDzN*Mf|gCDMCFW=|0q&+~n;NJ()cD2pgd2+gx_L4c)dW z5*R?Px49m7+bZWIQ2`l7lG{-wL>Oj8pbTpmgi=1ff4kQ!M#XK3y3=ml&E+=75N0@I z(9)QVcR>Le-eIEdP}`6X3?RchEW!GJGu_2-x;+T%KJ>qsx_@;yN%cl7pqslqx85ZqamTMf9yb}omkxL7>SJ;D zY2WSgyS#Bg;2Gfp%|3Uz;!lhNTjd%AkyR(1GW+E4k-o|c=<6OA(eJVH-4&)_tl0xs z*ga0>?@@_CE%o3AhkIP2V0eF(5p>KvptKYSkysaEQ@tfG8UuP;XT7ZpIuh=#HwDw9 z-qu-f>tZa{+oT9Z9XYhW&Z1y=aN)Hsw`(;yi(bYgCz%a`4O8o~xIeKx32NMQ`Q1#^RKW5Z6i&?vSc zZw+VUfW}iGKx!NENWzAlbtVb~qL{}1Joa#Af275iZ^6>iK#;U}cG<9x6{ON~zglKP zHWzG&SCQFW16dQK+C765#aGQS>PKMKT)<~VK{8iBW9H1@!S#5Ix<6cV<@|Y>lSi|2 zjT_vbBV)_usO(Qm?F~RsT&lSeUv|4X4oc`PaL6d2$7O9W$f~NB% z6jS=Ev3zmpiO!}K*?`}W+e7`cu6$bKTQ6C(ljRaHr`+F5MtGlsEzK#w6GGxX7iR9; z&1R|nxb=G9m$eQ?4(LAx0zCGZ%(O6aeK~3@EDZPZh zSgVJX3Sc&yoMUZ@PtjClQ>uK^R)n-01i755V(iG(-J5c2d{eyM>>BmltaekLP+;tU z0cxP*CT6^Vu_<_Qv`I^FRl%5|Gj9#?z9@;aZNP^%<^BN=;{^oq%@@{fig!%DeH>4d z{5F;&f;@2gT;Ge zX13&EyDgz^S&q*X`9xMt@@rUh+d)(Aezqm&QWh5!S@Uu8BIrdvv|0S9UXm)foGgDb zAEm6*pBfoKB1J$Q4`f~cfxT}heJLML_T9a16GT8J-c+7N$h@D98rlbhvu4wvEa%+4{%TFpE@XT!dxYJ|R zQ9A3%c(-NV11|qRc)VX~b70ert}gB?MWN2;PU~PMAMMj0vUR|qPZ2bu>&(Y|-KB1{ ztN!A|W)N}7k>vz2h`75x#ib^QLB!?Ew`qj_LB!2W6}?5=-NT)le3FYcm@-S37ZxYk!=W4YIwf{qOio=|39Ja2ik*yo z;eOce>(=sgXILC| x\n _ -> 0\n"},{"BlockComment":"\nid :: forall a. a -> a\nid a = a\n\n-- Works with signature, throws without\n-- inner :: { getId :: forall a. a -> a}\ninner = {getId: id}\n"}]],"dataCtorFields":[[{"Ident":"dict"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[251,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,10]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"}]],"dataCtorName":"Ord$Dict"}]]},"decls":[{"annotation":{"meta":{"metaType":"IsTypeClassConstructor"},"sourceSpan":{"end":[32,27],"start":[31,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[32,27],"start":[31,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[31,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq2",{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"x","sourcePos":[0,0]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"b","kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq2",{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq2",{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"Eq2$Dict"},{"annotation":{"meta":{"metaType":"IsTypeClassConstructor"},"sourceSpan":{"end":[8,26],"start":[7,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[8,26],"start":[7,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[7,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq",{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"x","sourcePos":[0,0]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq",{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq",{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"Eq$Dict"},{"annotation":{"meta":{"metaType":"IsTypeClassConstructor"},"sourceSpan":{"end":[252,27],"start":[251,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[252,27],"start":[251,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[251,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[251,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,10]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"x","sourcePos":[0,0]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[251,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,10]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[251,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,10]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"Ord$Dict"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConInt","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[44,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[44,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConInt"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConInts","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[45,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[45,14]},[]],"contents":[{"annotation":[{"end":[45,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[45,14]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[45,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[45,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConInts"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConBoolean","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[46,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[46,16]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConBoolean"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConString","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[47,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[47,15]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConString"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConChar","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[48,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[48,13]},[]],"contents":[["Prim"],"Char"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConChar"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConNested","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConNested"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConQuantified","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,20]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[50,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,33]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,40]},[]],"contents":[{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,40]},[]],"contents":[{"annotation":[{"end":[50,44],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,42]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[50,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,40]},[]],"contents":{"kind":{"annotation":[{"end":[50,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,33]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConQuantified"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConConstrained","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,21]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[51,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,34]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[51,45],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,44]},[]],"contents":{"kind":{"annotation":[{"end":[51,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,34]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,49]},[]],"contents":[{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,49]},[]],"contents":[{"annotation":[{"end":[51,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,51]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[51,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,49]},[]],"contents":{"kind":{"annotation":[{"end":[51,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,34]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,54]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConConstrained"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConObject","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[52,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,15]},[]],"contents":[{"annotation":[{"end":[52,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,15]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,16]},[]],"contents":["objField",{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,28]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[52,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,31]},[]],"contents":[{"annotation":[{"end":[52,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,31]},[]],"tag":"REmpty"},{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,28]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConObject"},{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[53,68],"start":[43,1]}},"constructorName":"ConObjectQuantified","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[53,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,25]},[]],"contents":[{"annotation":[{"end":[53,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,25]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,26]},[]],"contents":["objFieldQ",{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,39]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[53,56],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,52]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":[{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":[{"annotation":[{"end":[53,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,61]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[53,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":{"kind":{"annotation":[{"end":[53,56],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,52]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,64]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},{"annotation":[{"end":[53,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,67]},[]],"contents":[{"annotation":[{"end":[53,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,67]},[]],"tag":"REmpty"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"TestBinderSum"},"identifier":"ConObjectQuantified"},{"annotation":{"meta":null,"sourceSpan":{"end":[110,42],"start":[110,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[110,42],"start":[110,1]}},"constructorName":"Constr1","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[110,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[110,21]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"ASum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"ASum"},"identifier":"Constr1"},{"annotation":{"meta":null,"sourceSpan":{"end":[110,42],"start":[110,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[110,42],"start":[110,1]}},"constructorName":"Constr2","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[110,42],"name":"tests/purus/passing/Misc/Lib.purs","start":[110,35]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"ASum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"ASum"},"identifier":"Constr2"},{"annotation":{"meta":null,"sourceSpan":{"end":[108,47],"start":[108,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[108,47],"start":[108,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[108,47],"start":[108,1]}},"kind":"Var","type":{"annotation":[{"end":[108,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,35]},[]],"contents":[{"annotation":[{"end":[108,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,35]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,36]},[]],"contents":["foo",{"annotation":[{"end":[108,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,43]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,46]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"x","sourcePos":[0,0]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,35]},[]],"contents":[{"annotation":[{"end":[108,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,35]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,36]},[]],"contents":["foo",{"annotation":[{"end":[108,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,43]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,46]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[108,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,35]},[]],"contents":[{"annotation":[{"end":[108,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,35]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,36]},[]],"contents":["foo",{"annotation":[{"end":[108,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,43]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[108,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[108,46]},[]],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"ANewTypeRec"},{"annotation":{"meta":null,"sourceSpan":{"end":[106,58],"start":[106,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[106,58],"start":[106,1]}},"constructorName":"ADataRec","fieldNames":["value0"],"kind":"Constructor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[106,58],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,26]},[]],"contents":[{"annotation":[{"end":[106,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,26]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[106,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,27]},[]],"contents":["hello",{"annotation":[{"end":[106,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,36]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[106,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,41]},[]],"contents":["world",{"annotation":[{"end":[106,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,50]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},{"annotation":[{"end":[106,58],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,57]},[]],"contents":[{"annotation":[{"end":[106,58],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,57]},[]],"tag":"REmpty"},{"annotation":[{"end":[106,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[106,36]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"ADataRec"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"typeName":"ADataRec"},"identifier":"ADataRec"},{"annotation":{"meta":null,"sourceSpan":{"end":[14,16],"start":[13,1]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[14,16],"start":[13,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq",{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"Eq$Dict","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[14,16],"start":[13,1]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[14,16],"start":[13,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq",{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["eq",{"annotation":{"meta":null,"sourceSpan":{"end":[14,16],"start":[14,3]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[14,16],"start":[14,3]}},"argument":"v1","body":{"annotation":{"meta":null,"sourceSpan":{"end":[14,16],"start":[14,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}}]]}},"kind":"App"},"identifier":"eqInt"},{"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[254,1]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[255,19],"start":[254,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Ord$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"Ord$Dict","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[254,1]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[254,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["Eq0",{"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[254,1]}},"argument":"$__unused","body":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}}],["compare",{"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[255,3]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[255,3]}},"argument":"v1","body":{"annotation":{"meta":null,"sourceSpan":{"end":[255,19],"start":[255,17]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":42}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[254,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[254,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}}]]}},"kind":"App"},"identifier":"ordInt"},{"annotation":{"meta":null,"sourceSpan":{"end":[35,17],"start":[34,1]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[35,17],"start":[34,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq2",{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,18]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq2$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[34,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,18]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"Eq2$Dict","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[35,17],"start":[34,1]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[35,17],"start":[34,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq2",{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,18]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["eq2",{"annotation":{"meta":null,"sourceSpan":{"end":[35,17],"start":[35,3]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[35,17],"start":[35,3]}},"argument":"v1","body":{"annotation":{"meta":null,"sourceSpan":{"end":[35,17],"start":[35,13]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,18]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,18]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}}]]}},"kind":"App"},"identifier":"eq2IntBoolean"},{"annotation":{"meta":null,"sourceSpan":{"end":[122,24],"start":[122,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[125,17],"start":[123,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[125,17],"start":[123,14]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[124,12],"start":[124,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[124,12],"start":[124,11]}},"binderType":"VarBinder","identifier":"y"}],"constructorName":{"identifier":"Constr1","moduleName":["Lib"]},"typeName":{"identifier":"ASum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[124,17],"start":[124,16]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[125,12],"start":[125,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[125,12],"start":[125,11]}},"binderType":"VarBinder","identifier":"z"}],"constructorName":{"identifier":"Constr2","moduleName":["Lib"]},"typeName":{"identifier":"ASum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[125,17],"start":[125,16]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[123,20],"start":[123,19]}},"kind":"Var","type":{"annotation":[{"end":[122,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[122,13]},[]],"contents":[["Lib"],"ASum"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[123,1]}}],"kind":"Case","type":{"annotation":[{"end":[122,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[122,21]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[122,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[122,13]},[]],"contents":[["Lib"],"ASum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[122,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[122,21]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"testasum"},{"annotation":{"meta":null,"sourceSpan":{"end":[165,19],"start":[165,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[166,33],"start":[166,15]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"addInteger","moduleName":["Builtin"]}},"annotation":{"meta":null,"sourceSpan":{"end":[166,35],"start":[166,15]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[166,35],"start":[166,34]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[166,37],"start":[166,15]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[166,37],"start":[166,36]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"identifier":"testBuiltin"},{"annotation":{"meta":null,"sourceSpan":{"end":[55,37],"start":[55,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[70,17],"start":[56,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[70,17],"start":[56,17]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[57,15],"start":[57,3]}},"binder":{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[57,14],"start":[57,6]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[57,14],"start":[57,13]}},"binderType":"LiteralBinder","literal":{"literalType":"IntLiteral","value":3}}],"constructorName":{"identifier":"ConInt","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}},"binderType":"NamedBinder","identifier":"a"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[57,21],"start":[57,20]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[58,11],"start":[58,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[58,11],"start":[58,10]}},"binderType":"VarBinder","identifier":"a"}],"constructorName":{"identifier":"ConInt","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[58,16],"start":[58,15]}},"kind":"Var","type":{"annotation":[{"end":[44,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[44,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"a","sourcePos":[58,10]}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[59,29],"start":[59,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[59,15],"start":[59,12]}},"binderType":"LiteralBinder","literal":{"literalType":"ArrayLiteral","value":[{"annotation":{"meta":null,"sourceSpan":{"end":[59,14],"start":[59,13]}},"binderType":"LiteralBinder","literal":{"literalType":"IntLiteral","value":3}}]}}],"constructorName":{"identifier":"ConInts","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[59,34],"start":[59,33]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[60,16],"start":[60,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[60,16],"start":[60,11]}},"binderType":"LiteralBinder","literal":{"literalType":"ArrayLiteral","value":[{"annotation":{"meta":null,"sourceSpan":{"end":[60,13],"start":[60,12]}},"binderType":"VarBinder","identifier":"a"},{"annotation":{"meta":null,"sourceSpan":{"end":[60,15],"start":[60,14]}},"binderType":"VarBinder","identifier":"b"}]}}],"constructorName":{"identifier":"ConInts","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[60,21],"start":[60,20]}},"kind":"Var","type":{"annotation":[{"end":[45,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[45,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"b","sourcePos":[60,14]}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[61,18],"start":[61,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[61,18],"start":[61,14]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"constructorName":{"identifier":"ConBoolean","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[61,24],"start":[61,23]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":4}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[62,15],"start":[62,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[62,15],"start":[62,11]}},"binderType":"LiteralBinder","literal":{"literalType":"CharLiteral","value":"\n"}}],"constructorName":{"identifier":"ConChar","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[62,20],"start":[62,19]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":5}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[63,23],"start":[63,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[63,22],"start":[63,14]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[63,22],"start":[63,21]}},"binderType":"LiteralBinder","literal":{"literalType":"IntLiteral","value":2}}],"constructorName":{"identifier":"ConInt","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"constructorName":{"identifier":"ConNested","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[63,28],"start":[63,27]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":6}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[64,18],"start":[64,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[64,18],"start":[64,17]}},"binderType":"VarBinder","identifier":"f"}],"constructorName":{"identifier":"ConQuantified","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[64,23],"start":[64,22]}},"kind":"Var","type":{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,20]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[50,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,33]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,40]},[]],"contents":[{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,40]},[]],"contents":[{"annotation":[{"end":[50,44],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,42]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[50,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,40]},[]],"contents":{"kind":{"annotation":[{"end":[50,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,33]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[50,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[50,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"f","sourcePos":[64,17]}},"annotation":{"meta":null,"sourceSpan":{"end":[64,31],"start":[64,22]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[64,31],"start":[64,24]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"hello"}},"kind":"App"},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[65,19],"start":[65,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[65,19],"start":[65,18]}},"binderType":"VarBinder","identifier":"f"}],"constructorName":{"identifier":"ConConstrained","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[65,24],"start":[65,23]}},"kind":"Var","type":{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,21]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[51,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,34]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[51,45],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,44]},[]],"contents":{"kind":{"annotation":[{"end":[51,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,34]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,49]},[]],"contents":[{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,49]},[]],"contents":[{"annotation":[{"end":[51,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,51]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[51,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,49]},[]],"contents":{"kind":{"annotation":[{"end":[51,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,34]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[51,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[51,54]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"f","sourcePos":[65,18]}},"annotation":{"meta":null,"sourceSpan":{"end":[65,26],"start":[65,23]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[65,26],"start":[65,23]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[65,26],"start":[65,25]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[66,18],"start":[66,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[66,18],"start":[66,13]}},"binderType":"VarBinder","identifier":"other"}],"constructorName":{"identifier":"ConNested","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[66,23],"start":[66,22]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":7}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[67,16],"start":[67,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[67,16],"start":[67,13]}},"binderType":"VarBinder","identifier":"obj"}],"constructorName":{"identifier":"ConObject","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[67,32],"start":[67,20]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[67,23],"start":[67,20]}},"kind":"Var","type":{"annotation":[{"end":[52,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,15]},[]],"contents":[{"annotation":[{"end":[52,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,15]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,16]},[]],"contents":["objField",{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,28]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[52,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,31]},[]],"contents":[{"annotation":[{"end":[52,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,31]},[]],"tag":"REmpty"},{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,28]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"obj","sourcePos":[67,13]}},"fieldName":"objField","kind":"Accessor","type":{"annotation":[{"end":[55,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[55,34]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[68,27],"start":[68,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[68,27],"start":[68,23]}},"binderType":"VarBinder","identifier":"objQ"}],"constructorName":{"identifier":"ConObjectQuantified","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[68,45],"start":[68,31]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[68,35],"start":[68,31]}},"kind":"Var","type":{"annotation":[{"end":[53,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,25]},[]],"contents":[{"annotation":[{"end":[53,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,25]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,26]},[]],"contents":["objFieldQ",{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,39]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[53,56],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,52]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":[{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":[{"annotation":[{"end":[53,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,61]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[53,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":{"kind":{"annotation":[{"end":[53,56],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,52]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,64]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},{"annotation":[{"end":[53,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,67]},[]],"contents":[{"annotation":[{"end":[53,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,67]},[]],"tag":"REmpty"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"objQ","sourcePos":[68,23]}},"fieldName":"objFieldQ","kind":"Accessor","type":{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":[{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,59]},[]],"contents":[{"annotation":[{"end":[53,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,61]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[53,67],"name":"tests/purus/passing/Misc/Lib.purs","start":[53,64]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"annotation":{"meta":null,"sourceSpan":{"end":[68,53],"start":[68,31]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[68,53],"start":[68,46]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"world"}},"kind":"App"},"isGuarded":false},{"binders":[{"annotation":{"meta":{"constructorType":"SumType","identifiers":["value0"],"metaType":"IsConstructor"},"sourceSpan":{"end":[69,26],"start":[69,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[69,26],"start":[69,13]}},"binderType":"LiteralBinder","literal":{"literalType":"ObjectLiteral","value":[["objField",{"annotation":{"meta":null,"sourceSpan":{"end":[69,25],"start":[69,24]}},"binderType":"VarBinder","identifier":"f"}]]}}],"constructorName":{"identifier":"ConObject","moduleName":["Lib"]},"typeName":{"identifier":"TestBinderSum","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[69,31],"start":[69,30]}},"kind":"Var","type":{"annotation":[{"end":[52,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[52,28]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"f","sourcePos":[69,24]}},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[70,4],"start":[70,3]}},"binderType":"NullBinder"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[70,17],"start":[70,16]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":0}},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[56,23],"start":[56,22]}},"kind":"Var","type":{"annotation":[{"end":[55,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[55,16]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[56,1]}}],"kind":"Case","type":{"annotation":[{"end":[55,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[55,34]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[55,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[55,16]},[]],"contents":[["Lib"],"TestBinderSum"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[55,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[55,34]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"testBinders"},{"bindType":"Rec","binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[162,38],"start":[162,1]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[163,18],"start":[163,1]}},"argument":"x","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[163,16],"start":[163,11]}},"kind":"Var","type":{"annotation":[{"end":[159,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,10]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[159,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":10,"type":{"annotation":[{"end":[159,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,30]},[]],"contents":[{"annotation":[{"end":[159,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,30]},[]],"contents":[{"annotation":[{"end":[159,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,32]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[159,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,30]},[]],"contents":{"kind":{"annotation":[{"end":[159,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[159,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,35]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"recF1","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[163,18],"start":[163,11]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[163,18],"start":[163,17]}},"kind":"Var","type":{"annotation":[{"end":[162,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,30]},[]],"contents":{"kind":{"annotation":[{"end":[162,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"},"value":{"identifier":"x","sourcePos":[163,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[162,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,10]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[162,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":8,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[162,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,30]},[]],"contents":{"kind":{"annotation":[{"end":[162,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[162,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,35]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"recG1"},{"annotation":{"meta":null,"sourceSpan":{"end":[159,38],"start":[159,1]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[160,18],"start":[160,1]}},"argument":"x","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[160,16],"start":[160,11]}},"kind":"Var","type":{"annotation":[{"end":[162,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,10]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[162,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":7,"type":{"annotation":[{"end":[162,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,30]},[]],"contents":[{"annotation":[{"end":[162,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,30]},[]],"contents":[{"annotation":[{"end":[162,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,32]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[162,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,30]},[]],"contents":{"kind":{"annotation":[{"end":[162,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[162,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[162,35]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"recG1","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[160,18],"start":[160,11]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[160,18],"start":[160,17]}},"kind":"Var","type":{"annotation":[{"end":[159,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,30]},[]],"contents":{"kind":{"annotation":[{"end":[159,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"},"value":{"identifier":"x","sourcePos":[160,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[159,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,10]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[159,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":11,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[159,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,30]},[]],"contents":{"kind":{"annotation":[{"end":[159,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,23]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[159,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[159,35]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"recF1"}]},{"annotation":{"meta":null,"sourceSpan":{"end":[203,63],"start":[203,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsWhere"},"sourceSpan":{"end":[204,33],"start":[204,13]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[206,39],"start":[206,5]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[207,13],"start":[207,5]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[207,13],"start":[207,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":5}},"kind":"Abs","type":{"annotation":[{"end":[206,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,11]},[]],"contents":{"identifier":"y","kind":{"annotation":[{"end":[206,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":15,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[206,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,31]},[]],"contents":{"kind":{"annotation":[{"end":[206,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"y"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[206,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,36]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"go"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[204,33],"start":[204,13]}},"kind":"Literal","type":{"annotation":[{"end":[203,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,14]},[]],"contents":[{"annotation":[{"end":[203,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,14]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,15]},[]],"contents":["bar",{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,22]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[203,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,35]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":13,"type":{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":[{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":[{"annotation":[{"end":[203,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,44]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,43],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":{"kind":{"annotation":[{"end":[203,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,35]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,47]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},{"annotation":[{"end":[203,62],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,52]},[]],"contents":["baz",{"annotation":[{"end":[203,62],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,59]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,62]},[]],"contents":[{"annotation":[{"end":[203,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,62]},[]],"tag":"REmpty"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["baz",{"annotation":{"meta":null,"sourceSpan":{"end":[204,32],"start":[204,29]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":100}}],["bar",{"annotation":{"meta":null,"sourceSpan":{"end":[204,21],"start":[204,19]}},"kind":"Var","type":{"annotation":[{"end":[206,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,11]},[]],"contents":{"identifier":"y","kind":{"annotation":[{"end":[206,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":15,"type":{"annotation":[{"end":[206,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,31]},[]],"contents":[{"annotation":[{"end":[206,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,31]},[]],"contents":[{"annotation":[{"end":[206,35],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,33]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[206,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,31]},[]],"contents":{"kind":{"annotation":[{"end":[206,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"y"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[206,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[206,36]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"go","sourcePos":[206,5]}}]]}},"kind":"Let"},"identifier":"polyInObj"},{"annotation":{"meta":null,"sourceSpan":{"end":[209,22],"start":[209,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[211,32],"start":[210,18]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[211,19],"start":[211,3]}},"binderType":"LiteralBinder","literal":{"literalType":"ObjectLiteral","value":[["bar",{"annotation":{"meta":null,"sourceSpan":{"end":[211,10],"start":[211,9]}},"binderType":"VarBinder","identifier":"f"}],["baz",{"annotation":{"meta":null,"sourceSpan":{"end":[211,18],"start":[211,17]}},"binderType":"NullBinder"}]]}}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[211,24],"start":[211,23]}},"kind":"Var","type":{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,22]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[203,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,35]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":13,"type":{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":[{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":[{"annotation":[{"end":[203,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,44]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,43],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":{"kind":{"annotation":[{"end":[203,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,35]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,47]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"f","sourcePos":[211,9]}},"annotation":{"meta":null,"sourceSpan":{"end":[211,32],"start":[211,23]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[211,32],"start":[211,25]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"hello"}},"kind":"App"},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[210,32],"start":[210,23]}},"kind":"Var","type":{"annotation":[{"end":[203,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,14]},[]],"contents":[{"annotation":[{"end":[203,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,14]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,15]},[]],"contents":["bar",{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,22]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[203,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,35]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":13,"type":{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":[{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":[{"annotation":[{"end":[203,46],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,44]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,43],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,42]},[]],"contents":{"kind":{"annotation":[{"end":[203,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,35]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,47]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},{"annotation":[{"end":[203,62],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,52]},[]],"contents":["baz",{"annotation":[{"end":[203,62],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,59]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[203,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,62]},[]],"contents":[{"annotation":[{"end":[203,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,62]},[]],"tag":"REmpty"},{"annotation":[{"end":[203,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[203,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"polyInObj","moduleName":["Lib"]}}],"kind":"Case","type":{"annotation":[{"end":[209,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[209,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"identifier":"polyInObjMatch"},{"annotation":{"meta":null,"sourceSpan":{"end":[170,26],"start":[170,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[171,34],"start":[171,1]}},"argument":"a","body":{"annotation":{"meta":null,"sourceSpan":{"end":[171,34],"start":[171,1]}},"argument":"b","body":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[171,30],"start":[171,12]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"addInteger","moduleName":["Builtin"]}},"annotation":{"meta":null,"sourceSpan":{"end":[171,32],"start":[171,12]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[171,32],"start":[171,31]}},"kind":"Var","type":{"annotation":[{"end":[170,12],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,9]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"a","sourcePos":[171,1]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[171,34],"start":[171,12]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[171,34],"start":[171,33]}},"kind":"Var","type":{"annotation":[{"end":[170,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"b","sourcePos":[171,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[170,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[170,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[170,12],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,9]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[170,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,16]},[]],"contents":[{"annotation":[{"end":[170,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,16]},[]],"contents":[{"annotation":[{"end":[170,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,20]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[170,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[170,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[170,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"plus"},{"annotation":{"meta":null,"sourceSpan":{"end":[92,19],"start":[92,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[103,7],"start":[94,3]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[97,41],"start":[97,8]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[98,15],"start":[98,8]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[98,15],"start":[98,14]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":5}},"kind":"Abs","type":{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,13]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[97,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,26]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":18,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[97,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,33]},[]],"contents":{"kind":{"annotation":[{"end":[97,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,26]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,38]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"g"},{"annotation":{"meta":null,"sourceSpan":{"end":[94,23],"start":[94,8]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[95,15],"start":[95,8]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[95,15],"start":[95,14]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":4}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[94,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"f"},{"annotation":{"meta":null,"sourceSpan":{"end":[102,18],"start":[100,8]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[102,18],"start":[100,12]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[100,29],"start":[100,16]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[100,21],"start":[100,20]}},"kind":"Var","type":{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,13]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[97,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,26]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":18,"type":{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,33]},[]],"contents":[{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,33]},[]],"contents":[{"annotation":[{"end":[97,37],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,35]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[97,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,33]},[]],"contents":{"kind":{"annotation":[{"end":[97,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,26]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,38]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"g","sourcePos":[97,8]}},"annotation":{"meta":null,"sourceSpan":{"end":[100,29],"start":[100,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[100,29],"start":[100,22]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"hello"}},"kind":"App"},"identifier":"i"},{"annotation":{"meta":null,"sourceSpan":{"end":[101,23],"start":[101,16]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[101,21],"start":[101,20]}},"kind":"Var","type":{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[{"annotation":[{"end":[94,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[94,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"f","sourcePos":[94,8]}},"annotation":{"meta":null,"sourceSpan":{"end":[101,23],"start":[101,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[101,23],"start":[101,22]}},"kind":"Var","type":{"annotation":[{"end":[97,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[97,38]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"i","sourcePos":[100,16]}},"kind":"App"},"identifier":"j"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[102,16],"start":[102,15]}},"kind":"Var","type":{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[{"annotation":[{"end":[94,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[94,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"f","sourcePos":[94,8]}},"annotation":{"meta":null,"sourceSpan":{"end":[102,18],"start":[102,15]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[102,18],"start":[102,17]}},"kind":"Var","type":{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"j","sourcePos":[101,16]}},"kind":"App"},"kind":"Let"},"identifier":"h"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[103,7],"start":[103,6]}},"kind":"Var","type":{"annotation":[{"end":[94,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[94,20]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"h","sourcePos":[100,8]}},"kind":"Let"},"identifier":"nestedBinds"},{"annotation":{"meta":null,"sourceSpan":{"end":[185,26],"start":[185,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsWhere"},"sourceSpan":{"end":[186,39],"start":[186,22]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[188,14],"start":[188,5]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[188,14],"start":[188,5]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[188,14],"start":[188,5]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[188,14],"start":[188,13]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[188,5]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"i"},{"annotation":{"meta":null,"sourceSpan":{"end":[193,13],"start":[191,5]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[192,8],"start":[192,7]}},"binderType":"LiteralBinder","literal":{"literalType":"IntLiteral","value":2}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[192,13],"start":[192,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[193,8],"start":[193,7]}},"binderType":"NullBinder"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[193,13],"start":[193,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":5}},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"v","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"h"},{"annotation":{"meta":null,"sourceSpan":{"end":[190,12],"start":[190,5]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[190,12],"start":[190,5]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[190,12],"start":[190,11]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":5}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"g"},{"annotation":{"meta":null,"sourceSpan":{"end":[189,12],"start":[189,5]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[189,12],"start":[189,5]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[189,12],"start":[189,11]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[189,5]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"f"}],"expression":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[186,23],"start":[186,22]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"i","sourcePos":[188,5]}},"annotation":{"meta":null,"sourceSpan":{"end":[186,37],"start":[186,22]}},"argument":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[186,26],"start":[186,25]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"f","sourcePos":[189,5]}},"annotation":{"meta":null,"sourceSpan":{"end":[186,36],"start":[186,25]}},"argument":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[186,29],"start":[186,28]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"g","sourcePos":[190,5]}},"annotation":{"meta":null,"sourceSpan":{"end":[186,35],"start":[186,28]}},"argument":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[186,32],"start":[186,31]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"h","sourcePos":[191,5]}},"annotation":{"meta":null,"sourceSpan":{"end":[186,34],"start":[186,31]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[186,34],"start":[186,33]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"kind":"App"},"kind":"App"},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[186,39],"start":[186,22]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[186,39],"start":[186,38]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":4}},"kind":"App"},"kind":"Let"},"identifier":"nestedApplications"},{"annotation":{"meta":null,"sourceSpan":{"end":[85,44],"start":[85,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[90,10],"start":[87,3]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[88,17],"start":[88,7]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[88,17],"start":[88,7]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[88,17],"start":[88,7]}},"argument":"y","body":{"annotation":{"meta":null,"sourceSpan":{"end":[88,17],"start":[88,16]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[88,7]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"h'"},{"annotation":{"meta":null,"sourceSpan":{"end":[89,25],"start":[89,7]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[89,25],"start":[89,7]}},"argument":"y","body":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[89,16],"start":[89,14]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"h'","sourcePos":[88,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[89,23],"start":[89,14]}},"argument":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[89,20],"start":[89,18]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"f'","sourcePos":[87,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[89,22],"start":[89,18]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[89,22],"start":[89,21]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[89,7]}},"kind":"App"},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[89,25],"start":[89,14]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[89,25],"start":[89,24]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"g'"},{"annotation":{"meta":null,"sourceSpan":{"end":[87,18],"start":[87,7]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[87,18],"start":[87,7]}},"argument":"x","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[87,16],"start":[87,14]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"g'","sourcePos":[89,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[87,18],"start":[87,14]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[87,18],"start":[87,17]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"f'"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[90,8],"start":[90,6]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"g'","sourcePos":[89,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[90,10],"start":[90,6]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[90,10],"start":[90,9]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}},"kind":"App"},"kind":"Let"},"identifier":"mutuallyRecursiveBindingGroupNoTypes"},{"annotation":{"meta":null,"sourceSpan":{"end":[74,37],"start":[74,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[82,9],"start":[76,3]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[78,29],"start":[78,7]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[79,16],"start":[79,7]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[79,16],"start":[79,7]}},"argument":"y","body":{"annotation":{"meta":null,"sourceSpan":{"end":[79,16],"start":[79,15]}},"kind":"Var","type":{"annotation":[{"end":[78,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[79,7]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[78,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,26]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[78,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[{"annotation":[{"end":[78,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,23]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[78,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,26]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"h"},{"annotation":{"meta":null,"sourceSpan":{"end":[80,22],"start":[80,7]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[81,22],"start":[81,7]}},"argument":"y","body":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[81,14],"start":[81,13]}},"kind":"Var","type":{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,12]},[]],"contents":[{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,12]},[]],"contents":[{"annotation":[{"end":[78,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[78,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[{"annotation":[{"end":[78,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,23]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[78,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[78,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[78,26]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"h","sourcePos":[78,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[81,20],"start":[81,13]}},"argument":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[81,17],"start":[81,16]}},"kind":"Var","type":{"annotation":[{"end":[76,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,12]},[]],"contents":[{"annotation":[{"end":[76,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,12]},[]],"contents":[{"annotation":[{"end":[76,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[76,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[76,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"f","sourcePos":[76,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[81,19],"start":[81,16]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[81,19],"start":[81,18]}},"kind":"Var","type":{"annotation":[{"end":[80,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[81,7]}},"kind":"App"},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[81,22],"start":[81,13]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[81,22],"start":[81,21]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[80,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"g"},{"annotation":{"meta":null,"sourceSpan":{"end":[76,22],"start":[76,7]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[77,16],"start":[77,7]}},"argument":"x","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[77,14],"start":[77,13]}},"kind":"Var","type":{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[{"annotation":[{"end":[80,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[80,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"g","sourcePos":[80,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[77,16],"start":[77,13]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[77,16],"start":[77,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[76,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[76,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[76,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"f"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[82,7],"start":[82,6]}},"kind":"Var","type":{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[{"annotation":[{"end":[80,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[80,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,12]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[80,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[80,19]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"g","sourcePos":[80,7]}},"annotation":{"meta":null,"sourceSpan":{"end":[82,9],"start":[82,6]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[82,9],"start":[82,8]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}},"kind":"App"},"kind":"Let"},"identifier":"mutuallyRecursiveBindingGroup"},{"annotation":{"meta":null,"sourceSpan":{"end":[10,27],"start":[10,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[11,15],"start":[11,1]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[11,15],"start":[11,1]}},"argument":"v1","body":{"annotation":{"meta":null,"sourceSpan":{"end":[11,15],"start":[11,13]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":42}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[10,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[10,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,10]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[{"annotation":[{"end":[10,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[10,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"minus"},{"annotation":{"meta":null,"sourceSpan":{"end":[225,33],"start":[225,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[226,9],"start":[226,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[226,9],"start":[226,8]}},"kind":"Var","type":{"annotation":[{"end":[225,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"},"value":{"identifier":"x","sourcePos":[226,1]}},"kind":"Abs","type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,7]},[]],"contents":{"identifier":"t","kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":19,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[225,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,32]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"id"},{"annotation":{"meta":null,"sourceSpan":{"end":[228,82],"start":[228,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[229,37],"start":[229,13]}},"kind":"Literal","type":{"annotation":[{"end":[228,82],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,14]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[228,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":22,"type":{"annotation":[{"end":[228,82],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,34]},[]],"contents":{"identifier":"b","kind":{"annotation":[{"end":[228,43],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":21,"type":{"annotation":[{"end":[228,82],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,46]},[]],"contents":[{"annotation":[{"end":[228,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,46]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[228,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,47]},[]],"contents":["getIdA",{"annotation":[{"end":[228,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,57]},[]],"contents":[{"annotation":[{"end":[228,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,57]},[]],"contents":[{"annotation":[{"end":[228,61],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,59]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[228,58],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,57]},[]],"contents":{"kind":{"annotation":[{"end":[228,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[228,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,62]},[]],"contents":{"kind":{"annotation":[{"end":[228,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[228,81],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,65]},[]],"contents":["getIdB",{"annotation":[{"end":[228,81],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,75]},[]],"contents":[{"annotation":[{"end":[228,81],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,75]},[]],"contents":[{"annotation":[{"end":[228,79],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,77]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[228,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,75]},[]],"contents":{"kind":{"annotation":[{"end":[228,43],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[228,81],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,80]},[]],"contents":{"kind":{"annotation":[{"end":[228,43],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[228,82],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,81]},[]],"contents":[{"annotation":[{"end":[228,82],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,81]},[]],"tag":"REmpty"},{"annotation":[{"end":[228,61],"name":"tests/purus/passing/Misc/Lib.purs","start":[228,59]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"literalType":"ObjectLiteral","value":[["getIdB",{"annotation":{"meta":null,"sourceSpan":{"end":[229,36],"start":[229,34]}},"kind":"Var","type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,7]},[]],"contents":{"identifier":"t","kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":19,"type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":[{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":[{"annotation":[{"end":[225,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,29]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[225,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,32]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"id","moduleName":["Lib"]}}],["getIdA",{"annotation":{"meta":null,"sourceSpan":{"end":[229,24],"start":[229,22]}},"kind":"Var","type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,7]},[]],"contents":{"identifier":"t","kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":19,"type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":[{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":[{"annotation":[{"end":[225,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,29]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[225,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,32]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"id","moduleName":["Lib"]}}]]}},"identifier":"objForall"},{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"argument":"dict","body":{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[32,27],"start":[32,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"binderType":"VarBinder","identifier":"v"}],"constructorName":{"identifier":"Eq2$Dict","moduleName":["Lib"]},"typeName":{"identifier":"Eq2$Dict","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq2",{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"v","sourcePos":[32,3]}},"fieldName":"eq2","kind":"Accessor","type":{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[32,27],"start":[32,3]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq2$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},"value":{"identifier":"dict","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":26,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"b","kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":25,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq2$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"visibility":"TypeVarVisible"},"tag":"ForAll"}},"identifier":"eq2"},{"annotation":{"meta":null,"sourceSpan":{"end":[37,19],"start":[37,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[38,14],"start":[38,11]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":26,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"b","kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":25,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq2$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":[{"annotation":[{"end":[32,14],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,12]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,10]},[]],"contents":{"kind":{"annotation":[{"end":[31,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,17]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":[{"annotation":[{"end":[32,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,17]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[32,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,15]},[]],"contents":{"kind":{"annotation":[{"end":[31,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[31,29]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[32,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[32,20]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq2","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[38,18],"start":[38,11]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq2$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[34,17],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,14]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[34,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[34,18]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eq2IntBoolean","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[38,18],"start":[38,11]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[38,18],"start":[38,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":101}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[38,24],"start":[38,11]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[38,24],"start":[38,19]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":false}},"kind":"App"},"identifier":"testEq2"},{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"argument":"dict","body":{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[8,26],"start":[8,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"binderType":"VarBinder","identifier":"v"}],"constructorName":{"identifier":"Eq$Dict","moduleName":["Lib"]},"typeName":{"identifier":"Eq$Dict","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["eq",{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"v","sourcePos":[8,3]}},"fieldName":"eq","kind":"Accessor","type":{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[8,26],"start":[8,3]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},"value":{"identifier":"dict","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"}},"identifier":"eq"},{"annotation":{"meta":null,"sourceSpan":{"end":[16,18],"start":[16,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[17,12],"start":[17,10]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[17,14],"start":[17,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[17,14],"start":[17,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[17,14],"start":[17,13]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[17,16],"start":[17,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[17,16],"start":[17,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"identifier":"testEq"},{"annotation":{"meta":null,"sourceSpan":{"end":[257,63],"start":[257,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"argument":"dictOrd","body":{"annotation":{"meta":null,"sourceSpan":{"end":[258,26],"start":[258,1]}},"argument":"a","body":{"annotation":{"meta":null,"sourceSpan":{"end":[258,26],"start":[258,1]}},"argument":"b","body":{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[258,22],"start":[258,20]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[258,24],"start":[258,20]}},"argument":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[258,24],"start":[258,20]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Ord$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,42],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,41]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},"value":{"identifier":"dictOrd","sourcePos":[0,0]}},"fieldName":"Eq0","kind":"Accessor","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[251,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,10]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"annotation":{"meta":null,"sourceSpan":{"end":[258,24],"start":[258,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[258,24],"start":[258,20]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[]}},"kind":"App"},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[258,24],"start":[258,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[258,24],"start":[258,23]}},"kind":"Var","type":{"annotation":[{"end":[257,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,46]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"},"value":{"identifier":"a","sourcePos":[258,1]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[258,26],"start":[258,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[258,26],"start":[258,25]}},"kind":"Var","type":{"annotation":[{"end":[257,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"},"value":{"identifier":"b","sourcePos":[258,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,56]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,46]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":[{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":[{"annotation":[{"end":[257,55],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,53]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,56]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,17]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":28,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Ord$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,42],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,41]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,46]},[]],"contents":[{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,46]},[]],"contents":[{"annotation":[{"end":[257,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,48]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,46]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":[{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":[{"annotation":[{"end":[257,55],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,53]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[257,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,51]},[]],"contents":{"kind":{"annotation":[{"end":[257,34],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,30]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[257,63],"name":"tests/purus/passing/Misc/Lib.purs","start":[257,56]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"testEqViaOrd"},{"annotation":{"meta":null,"sourceSpan":{"end":[20,26],"start":[20,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[23,12],"start":[21,1]}},"argument":"n","body":{"annotation":{"meta":null,"sourceSpan":{"end":[23,12],"start":[22,5]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[23,12],"start":[22,5]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[22,23],"start":[22,22]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[23,12],"start":[22,5]}},"binderType":"NullBinder"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[23,12],"start":[23,10]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":42}},"isGuarded":false}],"caseExpressions":[{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[22,13],"start":[22,11]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[22,16],"start":[22,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[22,16],"start":[22,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[22,9],"start":[22,8]}},"kind":"Var","type":{"annotation":[{"end":[20,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[20,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"n","sourcePos":[21,1]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[22,16],"start":[22,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[22,16],"start":[22,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":0}},"kind":"App"}],"kind":"Case","type":{"annotation":[{"end":[20,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[20,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[20,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[20,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[20,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[20,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"workingEven"},{"annotation":{"meta":null,"sourceSpan":{"end":[219,15],"start":[219,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[219,15],"start":[219,13]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"t90","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t90"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"literalType":"ArrayLiteral","value":[]}},"identifier":"emptyList"},{"annotation":{"meta":null,"sourceSpan":{"end":[216,52],"start":[216,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[217,16],"start":[217,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[217,16],"start":[217,1]}},"argument":"xs","body":{"annotation":{"meta":null,"sourceSpan":{"end":[217,16],"start":[217,13]}},"kind":"Literal","type":{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[{"annotation":[{"end":[216,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,51]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},"value":{"literalType":"ArrayLiteral","value":[{"annotation":{"meta":null,"sourceSpan":{"end":[217,15],"start":[217,14]}},"kind":"Var","type":{"annotation":[{"end":[216,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"},"value":{"identifier":"x","sourcePos":[217,1]}}]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,40]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[{"annotation":[{"end":[216,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,51]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,9]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":30,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,44],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,42]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,40]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[{"annotation":[{"end":[216,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,51]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"cons"},{"annotation":{"meta":null,"sourceSpan":{"end":[221,34],"start":[221,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[221,22],"start":[221,18]}},"kind":"Var","type":{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,9]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":30,"type":{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":[{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":[{"annotation":[{"end":[216,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,31]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,44],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,42]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,40]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[{"annotation":[{"end":[216,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,51]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"cons","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[221,24],"start":[221,18]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[221,24],"start":[221,23]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[221,34],"start":[221,18]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[221,34],"start":[221,25]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"t90","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t90"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"emptyList","moduleName":["Lib"]}},"kind":"App"},"identifier":"consEmptyList1"},{"annotation":{"meta":null,"sourceSpan":{"end":[223,40],"start":[223,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[223,22],"start":[223,18]}},"kind":"Var","type":{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,9]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":30,"type":{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":[{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":[{"annotation":[{"end":[216,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,31]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,30],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,29]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,44],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,42]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[{"annotation":[{"end":[216,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,34]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,41],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,40]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[{"annotation":[{"end":[216,50],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,45]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[216,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,51]},[]],"contents":{"kind":{"annotation":[{"end":[216,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[216,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"cons","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[223,30],"start":[223,18]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[223,30],"start":[223,23]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"hello"}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[223,40],"start":[223,18]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[223,40],"start":[223,31]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"t90","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t90"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"emptyList","moduleName":["Lib"]}},"kind":"App"},"identifier":"consEmptyList2"},{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"argument":"dict","body":{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[252,27],"start":[252,3]}},"binderType":"ConstructorBinder","binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"binderType":"VarBinder","identifier":"v"}],"constructorName":{"identifier":"Ord$Dict","moduleName":["Lib"]},"typeName":{"identifier":"Ord$Dict","moduleName":["Lib"]}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["compare",{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["Eq0",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"v","sourcePos":[252,3]}},"fieldName":"compare","kind":"Accessor","type":{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[252,27],"start":[252,3]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Ord$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},"value":{"identifier":"dict","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":34,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Ord$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":[{"annotation":[{"end":[252,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,14]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":[{"annotation":[{"end":[252,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[252,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,19]},[]],"contents":{"kind":{"annotation":[{"end":[251,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[251,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[252,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[252,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"}},"identifier":"compare"},{"bindType":"Rec","binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[25,25],"start":[25,1]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[28,34],"start":[26,1]}},"argument":"n","body":{"annotation":{"meta":null,"sourceSpan":{"end":[28,34],"start":[27,5]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[28,34],"start":[27,5]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[27,23],"start":[27,22]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[28,34],"start":[27,5]}},"binderType":"NullBinder"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[28,20],"start":[28,10]}},"kind":"Var","type":{"annotation":[{"end":[25,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,15]},[]],"contents":[{"annotation":[{"end":[25,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,15]},[]],"contents":[{"annotation":[{"end":[25,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,19]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[25,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[25,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,22]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"brokenEven","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[28,34],"start":[28,10]}},"argument":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[28,30],"start":[28,25]}},"kind":"Var","type":{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,10]},[]],"contents":[{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,10]},[]],"contents":[{"annotation":[{"end":[10,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,14]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[10,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,10]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[{"annotation":[{"end":[10,23],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,21]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[10,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,17]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[10,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[10,24]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"value":{"identifier":"minus","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[28,33],"start":[28,22]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[28,23],"start":[28,22]}},"kind":"Var","type":{"annotation":[{"end":[25,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"n","sourcePos":[26,1]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[28,33],"start":[28,22]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[28,33],"start":[28,32]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"kind":"App"},"isGuarded":false}],"caseExpressions":[{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[27,13],"start":[27,11]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[27,16],"start":[27,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[27,16],"start":[27,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[27,9],"start":[27,8]}},"kind":"Var","type":{"annotation":[{"end":[25,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"n","sourcePos":[26,1]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[27,16],"start":[27,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[27,16],"start":[27,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":0}},"kind":"App"}],"kind":"Case","type":{"annotation":[{"end":[25,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,22]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[25,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[25,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[25,22]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"brokenEven"}]},{"annotation":{"meta":null,"sourceSpan":{"end":[231,48],"start":[231,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[232,17],"start":[232,13]}},"kind":"Literal","type":{"annotation":[{"end":[231,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,14]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[231,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":35,"type":{"annotation":[{"end":[231,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,34]},[]],"contents":[{"annotation":[{"end":[231,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,34]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[231,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,41]},[]],"contents":[{"annotation":[{"end":[231,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,41]},[]],"contents":[{"annotation":[{"end":[231,45],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,43]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[231,42],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,41]},[]],"contents":{"kind":{"annotation":[{"end":[231,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[231,47],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,46]},[]],"contents":{"kind":{"annotation":[{"end":[231,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[231,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"literalType":"ArrayLiteral","value":[{"annotation":{"meta":null,"sourceSpan":{"end":[232,16],"start":[232,14]}},"kind":"Var","type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,7]},[]],"contents":{"identifier":"t","kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":19,"type":{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":[{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":[{"annotation":[{"end":[225,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,29]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[225,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,27]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[225,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,32]},[]],"contents":{"kind":{"annotation":[{"end":[225,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[225,20]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"t"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"id","moduleName":["Lib"]}}]}},"identifier":"arrForall"},{"annotation":{"meta":null,"sourceSpan":{"end":[197,22],"start":[197,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[198,17],"start":[198,9]}},"kind":"Literal","type":{"annotation":[{"end":[197,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,10]},[]],"contents":[{"annotation":[{"end":[197,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,10]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,11]},[]],"contents":["foo",{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,18]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[197,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,21]},[]],"contents":[{"annotation":[{"end":[197,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,21]},[]],"tag":"REmpty"},{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,18]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["foo",{"annotation":{"meta":null,"sourceSpan":{"end":[198,16],"start":[198,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}}]]}},"identifier":"anObj"},{"annotation":{"meta":null,"sourceSpan":{"end":[200,26],"start":[200,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[201,28],"start":[201,13]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[201,28],"start":[201,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[201,18],"start":[201,13]}},"kind":"Var","type":{"annotation":[{"end":[197,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,10]},[]],"contents":[{"annotation":[{"end":[197,11],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,10]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,11]},[]],"contents":["foo",{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,18]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[197,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,21]},[]],"contents":[{"annotation":[{"end":[197,22],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,21]},[]],"tag":"REmpty"},{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,18]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"anObj","moduleName":["Lib"]}},"identifier":"v"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[201,28],"start":[201,13]}},"copy":[],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["foo",{"annotation":[{"end":[197,21],"name":"tests/purus/passing/Misc/Lib.purs","start":[197,18]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[200,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,25]},[]],"contents":[{"annotation":[{"end":[200,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,25]},[]],"tag":"REmpty"},{"annotation":[{"end":[200,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"v","sourcePos":[201,1]}},"kind":"ObjectUpdate","type":{"annotation":[{"end":[200,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,14]},[]],"contents":[{"annotation":[{"end":[200,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,14]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[200,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,15]},[]],"contents":["foo",{"annotation":[{"end":[200,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,22]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[200,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,25]},[]],"contents":[{"annotation":[{"end":[200,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,25]},[]],"tag":"REmpty"},{"annotation":[{"end":[200,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[200,22]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"updates":[["foo",{"annotation":{"meta":null,"sourceSpan":{"end":[201,27],"start":[201,26]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":4}}]]},"kind":"Let"},"identifier":"objUpdate"},{"annotation":{"meta":null,"sourceSpan":{"end":[113,16],"start":[113,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[114,13],"start":[114,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"identifier":"anIntLit"},{"annotation":{"meta":null,"sourceSpan":{"end":[119,12],"start":[119,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[120,9],"start":[120,8]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"identifier":"aVal"},{"annotation":{"meta":null,"sourceSpan":{"end":[116,21],"start":[116,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[117,20],"start":[117,14]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"woop"}},"identifier":"aStringLit"},{"annotation":{"meta":null,"sourceSpan":{"end":[213,24],"start":[213,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[214,15],"start":[214,1]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[214,15],"start":[214,11]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[213,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,10]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[213,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,17]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"aPred"},{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,1]}},"argument":"w","body":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"argument":"v1","body":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[183,11]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":0}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"$23","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,1]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"$23"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"v"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[179,4],"start":[179,3]}},"binderType":"VarBinder","identifier":"y"},{"annotation":{"meta":null,"sourceSpan":{"end":[179,7],"start":[179,6]}},"binderType":"VarBinder","identifier":"z"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[179,12],"start":[179,10]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[179,14],"start":[179,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[179,14],"start":[179,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[179,14],"start":[179,13]}},"kind":"Var","type":{"annotation":[{"end":[177,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[179,3]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[179,16],"start":[179,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[179,16],"start":[179,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"},"identifier":"v1"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[180,15],"start":[180,10]}},"kind":"Var","type":{"annotation":[{"end":[213,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,10]},[]],"contents":[{"annotation":[{"end":[213,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,10]},[]],"contents":[{"annotation":[{"end":[213,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,14]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[213,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,10]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[213,24],"name":"tests/purus/passing/Misc/Lib.purs","start":[213,17]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"aPred","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[180,17],"start":[180,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[180,17],"start":[180,16]}},"kind":"Var","type":{"annotation":[{"end":[177,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[179,3]}},"kind":"App"},"identifier":"v2"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[181,12],"start":[181,10]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[181,14],"start":[181,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[181,14],"start":[181,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[181,14],"start":[181,13]}},"kind":"Var","type":{"annotation":[{"end":[177,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"z","sourcePos":[179,6]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[181,16],"start":[181,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[181,16],"start":[181,15]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":0}},"kind":"App"},"identifier":"v3"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[182,12],"start":[182,10]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[182,14],"start":[182,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[182,14],"start":[182,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[182,14],"start":[182,13]}},"kind":"Var","type":{"annotation":[{"end":[177,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"y","sourcePos":[179,3]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[182,26],"start":[182,10]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[182,26],"start":[182,15]}},"kind":"Var","type":{"annotation":[{"end":[92,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[92,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"nestedBinds","moduleName":["Lib"]}},"kind":"App"},"identifier":"v4"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[182,31],"start":[182,30]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binderType":"NullBinder"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"$23","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,1]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"$23"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"v","sourcePos":[0,0]}},"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"App"},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"identifier":"v4","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Let"},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binderType":"NullBinder"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"$23","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,1]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"$23"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"v","sourcePos":[0,0]}},"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"App"},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"identifier":"v3","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Let"},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binderType":"NullBinder"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"$23","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,1]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"$23"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"v","sourcePos":[0,0]}},"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"App"},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"identifier":"v2","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Let"},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"binderType":"NullBinder"}],"expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"$23","kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,1]},[]],"contents":{"kind":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"$23"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"v","sourcePos":[0,0]}},"annotation":{"meta":null,"sourceSpan":{"end":[183,12],"start":[178,19]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"kind":"App"},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[177,33],"start":[177,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"identifier":"v1","sourcePos":[0,0]}}],"kind":"Case","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Let"},"isGuarded":false}],"caseExpressions":[{"annotation":{"meta":null,"sourceSpan":{"end":[178,25],"start":[178,24]}},"kind":"Var","type":{"annotation":[{"end":[177,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"w","sourcePos":[178,1]}},{"annotation":{"meta":null,"sourceSpan":{"end":[178,28],"start":[178,27]}},"kind":"Var","type":{"annotation":[{"end":[177,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[178,1]}}],"kind":"Case","type":{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Let"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,23]},[]],"contents":[{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,23]},[]],"contents":[{"annotation":[{"end":[177,29],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,27]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[177,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,23]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[177,33],"name":"tests/purus/passing/Misc/Lib.purs","start":[177,30]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"guardedCase"},{"annotation":{"meta":null,"sourceSpan":{"end":[131,19],"start":[131,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[132,20],"start":[132,9]}},"kind":"Literal","type":{"annotation":[{"end":[131,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[131,10]},[]],"contents":[{"annotation":[{"end":[131,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[131,10]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[131,19],"name":"tests/purus/passing/Misc/Lib.purs","start":[131,16]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"literalType":"ArrayLiteral","value":[{"annotation":{"meta":null,"sourceSpan":{"end":[132,11],"start":[132,10]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},{"annotation":{"meta":null,"sourceSpan":{"end":[132,13],"start":[132,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},{"annotation":{"meta":null,"sourceSpan":{"end":[132,15],"start":[132,14]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":3}},{"annotation":{"meta":null,"sourceSpan":{"end":[132,17],"start":[132,16]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":4}},{"annotation":{"meta":null,"sourceSpan":{"end":[132,19],"start":[132,18]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":5}}]}},"identifier":"aList"},{"annotation":{"meta":null,"sourceSpan":{"end":[145,60],"start":[145,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[146,19],"start":[146,1]}},"argument":"r","body":{"annotation":{"meta":null,"sourceSpan":{"end":[146,19],"start":[146,16]}},"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[146,17],"start":[146,16]}},"kind":"Var","type":{"annotation":[{"end":[145,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,40],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,40]},[]],"contents":["a",{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,51]},[]],"contents":{"kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"var":"r"},"tag":"TypeVar"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"identifier":"r","sourcePos":[146,1]}},"fieldName":"a","kind":"Accessor","type":{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,57]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,15]},[]],"contents":{"identifier":"r","kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"skolem":37,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,40],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,40]},[]],"contents":["a",{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,51]},[]],"contents":{"kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"var":"r"},"tag":"TypeVar"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,57]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"aFunction4"},{"annotation":{"meta":null,"sourceSpan":{"end":[148,18],"start":[148,1]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[149,24],"start":[149,14]}},"kind":"Var","type":{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,15]},[]],"contents":{"identifier":"r","kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"skolem":37,"type":{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,56],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,54]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,40],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,40]},[]],"contents":["a",{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,51]},[]],"contents":{"kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"var":"r"},"tag":"TypeVar"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,57]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"aFunction4","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[149,31],"start":[149,14]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[149,31],"start":[149,25]}},"kind":"Literal","type":{"annotation":[{"end":[145,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,40],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,40]},[]],"contents":["a",{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["a",{"annotation":{"meta":null,"sourceSpan":{"end":[149,30],"start":[149,29]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}}]]}},"kind":"App"},"identifier":"aFunction5"},{"annotation":{"meta":null,"sourceSpan":{"end":[168,39],"start":[168,1]}},"bindType":"NonRec","expression":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[168,18],"start":[168,8]}},"kind":"Var","type":{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,15]},[]],"contents":{"identifier":"r","kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"skolem":37,"type":{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,56],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,54]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,40],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,40]},[]],"contents":["a",{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,52],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,51]},[]],"contents":{"kind":{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[{"annotation":[{"end":[145,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,28]},[]],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,36],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,32]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"var":"r"},"tag":"TypeVar"}],"tag":"RCons"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[145,60],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,57]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"aFunction4","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[168,39],"start":[168,8]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[168,39],"start":[168,19]}},"kind":"Literal","type":{"annotation":[{"end":[145,53],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[{"annotation":[{"end":[145,40],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,39]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,40]},[]],"contents":["a",{"annotation":[{"end":[145,48],"name":"tests/purus/passing/Misc/Lib.purs","start":[145,45]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":["b",{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"KindApp"}],"tag":"RCons"}],"tag":"RCons"}],"tag":"TypeApp"},"value":{"literalType":"ObjectLiteral","value":[["b",{"annotation":{"meta":null,"sourceSpan":{"end":[168,38],"start":[168,31]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},"value":{"literalType":"StringLiteral","value":"hello"}}],["a",{"annotation":{"meta":null,"sourceSpan":{"end":[168,26],"start":[168,23]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":101}}]]}},"kind":"App"},"identifier":"main"},{"annotation":{"meta":null,"sourceSpan":{"end":[142,25],"start":[142,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[143,41],"start":[143,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[143,41],"start":[143,16]}},"caseAlternatives":[{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[143,41],"start":[143,16]}},"binderType":"LiteralBinder","literal":{"literalType":"BooleanLiteral","value":true}}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[143,34],"start":[143,33]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":4}},"isGuarded":false},{"binders":[{"annotation":{"meta":null,"sourceSpan":{"end":[143,41],"start":[143,16]}},"binderType":"NullBinder"}],"expression":{"annotation":{"meta":null,"sourceSpan":{"end":[143,41],"start":[143,40]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}},"isGuarded":false}],"caseExpressions":[{"abstraction":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[143,22],"start":[143,20]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":27,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":[{"annotation":[{"end":[8,13],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,11]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,10],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,9]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":[{"annotation":[{"end":[8,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,16]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,15],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,14]},[]],"contents":{"kind":{"annotation":[{"end":[7,20],"name":"tests/purus/passing/Misc/Lib.purs","start":[7,16]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,26],"name":"tests/purus/passing/Misc/Lib.purs","start":[8,19]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarVisible"},"tag":"ForAll"},"value":{"identifier":"eq","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[143,24],"start":[143,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Lib"],"Eq$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[13,16],"name":"tests/purus/passing/Misc/Lib.purs","start":[13,13]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"eqInt","moduleName":["Lib"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[143,24],"start":[143,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[143,24],"start":[143,23]}},"kind":"Var","type":{"annotation":[{"end":[142,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[142,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[143,1]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[143,26],"start":[143,20]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[143,26],"start":[143,25]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":2}},"kind":"App"}],"kind":"Case","type":{"annotation":[{"end":[142,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[142,22]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[142,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[142,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[142,25],"name":"tests/purus/passing/Misc/Lib.purs","start":[142,22]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"identifier":"aFunction3"},{"annotation":{"meta":null,"sourceSpan":{"end":[139,31],"start":[139,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[140,21],"start":[140,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[140,21],"start":[140,16]}},"kind":"Literal","type":{"annotation":[{"end":[139,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,22]},[]],"contents":[{"annotation":[{"end":[139,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,22]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[139,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,28]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"literalType":"ArrayLiteral","value":[{"annotation":{"meta":null,"sourceSpan":{"end":[140,18],"start":[140,17]}},"kind":"Var","type":{"annotation":[{"end":[139,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"identifier":"x","sourcePos":[140,1]}},{"annotation":{"meta":null,"sourceSpan":{"end":[140,20],"start":[140,19]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":1}}]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[139,18],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,15]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[{"end":[139,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,22]},[]],"contents":[{"annotation":[{"end":[139,27],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,22]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[139,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[139,28]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"aFunction2"},{"annotation":{"meta":null,"sourceSpan":{"end":[136,76],"start":[136,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[137,24],"start":[137,1]}},"argument":"any","body":{"annotation":{"meta":null,"sourceSpan":{"end":[137,24],"start":[137,1]}},"argument":"f","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[137,20],"start":[137,19]}},"kind":"Var","type":{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,40]},[]],"contents":{"identifier":"y","kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":39,"type":{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,64],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,62]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,61],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":{"kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"y"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,65]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"f","sourcePos":[137,1]}},"annotation":{"meta":null,"sourceSpan":{"end":[137,24],"start":[137,19]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[137,24],"start":[137,21]}},"kind":"Var","type":{"annotation":[{"end":[136,35],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,34]},[]],"contents":{"kind":{"annotation":[{"end":[136,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"},"value":{"identifier":"any","sourcePos":[137,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,40]},[]],"contents":{"identifier":"y","kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":39,"type":{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,64],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,62]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,61],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":{"kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"y"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,65]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,73]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,14]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[136,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":40,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,35],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,34]},[]],"contents":{"kind":{"annotation":[{"end":[136,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,39]},[]],"contents":[{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,39]},[]],"contents":[{"annotation":[{"end":[136,72],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,70]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,40]},[]],"contents":{"identifier":"y","kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":39,"type":{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,64],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,62]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,61],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":{"kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"y"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,65]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,73]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"aFunction"},{"annotation":{"meta":null,"sourceSpan":{"end":[151,18],"start":[151,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsWhere"},"sourceSpan":{"end":[152,29],"start":[152,14]}},"binds":[{"annotation":{"meta":null,"sourceSpan":{"end":[154,39],"start":[154,5]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[155,14],"start":[155,5]}},"argument":"v","body":{"annotation":{"meta":null,"sourceSpan":{"end":[155,14],"start":[155,12]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"},"value":{"literalType":"IntLiteral","value":10}},"kind":"Abs","type":{"annotation":[{"end":[154,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,11]},[]],"contents":{"identifier":"z","kind":{"annotation":[{"end":[154,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":43,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[154,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,31]},[]],"contents":{"kind":{"annotation":[{"end":[154,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"z"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[154,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,36]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"go"}],"expression":{"abstraction":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[152,23],"start":[152,14]}},"kind":"Var","type":{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,14]},[]],"contents":{"identifier":"x","kind":{"annotation":[{"end":[136,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":40,"type":{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,34]},[]],"contents":[{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,34]},[]],"contents":[{"annotation":[{"end":[136,38],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,36]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,35],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,34]},[]],"contents":{"kind":{"annotation":[{"end":[136,31],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"x"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,39]},[]],"contents":[{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,39]},[]],"contents":[{"annotation":[{"end":[136,72],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,70]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,40]},[]],"contents":{"identifier":"y","kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":39,"type":{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":[{"annotation":[{"end":[136,64],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,62]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[136,61],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,60]},[]],"contents":{"kind":{"annotation":[{"end":[136,57],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,53]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"y"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[136,68],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,65]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[136,76],"name":"tests/purus/passing/Misc/Lib.purs","start":[136,73]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"aFunction","moduleName":["Lib"]}},"annotation":{"meta":null,"sourceSpan":{"end":[152,26],"start":[152,14]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[152,26],"start":[152,24]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":119,"tag":"TUnknown"}],"tag":"TypeApp"},"value":{"literalType":"ArrayLiteral","value":[]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[152,29],"start":[152,14]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[152,29],"start":[152,27]}},"kind":"Var","type":{"annotation":[{"end":[154,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,11]},[]],"contents":{"identifier":"z","kind":{"annotation":[{"end":[154,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":43,"type":{"annotation":[{"end":[154,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,31]},[]],"contents":[{"annotation":[{"end":[154,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,31]},[]],"contents":[{"annotation":[{"end":[154,35],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,33]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[154,32],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,31]},[]],"contents":{"kind":{"annotation":[{"end":[154,28],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"z"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[154,39],"name":"tests/purus/passing/Misc/Lib.purs","start":[154,36]},[]],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"go","sourcePos":[154,5]}},"kind":"App"},"kind":"Let"},"identifier":"aFunction6"},{"annotation":{"meta":null,"sourceSpan":{"end":[128,17],"start":[128,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[129,13],"start":[129,9]}},"kind":"Literal","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"value":{"literalType":"BooleanLiteral","value":true}},"identifier":"aBool"}],"exports":["compare","eq","eq2","minus","testEq","workingEven","brokenEven","testEq2","ConInt","ConInts","ConBoolean","ConString","ConChar","ConNested","ConQuantified","ConConstrained","ConObject","ConObjectQuantified","testBinders","mutuallyRecursiveBindingGroup","mutuallyRecursiveBindingGroupNoTypes","nestedBinds","ADataRec","ANewTypeRec","Constr1","Constr2","anIntLit","aStringLit","aVal","testasum","aBool","aList","aFunction","aFunction2","aFunction3","aFunction4","aFunction5","aFunction6","recF1","recG1","testBuiltin","main","plus","guardedCase","nestedApplications","anObj","objUpdate","polyInObj","polyInObjMatch","aPred","cons","emptyList","consEmptyList1","consEmptyList2","id","objForall","arrForall","testEqViaOrd","eqInt","eq2IntBoolean","ordInt"],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[258,26],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[258,26],"start":[1,1]}},"moduleName":["Lib"]},{"annotation":{"meta":null,"sourceSpan":{"end":[3,12],"start":[3,1]}},"moduleName":["Prim"]}],"moduleName":["Lib"],"modulePath":"tests/purus/passing/Misc/Lib.purs","reExports":{},"sourceSpan":{"end":[258,26],"start":[1,1]}} \ No newline at end of file diff --git a/tests/purus/passing/Misc/output/Lib/index.cfn.pretty b/tests/purus/passing/Misc/output/Lib/index.cfn.pretty new file mode 100644 index 000000000..f80ff1ada --- /dev/null +++ b/tests/purus/passing/Misc/output/Lib/index.cfn.pretty @@ -0,0 +1,584 @@ +Lib (tests/purus/passing/Misc/Lib.purs) +Imported Modules: + Builtin, + Lib, + Prim +Exports: + compare, + eq, + eq2, + minus, + testEq, + workingEven, + brokenEven, + testEq2, + ConInt, + ConInts, + ConBoolean, + ConString, + ConChar, + ConNested, + ConQuantified, + ConConstrained, + ConObject, + ConObjectQuantified, + testBinders, + mutuallyRecursiveBindingGroup, + mutuallyRecursiveBindingGroupNoTypes, + nestedBinds, + ADataRec, + ANewTypeRec, + Constr1, + Constr2, + anIntLit, + aStringLit, + aVal, + testasum, + aBool, + aList, + aFunction, + aFunction2, + aFunction3, + aFunction4, + aFunction5, + aFunction6, + recF1, + recG1, + testBuiltin, + main, + plus, + guardedCase, + nestedApplications, + anObj, + objUpdate, + polyInObj, + polyInObjMatch, + aPred, + cons, + emptyList, + consEmptyList1, + consEmptyList2, + id, + objForall, + arrForall, + testEqViaOrd, + eqInt, + eq2IntBoolean, + ordInt +Re-Exports: + +Foreign: + +Declarations: +Eq2$Dict :: forall (a :: Prim.Type) (b :: Prim.Type). { eq2 :: (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean } -> { eq2 :: (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean } +Eq2$Dict = + \(x: { eq2 :: (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean }) -> + (x: { eq2 :: (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean }) + +Eq$Dict :: forall (a :: Prim.Type). { eq :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean } -> { eq :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean } +Eq$Dict = + \(x: { eq :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean }) -> + (x: { eq :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean }) + +Ord$Dict :: forall (a :: Prim.Type). { compare :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Int, Eq0 :: Prim.Record {} -> Lib.Eq$Dict (a :: Prim.Type) } -> { compare :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Int, Eq0 :: Prim.Record {} -> Lib.Eq$Dict (a :: Prim.Type) } +Ord$Dict = + \(x: { + compare :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Int, + Eq0 :: Prim.Record {} -> Lib.Eq$Dict (a :: Prim.Type) + }) -> + (x: { + compare :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Int, + Eq0 :: Prim.Record {} -> Lib.Eq$Dict (a :: Prim.Type) + }) + +ConInt :: Prim.Int -> Lib.TestBinderSum +ConInt = ConInt + +ConInts :: Array (Prim.Int) -> Lib.TestBinderSum +ConInts = ConInts + +ConBoolean :: Prim.Boolean -> Lib.TestBinderSum +ConBoolean = ConBoolean + +ConString :: Prim.String -> Lib.TestBinderSum +ConString = ConString + +ConChar :: Prim.Char -> Lib.TestBinderSum +ConChar = ConChar + +ConNested :: Lib.TestBinderSum -> Lib.TestBinderSum +ConNested = ConNested + +ConQuantified :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int -> Lib.TestBinderSum +ConQuantified = ConQuantified + +ConConstrained :: forall (x :: Prim.Type). Lib.Eq$Dict (x :: Prim.Type) -> (x :: Prim.Type) -> Prim.Int -> Lib.TestBinderSum +ConConstrained = ConConstrained + +ConObject :: { objField :: Prim.Int } -> Lib.TestBinderSum +ConObject = ConObject + +ConObjectQuantified :: { objFieldQ :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int } -> Lib.TestBinderSum +ConObjectQuantified = ConObjectQuantified + +Constr1 :: Prim.Int -> Lib.ASum +Constr1 = Constr1 + +Constr2 :: Prim.Boolean -> Lib.ASum +Constr2 = Constr2 + +ANewTypeRec :: { foo :: Prim.Int } -> { foo :: Prim.Int } +ANewTypeRec = \(x: { foo :: Prim.Int }) -> (x: { foo :: Prim.Int }) + +ADataRec :: { hello :: Prim.Int, world :: Prim.Boolean } -> Lib.ADataRec +ADataRec = ADataRec + +eqInt :: Lib.Eq$Dict Prim.Int +eqInt = + (Eq$Dict: { eq :: Prim.Int -> Prim.Int -> Prim.Boolean } -> + Lib.Eq$Dict Prim.Int) + ({ + eq: \(v: Prim.Int) -> + \(v1: Prim.Int) -> + (true: Prim.Boolean) + }: { eq :: Prim.Int -> Prim.Int -> Prim.Boolean }) + +ordInt :: Lib.Ord$Dict Prim.Int +ordInt = + (Ord$Dict: { + compare :: Prim.Int -> Prim.Int -> Prim.Int, + Eq0 :: Prim.Record {}@Prim.Type -> Lib.Eq$Dict Prim.Int + } -> + Lib.Ord$Dict Prim.Int) + ({ + Eq0: \($__unused: Prim.Record {}@Prim.Type) -> + (eqInt: Lib.Eq$Dict Prim.Int), + compare: \(v: Prim.Int) -> + \(v1: Prim.Int) -> + (42: Prim.Int) + }: { + compare :: Prim.Int -> Prim.Int -> Prim.Int, + Eq0 :: Prim.Record {}@Prim.Type -> Lib.Eq$Dict Prim.Int + }) + +eq2IntBoolean :: (Lib.Eq2$Dict Prim.Int Prim.Boolean) +eq2IntBoolean = + (Eq2$Dict: { eq2 :: Prim.Int -> Prim.Boolean -> Prim.Boolean } -> + (Lib.Eq2$Dict Prim.Int Prim.Boolean)) + ({ + eq2: \(v: Prim.Int) -> + \(v1: Prim.Boolean) -> + (true: Prim.Boolean) + }: { eq2 :: Prim.Int -> Prim.Boolean -> Prim.Boolean }) + +testasum :: Lib.ASum -> Prim.Int +testasum = + \(x: Lib.ASum) -> + case (x: Lib.ASum) of + Constr1 y -> (1: Prim.Int) + Constr2 z -> (2: Prim.Int) + +testBuiltin :: Prim.Int +testBuiltin = + (addInteger: Prim.Int -> Prim.Int -> Prim.Int) (1: Prim.Int) (2: Prim.Int) + +testBinders :: Lib.TestBinderSum -> Prim.Int +testBinders = + \(x: Lib.TestBinderSum) -> + case (x: Lib.TestBinderSum) of + a@ConInt 3 -> (1: Prim.Int) + ConInt a -> (a: Prim.Int) + ConInts [3] -> (2: Prim.Int) + ConInts [a, b] -> (b: Prim.Int) + ConBoolean true -> (4: Prim.Int) + ConChar '\n' -> (5: Prim.Int) + ConNested ConInt 2 -> (6: Prim.Int) + ConQuantified f -> + (f: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int) + ("hello": Prim.String) + ConConstrained f -> + (f: forall (x :: Prim.Type). Lib.Eq$Dict (x :: Prim.Type) -> + (x :: Prim.Type) -> Prim.Int) + (eqInt: Lib.Eq$Dict Prim.Int) + (2: Prim.Int) + ConNested other -> (7: Prim.Int) + ConObject obj -> (obj: { objField :: Prim.Int }).objField + ConObjectQuantified objQ -> + ((objQ: { + objFieldQ :: forall (x :: Prim.Type). (x :: Prim.Type) -> + Prim.Int + }) + .objFieldQ) + ("world": Prim.String) + ConObject { objField: f } -> (f: Prim.Int) + _ -> (0: Prim.Int) + +recG1 :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int +recG1 = + \(x: (x :: Prim.Type)) -> + (recF1: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int) + (x: (x :: Prim.Type)) +recF1 :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int +recF1 = + \(x: (x :: Prim.Type)) -> + (recG1: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int) + (x: (x :: Prim.Type)) + +polyInObj :: { bar :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int, baz :: Prim.Int } +polyInObj = + let + go :: forall (y :: Prim.Type). (y :: Prim.Type) -> Prim.Int + go = \(v: (y :: Prim.Type)) -> (5: Prim.Int) + in ({ + baz: (100: Prim.Int), + bar: (go: forall (y :: Prim.Type). (y :: Prim.Type) -> Prim.Int) + }: { + bar :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int, + baz :: Prim.Int + }) + +polyInObjMatch :: Prim.Int +polyInObjMatch = + case (polyInObj: { bar :: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int, baz :: Prim.Int }) of + { bar: f, baz: _ } -> + (f: forall (x :: Prim.Type). (x :: Prim.Type) -> Prim.Int) + ("hello": Prim.String) + +plus :: Prim.Int -> Prim.Int -> Prim.Int +plus = + \(a: Prim.Int) -> + \(b: Prim.Int) -> + (addInteger: Prim.Int -> Prim.Int -> Prim.Int) (a: Prim.Int) (b: Prim.Int) + +nestedBinds :: Prim.Int +nestedBinds = + let + g :: forall (a :: Prim.Type). (a :: Prim.Type) -> Prim.Int + g = \(v: (a :: Prim.Type)) -> (5: Prim.Int) + f :: Prim.Int -> Prim.Int + f = \(v: Prim.Int) -> (4: Prim.Int) + h :: Prim.Int + h = + let + i :: Prim.Int + i = + (g: forall (a :: Prim.Type). (a :: Prim.Type) -> Prim.Int) + ("hello": Prim.String) + j :: Prim.Int + j = (f: Prim.Int -> Prim.Int) (i: Prim.Int) + in (f: Prim.Int -> Prim.Int) (j: Prim.Int) + in (h: Prim.Int) + +nestedApplications :: Prim.Int +nestedApplications = + let + i :: Prim.Int -> Prim.Int -> Prim.Int + i = \(x: Prim.Int) -> \(v: Prim.Int) -> (x: Prim.Int) + h :: Prim.Int -> Prim.Int + h = + \(v: Prim.Int) -> + case (v: Prim.Int) of + 2 -> (3: Prim.Int) + _ -> (5: Prim.Int) + g :: Prim.Int -> Prim.Int + g = \(v: Prim.Int) -> (5: Prim.Int) + f :: Prim.Int -> Prim.Int + f = \(x: Prim.Int) -> (x: Prim.Int) + in (i: Prim.Int -> Prim.Int -> Prim.Int) + ((f: Prim.Int -> Prim.Int) + ((g: Prim.Int -> Prim.Int) ((h: Prim.Int -> Prim.Int) (2: Prim.Int)))) + (4: Prim.Int) + +mutuallyRecursiveBindingGroupNoTypes :: Prim.Int +mutuallyRecursiveBindingGroupNoTypes = + let + h' :: Prim.Int -> Prim.Int -> Prim.Int + h' = \(x: Prim.Int) -> \(y: Prim.Int) -> (y: Prim.Int) + g' :: Prim.Int -> Prim.Int + g' = + \(y: Prim.Int) -> + (h': Prim.Int -> Prim.Int -> Prim.Int) + ((f': Prim.Int -> Prim.Int) (y: Prim.Int)) + (3: Prim.Int) + f' :: Prim.Int -> Prim.Int + f' = \(x: Prim.Int) -> (g': Prim.Int -> Prim.Int) (2: Prim.Int) + in (g': Prim.Int -> Prim.Int) (3: Prim.Int) + +mutuallyRecursiveBindingGroup :: Prim.Int +mutuallyRecursiveBindingGroup = + let + h :: Prim.Int -> Prim.Int -> Prim.Int + h = \(x: Prim.Int) -> \(y: Prim.Int) -> (y: Prim.Int) + g :: Prim.Int -> Prim.Int + g = + \(y: Prim.Int) -> + (h: Prim.Int -> Prim.Int -> Prim.Int) + ((f: Prim.Int -> Prim.Int) (y: Prim.Int)) + (3: Prim.Int) + f :: Prim.Int -> Prim.Int + f = \(x: Prim.Int) -> (g: Prim.Int -> Prim.Int) (2: Prim.Int) + in (g: Prim.Int -> Prim.Int) (3: Prim.Int) + +minus :: Prim.Int -> Prim.Int -> Prim.Int +minus = \(v: Prim.Int) -> \(v1: Prim.Int) -> (42: Prim.Int) + +id :: forall (t :: Prim.Type). (t :: Prim.Type) -> (t :: Prim.Type) +id = \(x: (t :: Prim.Type)) -> (x: (t :: Prim.Type)) + +objForall :: forall (a :: Prim.Type) (b :: Prim.Type). { getIdA :: (a :: Prim.Type) -> (a :: Prim.Type), getIdB :: (b :: Prim.Type) -> (b :: Prim.Type) } +objForall = + ({ + getIdB: (id: forall (t :: Prim.Type). (t :: Prim.Type) -> + (t :: Prim.Type)), + getIdA: (id: forall (t :: Prim.Type). (t :: Prim.Type) -> (t :: Prim.Type)) + }: forall (a :: Prim.Type) + (b :: Prim.Type). { + getIdA :: (a :: Prim.Type) -> (a :: Prim.Type), + getIdB :: (b :: Prim.Type) -> (b :: Prim.Type) + }) + +eq2 :: forall (@a :: Prim.Type) (@b :: Prim.Type). (Lib.Eq2$Dict (a :: Prim.Type) (b :: Prim.Type)) -> (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean +eq2 = + \(dict: (Lib.Eq2$Dict (a :: Prim.Type) (b :: Prim.Type))) -> + case (dict: (Lib.Eq2$Dict (a :: Prim.Type) (b :: Prim.Type))) of + Eq2$Dict v -> + (v: { eq2 :: (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean }) + .eq2 + +testEq2 :: Prim.Boolean +testEq2 = + (eq2: forall (@a :: Prim.Type) + (@b :: Prim.Type). (Lib.Eq2$Dict (a :: Prim.Type) (b :: Prim.Type)) -> + (a :: Prim.Type) -> (b :: Prim.Type) -> Prim.Boolean) + (eq2IntBoolean: (Lib.Eq2$Dict Prim.Int Prim.Boolean)) + (101: Prim.Int) + (false: Prim.Boolean) + +eq :: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean +eq = + \(dict: Lib.Eq$Dict (a :: Prim.Type)) -> + case (dict: Lib.Eq$Dict (a :: Prim.Type)) of + Eq$Dict v -> + (v: { eq :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean }) + .eq + +testEq :: Prim.Boolean +testEq = + (eq: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> + (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean) + (eqInt: Lib.Eq$Dict Prim.Int) + (1: Prim.Int) + (2: Prim.Int) + +testEqViaOrd :: forall (a :: Prim.Type). Lib.Ord$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean +testEqViaOrd = + \(dictOrd: Lib.Ord$Dict (a :: Prim.Type)) -> + \(a: (a :: Prim.Type)) -> + \(b: (a :: Prim.Type)) -> + (eq: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> + (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean) + (((dictOrd: Lib.Ord$Dict (a :: Prim.Type)).Eq0) ({ }: Prim.Record {})) + (a: (a :: Prim.Type)) + (b: (a :: Prim.Type)) + +workingEven :: Prim.Int -> Prim.Int +workingEven = + \(n: Prim.Int) -> + case ((eq: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean) (eqInt: Lib.Eq$Dict Prim.Int) (n: Prim.Int) (0: Prim.Int)) of + true -> (1: Prim.Int) + _ -> (42: Prim.Int) + +emptyList :: forall (t90 :: Prim.Type). Array ((t90 :: Prim.Type)) +emptyList = ([]: forall (t90 :: Prim.Type). Array ((t90 :: Prim.Type))) + +cons :: forall (a :: Prim.Type). (a :: Prim.Type) -> Array ((a :: Prim.Type)) -> Array ((a :: Prim.Type)) +cons = + \(x: (a :: Prim.Type)) -> + \(xs: Array ((a :: Prim.Type))) -> + ([(x: (a :: Prim.Type))]: Array ((a :: Prim.Type))) + +consEmptyList1 :: Array (Prim.Int) +consEmptyList1 = + (cons: forall (a :: Prim.Type). (a :: Prim.Type) -> + Array ((a :: Prim.Type)) -> Array ((a :: Prim.Type))) + (1: Prim.Int) + (emptyList: forall (t90 :: Prim.Type). Array ((t90 :: Prim.Type))) + +consEmptyList2 :: Array (Prim.String) +consEmptyList2 = + (cons: forall (a :: Prim.Type). (a :: Prim.Type) -> + Array ((a :: Prim.Type)) -> Array ((a :: Prim.Type))) + ("hello": Prim.String) + (emptyList: forall (t90 :: Prim.Type). Array ((t90 :: Prim.Type))) + +compare :: forall (@a :: Prim.Type). Lib.Ord$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Int +compare = + \(dict: Lib.Ord$Dict (a :: Prim.Type)) -> + case (dict: Lib.Ord$Dict (a :: Prim.Type)) of + Ord$Dict v -> + (v: { + compare :: (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Int, + Eq0 :: Prim.Record {}@Prim.Type -> Lib.Eq$Dict (a :: Prim.Type) + }) + .compare + +brokenEven :: Prim.Int -> Prim.Int +brokenEven = + \(n: Prim.Int) -> + case ((eq: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean) (eqInt: Lib.Eq$Dict Prim.Int) (n: Prim.Int) (0: Prim.Int)) of + true -> (1: Prim.Int) + _ -> + (brokenEven: Prim.Int -> Prim.Int) + ((minus: Prim.Int -> Prim.Int -> Prim.Int) (n: Prim.Int) (2: Prim.Int)) + +arrForall :: forall (a :: Prim.Type). Array ((a :: Prim.Type) -> (a :: Prim.Type)) +arrForall = + ([ (id: forall (t :: Prim.Type). (t :: Prim.Type) -> (t :: Prim.Type)) ]: forall (a :: Prim.Type). Array ((a :: Prim.Type) -> + (a :: Prim.Type))) + +anObj :: { foo :: Prim.Int } +anObj = ({ foo: (3: Prim.Int) }: { foo :: Prim.Int }) + +objUpdate :: { foo :: Prim.Int } +objUpdate = + let + v :: { foo :: Prim.Int } + v = (anObj: { foo :: Prim.Int }) + in (v: { foo :: Prim.Int }) { foo = (4: Prim.Int) } + +anIntLit :: Prim.Int +anIntLit = (1: Prim.Int) + +aVal :: Prim.Int +aVal = (1: Prim.Int) + +aStringLit :: Prim.String +aStringLit = ("woop": Prim.String) + +aPred :: Prim.Int -> Prim.Boolean +aPred = \(v: Prim.Int) -> (true: Prim.Boolean) + +guardedCase :: Prim.Int -> Prim.Int -> Prim.Int +guardedCase = + \(w: Prim.Int) -> + \(x: Prim.Int) -> + let + v :: forall ($23 :: Prim.Type). ($23 :: Prim.Type) -> Prim.Int + v = \(v1: ($23 :: Prim.Type)) -> (0: Prim.Int) + in case (w: Prim.Int) (x: Prim.Int) of + y z -> + let + v1 :: Prim.Boolean + v1 = + (eq: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> + (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean) + (eqInt: Lib.Eq$Dict Prim.Int) + (y: Prim.Int) + (2: Prim.Int) + in case (v1: Prim.Boolean) of + true -> + let + v2 :: Prim.Boolean + v2 = (aPred: Prim.Int -> Prim.Boolean) (y: Prim.Int) + in case (v2: Prim.Boolean) of + true -> + let + v3 :: Prim.Boolean + v3 = + (eq: forall (@a :: Prim.Type). Lib.Eq$Dict + (a :: Prim.Type) -> + (a :: Prim.Type) -> + (a :: Prim.Type) -> Prim.Boolean) + (eqInt: Lib.Eq$Dict Prim.Int) + (z: Prim.Int) + (0: Prim.Int) + in case (v3: Prim.Boolean) of + true -> + let + v4 :: Prim.Boolean + v4 = + (eq: forall (@a :: Prim.Type). Lib.Eq$Dict + (a :: Prim.Type) -> + (a :: Prim.Type) -> + (a :: Prim.Type) -> Prim.Boolean) + (eqInt: Lib.Eq$Dict Prim.Int) + (y: Prim.Int) + (nestedBinds: Prim.Int) + in case (v4: Prim.Boolean) of + true -> (2: Prim.Int) + _ -> + (v: forall ($23 :: Prim.Type). ($23 :: Prim.Type) -> + Prim.Int) + (true: Prim.Boolean) + _ -> + (v: forall ($23 :: Prim.Type). ($23 :: Prim.Type) -> + Prim.Int) + (true: Prim.Boolean) + _ -> + (v: forall ($23 :: Prim.Type). ($23 :: Prim.Type) -> + Prim.Int) + (true: Prim.Boolean) + _ -> + (v: forall ($23 :: Prim.Type). ($23 :: Prim.Type) -> + Prim.Int) + (true: Prim.Boolean) + +aList :: Array (Prim.Int) +aList = + ([ (1: Prim.Int) + , (2: Prim.Int) + , (3: Prim.Int) + , (4: Prim.Int) + , (5: Prim.Int) ]: Array (Prim.Int)) + +aFunction4 :: forall (r :: Prim.Row Prim.Type). { a :: Prim.Int | (r :: Prim.Row Prim.Type) } -> Prim.Int +aFunction4 = + \(r: { a :: Prim.Int | (r :: Prim.Row Prim.Type) }) -> + (r: { a :: Prim.Int | (r :: Prim.Row Prim.Type) }) + .a + +aFunction5 :: Prim.Int +aFunction5 = + (aFunction4: forall (r :: Prim.Row + Prim.Type). { a :: Prim.Int | (r :: Prim.Row Prim.Type) } -> Prim.Int) + ({ a: (2: Prim.Int) }: { a :: Prim.Int }) + +main :: Prim.Int +main = + (aFunction4: forall (r :: Prim.Row + Prim.Type). { a :: Prim.Int | (r :: Prim.Row Prim.Type) } -> Prim.Int) + ({ b: ("hello": Prim.String), a: (101: Prim.Int) }: { + a :: Prim.Int, + b :: Prim.String + }) + +aFunction3 :: Prim.Int -> Prim.Int +aFunction3 = + \(x: Prim.Int) -> + case ((eq: forall (@a :: Prim.Type). Lib.Eq$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) -> Prim.Boolean) (eqInt: Lib.Eq$Dict Prim.Int) (x: Prim.Int) (2: Prim.Int)) of + true -> (4: Prim.Int) + _ -> (1: Prim.Int) + +aFunction2 :: Prim.Int -> Array (Prim.Int) +aFunction2 = + \(x: Prim.Int) -> ([(x: Prim.Int), (1: Prim.Int)]: Array (Prim.Int)) + +aFunction :: forall (x :: Prim.Type). (x :: Prim.Type) -> forall (y :: Prim.Type). (y :: Prim.Type) -> Prim.Int -> Prim.Int +aFunction = + \(any: (x :: Prim.Type)) -> + \(f: forall (y :: Prim.Type). (y :: Prim.Type) -> Prim.Int) -> + (f: forall (y :: Prim.Type). (y :: Prim.Type) -> Prim.Int) + (any: (x :: Prim.Type)) + +aFunction6 :: Prim.Int +aFunction6 = + let + go :: forall (z :: Prim.Type). (z :: Prim.Type) -> Prim.Int + go = \(v: (z :: Prim.Type)) -> (10: Prim.Int) + in (aFunction: forall (x :: Prim.Type). (x :: Prim.Type) -> + forall (y :: Prim.Type). (y :: Prim.Type) -> Prim.Int -> Prim.Int) + ([]: Array (t119)) + (go: forall (z :: Prim.Type). (z :: Prim.Type) -> Prim.Int) + +aBool :: Prim.Boolean +aBool = (true: Prim.Boolean) \ No newline at end of file diff --git a/tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs b/tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs index 590977109..f068056b7 100644 --- a/tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs +++ b/tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs @@ -1,4 +1,4 @@ module Lib where -- covering sets: {{f, l}} -class C f l r | l -> r +class C (f :: Type) (l :: Type) (r :: Type) | l -> r data L diff --git a/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/externs.cbor b/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/externs.cbor new file mode 100644 index 0000000000000000000000000000000000000000..33ef9867361e12ce4bd26a02843309a8c166e4bb GIT binary patch literal 3541 zcmeHK%}T>S5T2x!DhM9D6g+qlJP55tdhlwiAQTnx0UDFEjnr*PQmD7hZm{?i`;?y7 zP1=Sg{h_71r3VQ~cG%sSFEd|eW`Cf4U8+<|l^e6+yfX?R3~zng^SyF^;10yo@H_{# z%TGP@?DjhbdPJUYAk%&rpt{|^ANsCQ7F$bVxko|MDC7$Sj9RG6Qq>4BXCYWGuJai{ z5Wf=gY-i~xo19VJwZ;_aF9=QCg>n89?_sx zyQn*+AG>(FPzrkIiq$cVq-c^ruL-6Ze(i|7QXC*JD0}b9m4Dm6GdC(Ux#Gs@VVrd# z&=@sZ63DVRtp_?ax)QW6BTJ;;m7#x${{o#elB7(wc3En@+GfwS!oyTWCC4c-#@$S+ z@l48!gTwi^o|q1_WH>rXX$e4K{N`<`jOM&Gm9fnPGb1h!PEt?S-XVhx8Dp!(1>mEO zHla|cr6{D3Kv_#F>65jkk~~=S)C4R`G*Wz&k9uoH6uOZp&7wqU4vmf<6qv@D&iQYA Y5NRwR=;Wv|txJHh=vKGt1IEX%KT-Isx&QzG literal 0 HcmV?d00001 diff --git a/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn b/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn new file mode 100644 index 000000000..fca32f1dc --- /dev/null +++ b/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn @@ -0,0 +1 @@ +{"builtWith":"0.0.1","comments":[],"dataTypes":{"C$Dict":["newtype",[["f",{"annotation":[{"end":[3,19],"name":"tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs","start":[3,15]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],["l",{"annotation":[{"end":[3,31],"name":"tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs","start":[3,27]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],["r",{"annotation":[{"end":[3,43],"name":"tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs","start":[3,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}]],[{"dataCtorAnn":[{"end":[3,53],"name":"tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs","start":[3,1]},[{"LineComment":" covering sets: {{f, l}}"}]],"dataCtorFields":[[{"Ident":"dict"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}]],"dataCtorName":"C$Dict"}]],"L":["data",[],[]]},"decls":[{"annotation":{"meta":{"metaType":"IsTypeClassConstructor"},"sourceSpan":{"end":[3,53],"start":[3,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":{"metaType":"IsNewtype"},"sourceSpan":{"end":[3,53],"start":[3,1]}},"argument":"x","body":{"annotation":{"meta":null,"sourceSpan":{"end":[3,53],"start":[3,1]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"},"value":{"identifier":"x","sourcePos":[0,0]}},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"tag":"REmpty"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"identifier":"C$Dict"}],"exports":[],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[4,7],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[4,7],"start":[1,1]}},"moduleName":["Prim"]}],"moduleName":["Lib"],"modulePath":"tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs","reExports":{},"sourceSpan":{"end":[4,7],"start":[1,1]}} \ No newline at end of file diff --git a/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn.pretty b/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn.pretty new file mode 100644 index 000000000..5085713d7 --- /dev/null +++ b/tests/purus/passing/NonOrphanInstanceFunDepExtra/output/Lib/index.cfn.pretty @@ -0,0 +1,13 @@ +Lib (tests/purus/passing/NonOrphanInstanceFunDepExtra/Lib.purs) +Imported Modules: + Builtin, + Prim +Exports: + +Re-Exports: + +Foreign: + +Declarations: +C$Dict :: Prim.Record {} -> Prim.Record {} +C$Dict = \(x: Prim.Record {}) -> (x: Prim.Record {}) \ No newline at end of file diff --git a/tests/purus/passing/NonOrphanInstanceMulti/Lib.purs b/tests/purus/passing/NonOrphanInstanceMulti/Lib.purs index 49b5b73e0..2c48f2930 100644 --- a/tests/purus/passing/NonOrphanInstanceMulti/Lib.purs +++ b/tests/purus/passing/NonOrphanInstanceMulti/Lib.purs @@ -1,4 +1,4 @@ module Lib where -- covering sets: {{l, r}} -class C l r +class C (l :: Type) (r :: Type) data R diff --git a/tests/purus/passing/NonOrphanInstanceMulti/output/Lib/externs.cbor b/tests/purus/passing/NonOrphanInstanceMulti/output/Lib/externs.cbor index 83a0e94c76af1b7a53cdf83dbe6de6600fb9c5fd..7959320f4a1c490dffec1601f5ea9ac3a1f7d152 100644 GIT binary patch literal 2491 zcmd5;%}T>S5T2x!DhM9D6g=p`b89KSfE7XTkKzLuleAr_o01>U+x}tcQ{*W<$IZ5l zP1-_jy5J$n4x63%_WO2bb^`s2M(eWCYTI|{HRd4TqaC_I7&J$bAIY~B1PJ$=4<3H> zM*|Dr;vlrJ?cPVj5H;nZhWs($U>F>#H3n8knB|>xDM?}h&XbScDNyyzOd_Cv6(JcP z%enb5Aw;fF0BTIY3kQJoAtG<`z1%DZW+?Xz1~(D5L*!xg%a%M;jyP0~$%0$w`E%qJ zKom^fnCd4IRQ+@b)%v(^9Zw4FTL_2Dj3v#Gq~!KG=hw&%75r@pk_V+yKby)@(nl$w zW;hm<(tZF+Zg&^7|4YjLem03D4im)X4GPBUs$cE#CoEHjOI9-mShv5RH1#>+`S^96hVi%ee zf)&gaXwy!eDJP7aa$0mN#?YghY~KtVM|PKFTus|}%(U!=Y07JP{~+J$0@7U}+U$xk QFIzx}?5A6{gXvZ42R&Cm82|tP literal 2671 zcmds3+fKqj5SiFihiZfb-Ko4msSa_ zKG=lPS(rK7IWuSH6=p}h!EtXev@YC9A|QsRVdw;5&|gM=gm*ItTr%rldF0w(&P{So zg3u(Ea~Ul{w~tOe{9_m?b1WAK5qiQ-jJaw&5=DuDUw&%D$ z&USTC4@Z(%FNEZyW{7o@{6@{z+uT1-(Kr1h1&g8zGA$A2f;A%}Oc$o#Oe}-xX~OgV zPPUe$>DaM6-;VbS!pge^vs!3mV$$?Q&!L%?Kb9!`ubc`h4m8HlX5^;$QV3Ga>V)U2 zu(d}M3@c!&Su7r Record {} -C$Dict = \(x: Record {}) -> (x: Record {}) \ No newline at end of file +C$Dict :: Prim.Record {} -> Prim.Record {} +C$Dict = \(x: Prim.Record {}) -> (x: Prim.Record {}) \ No newline at end of file diff --git a/tests/purus/passing/PendingConflictingImports/output/A/index.cfn.pretty b/tests/purus/passing/PendingConflictingImports/output/A/index.cfn.pretty index 49b5bb341..1bbb38c51 100644 --- a/tests/purus/passing/PendingConflictingImports/output/A/index.cfn.pretty +++ b/tests/purus/passing/PendingConflictingImports/output/A/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (1: Int) \ No newline at end of file +thing :: Prim.Int +thing = (1: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/PendingConflictingImports/output/B/index.cfn.pretty b/tests/purus/passing/PendingConflictingImports/output/B/index.cfn.pretty index b6e55870c..ea459eda2 100644 --- a/tests/purus/passing/PendingConflictingImports/output/B/index.cfn.pretty +++ b/tests/purus/passing/PendingConflictingImports/output/B/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (2: Int) \ No newline at end of file +thing :: Prim.Int +thing = (2: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/PendingConflictingImports/output/Main/index.cfn.pretty b/tests/purus/passing/PendingConflictingImports/output/Main/index.cfn.pretty index bb0ee29dd..456640d93 100644 --- a/tests/purus/passing/PendingConflictingImports/output/Main/index.cfn.pretty +++ b/tests/purus/passing/PendingConflictingImports/output/Main/index.cfn.pretty @@ -11,5 +11,5 @@ Re-Exports: Foreign: Declarations: -main :: String -main = ("Done": String) \ No newline at end of file +main :: Prim.String +main = ("Done": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/PendingConflictingImports2/output/A/index.cfn.pretty b/tests/purus/passing/PendingConflictingImports2/output/A/index.cfn.pretty index 8afb3968e..026a78900 100644 --- a/tests/purus/passing/PendingConflictingImports2/output/A/index.cfn.pretty +++ b/tests/purus/passing/PendingConflictingImports2/output/A/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (1: Int) \ No newline at end of file +thing :: Prim.Int +thing = (1: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/PendingConflictingImports2/output/Main/index.cfn.pretty b/tests/purus/passing/PendingConflictingImports2/output/Main/index.cfn.pretty index 5503e8d83..b16a01592 100644 --- a/tests/purus/passing/PendingConflictingImports2/output/Main/index.cfn.pretty +++ b/tests/purus/passing/PendingConflictingImports2/output/Main/index.cfn.pretty @@ -11,8 +11,8 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (2: Int) +thing :: Prim.Int +thing = (2: Prim.Int) -main :: String -main = ("Done": String) \ No newline at end of file +main :: Prim.String +main = ("Done": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/ReExportQualified/output/A/index.cfn.pretty b/tests/purus/passing/ReExportQualified/output/A/index.cfn.pretty index 829a9c730..27819a300 100644 --- a/tests/purus/passing/ReExportQualified/output/A/index.cfn.pretty +++ b/tests/purus/passing/ReExportQualified/output/A/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -x :: String -x = ("Do": String) \ No newline at end of file +x :: Prim.String +x = ("Do": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/ReExportQualified/output/B/index.cfn.pretty b/tests/purus/passing/ReExportQualified/output/B/index.cfn.pretty index 333af29dd..6a0f62900 100644 --- a/tests/purus/passing/ReExportQualified/output/B/index.cfn.pretty +++ b/tests/purus/passing/ReExportQualified/output/B/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -y :: String -y = ("ne": String) \ No newline at end of file +y :: Prim.String +y = ("ne": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/ReExportQualified/output/Main/index.cfn.pretty b/tests/purus/passing/ReExportQualified/output/Main/index.cfn.pretty index 2adba04cd..dddf5e412 100644 --- a/tests/purus/passing/ReExportQualified/output/Main/index.cfn.pretty +++ b/tests/purus/passing/ReExportQualified/output/Main/index.cfn.pretty @@ -14,8 +14,11 @@ Re-Exports: Foreign: Declarations: -concat :: String -> String -> String -concat = \(v: String) -> \(v1: String) -> ("concat": String) +concat :: Prim.String -> Prim.String -> Prim.String +concat = \(v: Prim.String) -> \(v1: Prim.String) -> ("concat": Prim.String) -main :: String -main = (concat: String -> String -> String) (x: String) (y: String) \ No newline at end of file +main :: Prim.String +main = + (concat: Prim.String -> Prim.String -> Prim.String) + (x: Prim.String) + (y: Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/RedefinedFixity/M1.purs b/tests/purus/passing/RedefinedFixity/M1.purs index 703e37bfb..5dbfe280b 100644 --- a/tests/purus/passing/RedefinedFixity/M1.purs +++ b/tests/purus/passing/RedefinedFixity/M1.purs @@ -1,6 +1,6 @@ module M1 where -applyFn :: forall a b. (forall c d. c -> d) -> a -> b +applyFn :: forall (a :: Type) (b :: Type). (forall (c :: Type) (d :: Type). c -> d) -> a -> b applyFn f a = f a infixr 1000 applyFn as $ diff --git a/tests/purus/passing/RedefinedFixity/output/M1/externs.cbor b/tests/purus/passing/RedefinedFixity/output/M1/externs.cbor index 46e53579687e9530fd9bf610b017a08f062a027c..f7e182bc3d1a19cdd8a9b415a92d63960aa27006 100644 GIT binary patch literal 2048 zcmb`I%T9wp6o$`;mzekfbYbG6E{xhrj2jmwx?o{~m#Xm+Z89y0lT;)Hl6D6(7~@m) z^?VDQ0i{j4>Vd@o6FC2T|M|(xH@F8aJ1Jq_5H!v^u#h=gEq5C3ij2Iy(f_5_i`Gi;GRWn z5He4``+v+PpOBD-_QQcT1#lv5aG26$u{1TEey#I`>9h?2n%<2QLaA6m)awl;uo)}7 z+!F`;cI-PS7=5dx>EUR$mB7v%O}d7$wpY+pD#qEkQ!C%k+ITY~uOG4x57*dzC3vG^ z?&FA#mB7g?QH7XKOBx$TV=963IT~D2RzXv#7-!>Bt$aOeql`Hvm_IhRauL@YGLEHF zw3XHyal!%QAh@(16jL{@RE&%INv-@`W7N5o$GGNg8yEFU(NeNCHy%+C6D*g6BKLsVom~PVH~Ay8 z8JrE$t_u>^pL~GHn@1AF)CL)y4AHI*63_%1?areFmrFsB0~xIfkpmkIV}p!_YCpgv z%GAs_*^tqM8!W5VkeCeN3u-}hCZ;qtF)#ozBiIZBkf>P$3LD9%Nalf68a5;*Ld@ed Nh3HI7n!KOg5dc@@NlyR( diff --git a/tests/purus/passing/RedefinedFixity/output/M1/index.cfn b/tests/purus/passing/RedefinedFixity/output/M1/index.cfn index 5d5a9d4c1..a9c6574b0 100644 --- a/tests/purus/passing/RedefinedFixity/output/M1/index.cfn +++ b/tests/purus/passing/RedefinedFixity/output/M1/index.cfn @@ -1 +1 @@ -{"builtWith":"0.0.1","comments":[],"dataTypes":{},"decls":[{"annotation":{"meta":null,"sourceSpan":{"end":[3,54],"start":[3,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,1]}},"argument":"f","body":{"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,1]}},"argument":"a","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[4,16],"start":[4,15]}},"kind":"Var","type":{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,25]},[]],"contents":{"identifier":"c","kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":1,"type":{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,34]},[]],"contents":{"identifier":"d","kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":0,"type":{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,39]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,38],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,42]},[]],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"f","sourcePos":[4,1]}},"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,15]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,17]}},"kind":"Var","type":{"annotation":[{"end":[3,49],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,48]},[]],"contents":"a","tag":"TypeVar"},"value":{"identifier":"a","sourcePos":[4,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,49],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,48]},[]],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,54],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,53]},[]],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[3,54],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,12]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[3,52],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,50]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":3,"type":{"annotation":[{"end":[3,54],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,21]},[]],"contents":{"identifier":"b","kind":{"annotation":[{"end":[3,52],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,50]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":2,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,25]},[]],"contents":{"identifier":"c","kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":1,"type":{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,34]},[]],"contents":{"identifier":"d","kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,39]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":0,"type":{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,39]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,38],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,43],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,42]},[]],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[3,54],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,48]},[]],"contents":[{"annotation":[{"end":[3,54],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,48]},[]],"contents":[{"annotation":[{"end":[3,52],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,50]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,49],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,48]},[]],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,54],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,53]},[]],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"applyFn"}],"exports":["applyFn"],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[6,25],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,25],"start":[1,1]}},"moduleName":["M1"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,25],"start":[1,1]}},"moduleName":["Prim"]}],"moduleName":["M1"],"modulePath":"tests/purus/passing/RedefinedFixity/M1.purs","reExports":{},"sourceSpan":{"end":[6,25],"start":[1,1]}} \ No newline at end of file +{"builtWith":"0.0.1","comments":[],"dataTypes":{},"decls":[{"annotation":{"meta":null,"sourceSpan":{"end":[3,94],"start":[3,1]}},"bindType":"NonRec","expression":{"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,1]}},"argument":"f","body":{"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,1]}},"argument":"a","body":{"abstraction":{"annotation":{"meta":null,"sourceSpan":{"end":[4,16],"start":[4,15]}},"kind":"Var","type":{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,45]},[]],"contents":{"identifier":"c","kind":{"annotation":[{"end":[3,62],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,58]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":1,"type":{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,65]},[]],"contents":{"identifier":"d","kind":{"annotation":[{"end":[3,74],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,70]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":0,"type":{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,77]},[]],"contents":[{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,77]},[]],"contents":[{"annotation":[{"end":[3,81],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,79]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,78],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,77]},[]],"contents":{"kind":{"annotation":[{"end":[3,62],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,58]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"c"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,82]},[]],"contents":{"kind":{"annotation":[{"end":[3,74],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,70]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"d"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"f","sourcePos":[4,1]}},"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,15]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[4,18],"start":[4,17]}},"kind":"Var","type":{"annotation":[{"end":[3,89],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,88]},[]],"contents":{"kind":{"annotation":[{"end":[3,29],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"},"value":{"identifier":"a","sourcePos":[4,1]}},"kind":"App"},"kind":"Abs","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,89],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,88]},[]],"contents":{"kind":{"annotation":[{"end":[3,29],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,94],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,93]},[]],"contents":{"kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"}},"kind":"Abs","type":{"annotation":[{"end":[3,94],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,12]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[3,29],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":3,"type":{"annotation":[{"end":[3,94],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,32]},[]],"contents":{"identifier":"b","kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":2,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,45]},[]],"contents":{"identifier":"c","kind":{"annotation":[{"end":[3,62],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,58]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":1,"type":{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,65]},[]],"contents":{"identifier":"d","kind":{"annotation":[{"end":[3,74],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,70]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":0,"type":{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,77]},[]],"contents":[{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,77]},[]],"contents":[{"annotation":[{"end":[3,81],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,79]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,78],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,77]},[]],"contents":{"kind":{"annotation":[{"end":[3,62],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,58]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"c"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,83],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,82]},[]],"contents":{"kind":{"annotation":[{"end":[3,74],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,70]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"d"},"tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}],"tag":"TypeApp"},{"annotation":[{"end":[3,94],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,88]},[]],"contents":[{"annotation":[{"end":[3,94],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,88]},[]],"contents":[{"annotation":[{"end":[3,92],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,90]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[3,89],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,88]},[]],"contents":{"kind":{"annotation":[{"end":[3,29],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,25]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[3,94],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,93]},[]],"contents":{"kind":{"annotation":[{"end":[3,41],"name":"tests/purus/passing/RedefinedFixity/M1.purs","start":[3,37]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"b"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"identifier":"applyFn"}],"exports":["applyFn"],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[6,25],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,25],"start":[1,1]}},"moduleName":["M1"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,25],"start":[1,1]}},"moduleName":["Prim"]}],"moduleName":["M1"],"modulePath":"tests/purus/passing/RedefinedFixity/M1.purs","reExports":{},"sourceSpan":{"end":[6,25],"start":[1,1]}} \ No newline at end of file diff --git a/tests/purus/passing/RedefinedFixity/output/M1/index.cfn.pretty b/tests/purus/passing/RedefinedFixity/output/M1/index.cfn.pretty index a5c0cd44d..1a56b1a00 100644 --- a/tests/purus/passing/RedefinedFixity/output/M1/index.cfn.pretty +++ b/tests/purus/passing/RedefinedFixity/output/M1/index.cfn.pretty @@ -10,8 +10,11 @@ Re-Exports: Foreign: Declarations: -applyFn :: forall (a :: Type) (b :: Type). forall (c :: Type) (d :: Type). c -> d -> a -> b +applyFn :: forall (a :: Prim.Type) (b :: Prim.Type). forall (c :: Prim.Type) (d :: Prim.Type). (c :: Prim.Type) -> (d :: Prim.Type) -> (a :: Prim.Type) -> (b :: Prim.Type) applyFn = - \(f: forall (c :: Type) (d :: Type). c -> d) -> - \(a: a) -> - (f: forall (c :: Type) (d :: Type). c -> d) (a: a) \ No newline at end of file + \(f: forall (c :: Prim.Type) + (d :: Prim.Type). (c :: Prim.Type) -> (d :: Prim.Type)) -> + \(a: (a :: Prim.Type)) -> + (f: forall (c :: Prim.Type) + (d :: Prim.Type). (c :: Prim.Type) -> (d :: Prim.Type)) + (a: (a :: Prim.Type)) \ No newline at end of file diff --git a/tests/purus/passing/RedefinedFixity/output/Main/index.cfn.pretty b/tests/purus/passing/RedefinedFixity/output/Main/index.cfn.pretty index ed4ca6019..86a79e443 100644 --- a/tests/purus/passing/RedefinedFixity/output/Main/index.cfn.pretty +++ b/tests/purus/passing/RedefinedFixity/output/Main/index.cfn.pretty @@ -10,5 +10,5 @@ Re-Exports: Foreign: Declarations: -main :: String -main = ("Done": String) \ No newline at end of file +main :: Prim.String +main = ("Done": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict/output/A/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict/output/A/index.cfn.pretty index 34b172e24..7fa09e1ca 100644 --- a/tests/purus/passing/ResolvableScopeConflict/output/A/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict/output/A/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (1: Int) \ No newline at end of file +thing :: Prim.Int +thing = (1: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict/output/B/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict/output/B/index.cfn.pretty index 87b8b09d6..d6c02137d 100644 --- a/tests/purus/passing/ResolvableScopeConflict/output/B/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict/output/B/index.cfn.pretty @@ -10,8 +10,8 @@ Re-Exports: Foreign: Declarations: -zing :: Int -zing = (3: Int) +zing :: Prim.Int +zing = (3: Prim.Int) -thing :: Int -thing = (2: Int) \ No newline at end of file +thing :: Prim.Int +thing = (2: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict/output/Main/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict/output/Main/index.cfn.pretty index 9128b3062..3bc689a4b 100644 --- a/tests/purus/passing/ResolvableScopeConflict/output/Main/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict/output/Main/index.cfn.pretty @@ -12,12 +12,12 @@ Re-Exports: Foreign: Declarations: -what :: Boolean -> Int +what :: Prim.Boolean -> Prim.Int what = - \(v: Boolean) -> - case (v: Boolean) of - true -> (thing: Int) - false -> (zing: Int) + \(v: Prim.Boolean) -> + case (v: Prim.Boolean) of + true -> (thing: Prim.Int) + false -> (zing: Prim.Int) -main :: String -main = ("Done": String) \ No newline at end of file +main :: Prim.String +main = ("Done": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict2/output/A/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict2/output/A/index.cfn.pretty index 1863f79fe..197f637f4 100644 --- a/tests/purus/passing/ResolvableScopeConflict2/output/A/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict2/output/A/index.cfn.pretty @@ -10,8 +10,8 @@ Re-Exports: Foreign: Declarations: -zing :: Int -zing = (3: Int) +zing :: Prim.Int +zing = (3: Prim.Int) -thing :: Int -thing = (2: Int) \ No newline at end of file +thing :: Prim.Int +thing = (2: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict2/output/Main/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict2/output/Main/index.cfn.pretty index 3e02f0820..1a9b8290b 100644 --- a/tests/purus/passing/ResolvableScopeConflict2/output/Main/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict2/output/Main/index.cfn.pretty @@ -13,15 +13,15 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (1: Int) +thing :: Prim.Int +thing = (1: Prim.Int) -what :: Boolean -> Int +what :: Prim.Boolean -> Prim.Int what = - \(v: Boolean) -> - case (v: Boolean) of - true -> (thing: Int) - false -> (zing: Int) + \(v: Prim.Boolean) -> + case (v: Prim.Boolean) of + true -> (thing: Prim.Int) + false -> (zing: Prim.Int) -main :: String -main = ("Done": String) \ No newline at end of file +main :: Prim.String +main = ("Done": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict3/output/A/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict3/output/A/index.cfn.pretty index 5d2f6a759..7d598159d 100644 --- a/tests/purus/passing/ResolvableScopeConflict3/output/A/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict3/output/A/index.cfn.pretty @@ -9,5 +9,5 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (1: Int) \ No newline at end of file +thing :: Prim.Int +thing = (1: Prim.Int) \ No newline at end of file diff --git a/tests/purus/passing/ResolvableScopeConflict3/output/Main/index.cfn.pretty b/tests/purus/passing/ResolvableScopeConflict3/output/Main/index.cfn.pretty index 6d4747a8c..789c595cc 100644 --- a/tests/purus/passing/ResolvableScopeConflict3/output/Main/index.cfn.pretty +++ b/tests/purus/passing/ResolvableScopeConflict3/output/Main/index.cfn.pretty @@ -11,8 +11,8 @@ Re-Exports: Foreign: Declarations: -thing :: Int -thing = (2: Int) +thing :: Prim.Int +thing = (2: Prim.Int) -main :: String -main = ("Done": String) \ No newline at end of file +main :: Prim.String +main = ("Done": Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/RowSyntax/RowSyntax.purs b/tests/purus/passing/RowSyntax/RowSyntax.purs new file mode 100644 index 000000000..bc175e7b6 --- /dev/null +++ b/tests/purus/passing/RowSyntax/RowSyntax.purs @@ -0,0 +1,12 @@ +module RowSyntax where + +class IsARow (r :: Row Type) +instance IsARow (r :: Row Type) + +data RowProxy (r :: Row Type) = RowProxy + +aRowProxy :: RowProxy [field :: Int] +aRowProxy = RowProxy + +moreFields :: RowProxy [field1 :: Int, field2 :: String, field3 :: Boolean] +moreFields = RowProxy diff --git a/tests/purus/passing/RowSyntax/output/package.json b/tests/purus/passing/RowSyntax/output/package.json new file mode 100644 index 000000000..7c34deb58 --- /dev/null +++ b/tests/purus/passing/RowSyntax/output/package.json @@ -0,0 +1 @@ +{"type":"module"} \ No newline at end of file diff --git a/tests/purus/passing/ShadowedModuleName/output/Main/index.cfn.pretty b/tests/purus/passing/ShadowedModuleName/output/Main/index.cfn.pretty index 31146dded..d30fe6538 100644 --- a/tests/purus/passing/ShadowedModuleName/output/Main/index.cfn.pretty +++ b/tests/purus/passing/ShadowedModuleName/output/Main/index.cfn.pretty @@ -11,8 +11,10 @@ Re-Exports: Foreign: Declarations: -Test :: Test +Test :: Main.Test Test = Test -main :: String -main = (runZ: Z -> String) ((Z: String -> Z) ("Done": String)) \ No newline at end of file +main :: Prim.String +main = + (runZ: Test.Z -> Prim.String) + ((Z: Prim.String -> Test.Z) ("Done": Prim.String)) \ No newline at end of file diff --git a/tests/purus/passing/ShadowedModuleName/output/Test/index.cfn.pretty b/tests/purus/passing/ShadowedModuleName/output/Test/index.cfn.pretty index cd32dc20e..67bd2060c 100644 --- a/tests/purus/passing/ShadowedModuleName/output/Test/index.cfn.pretty +++ b/tests/purus/passing/ShadowedModuleName/output/Test/index.cfn.pretty @@ -11,11 +11,11 @@ Re-Exports: Foreign: Declarations: -Z :: String -> Z +Z :: Prim.String -> Test.Z Z = Z -runZ :: Z -> String +runZ :: Test.Z -> Prim.String runZ = - \(v: Z) -> - case (v: Z) of - Z s -> (s: String) \ No newline at end of file + \(v: Test.Z) -> + case (v: Test.Z) of + Z s -> (s: Prim.String) \ No newline at end of file diff --git a/tests/purus/passing/TransitiveImport/Middle.purs b/tests/purus/passing/TransitiveImport/Middle.purs index 57e2a2b10..78c82b900 100644 --- a/tests/purus/passing/TransitiveImport/Middle.purs +++ b/tests/purus/passing/TransitiveImport/Middle.purs @@ -5,5 +5,5 @@ import Test unit :: Unit unit = Unit -middle :: forall a. TestCls a => a -> a +middle :: forall (a :: Type). TestCls a => a -> a middle = test diff --git a/tests/purus/passing/TransitiveImport/Test.purs b/tests/purus/passing/TransitiveImport/Test.purs index 2d735b509..37a25d1e1 100644 --- a/tests/purus/passing/TransitiveImport/Test.purs +++ b/tests/purus/passing/TransitiveImport/Test.purs @@ -2,7 +2,7 @@ module Test where data Unit = Unit -class TestCls a where +class TestCls (a :: Type) where test :: a -> a instance unitTestCls :: TestCls Unit where diff --git a/tests/purus/passing/TransitiveImport/output/Main/index.cfn b/tests/purus/passing/TransitiveImport/output/Main/index.cfn index ad16ca49c..556dcc276 100644 --- a/tests/purus/passing/TransitiveImport/output/Main/index.cfn +++ b/tests/purus/passing/TransitiveImport/output/Main/index.cfn @@ -1 +1 @@ -{"builtWith":"0.0.1","comments":[],"dataTypes":{},"decls":[{"annotation":{"meta":null,"sourceSpan":{"end":[5,15],"start":[5,3]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"annotation":{"meta":{"metaType":"IsForeign"},"sourceSpan":{"end":[6,18],"start":[6,12]}},"kind":"Var","type":{"annotation":[{"end":[8,40],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,11]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[8,30],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,21]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":0,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Test"],"TestCls$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,30],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,29]},[]],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,40],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,34]},[]],"contents":[{"annotation":[{"end":[8,40],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,34]},[]],"contents":[{"annotation":[{"end":[8,38],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,36]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,35],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,34]},[]],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,40],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,39]},[]],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"middle","moduleName":["Middle"]}},"annotation":{"meta":null,"sourceSpan":{"end":[6,23],"start":[6,12]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Test"],"TestCls$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,37],"name":"tests/purus/passing/TransitiveImport/Test.purs","start":[8,33]},[]],"contents":[["Test"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"unitTestCls","moduleName":["Test"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[6,23],"start":[6,12]}},"argument":{"annotation":{"meta":{"metaType":"IsForeign"},"sourceSpan":{"end":[6,23],"start":[6,19]}},"kind":"Var","type":{"annotation":[{"end":[5,13],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[5,9]},[]],"contents":[["Test"],"Unit"],"tag":"TypeConstructor"},"value":{"identifier":"unit","moduleName":["Middle"]}},"kind":"App"},"identifier":"main"}],"exports":["main"],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Middle"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Prim"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Test"]}],"moduleName":["Main"],"modulePath":"tests/purus/passing/TransitiveImport/TransitiveImport.purs","reExports":{},"sourceSpan":{"end":[6,24],"start":[1,1]}} \ No newline at end of file +{"builtWith":"0.0.1","comments":[],"dataTypes":{},"decls":[{"annotation":{"meta":null,"sourceSpan":{"end":[5,15],"start":[5,3]}},"bindType":"NonRec","expression":{"abstraction":{"abstraction":{"annotation":{"meta":{"metaType":"IsForeign"},"sourceSpan":{"end":[6,18],"start":[6,12]}},"kind":"Var","type":{"annotation":[{"end":[8,50],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,11]},[]],"contents":{"identifier":"a","kind":{"annotation":[{"end":[8,28],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":0,"type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Test"],"TestCls$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,40],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,39]},[]],"contents":{"kind":{"annotation":[{"end":[8,28],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[{"end":[8,50],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,44]},[]],"contents":[{"annotation":[{"end":[8,50],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,44]},[]],"contents":[{"annotation":[{"end":[8,48],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,46]},[]],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,45],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,44]},[]],"contents":{"kind":{"annotation":[{"end":[8,28],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[{"end":[8,50],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,49]},[]],"contents":{"kind":{"annotation":[{"end":[8,28],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[8,24]},[]],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"var":"a"},"tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"value":{"identifier":"middle","moduleName":["Middle"]}},"annotation":{"meta":null,"sourceSpan":{"end":[6,23],"start":[6,12]}},"argument":{"annotation":{"meta":null,"sourceSpan":{"end":[0,0],"start":[0,0]}},"kind":"Var","type":{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[{"annotation":[{"end":[0,0],"name":"","start":[0,0]},[]],"contents":[["Test"],"TestCls$Dict"],"tag":"TypeConstructor"},{"annotation":[{"end":[8,37],"name":"tests/purus/passing/TransitiveImport/Test.purs","start":[8,33]},[]],"contents":[["Test"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"value":{"identifier":"unitTestCls","moduleName":["Test"]}},"kind":"App"},"annotation":{"meta":null,"sourceSpan":{"end":[6,23],"start":[6,12]}},"argument":{"annotation":{"meta":{"metaType":"IsForeign"},"sourceSpan":{"end":[6,23],"start":[6,19]}},"kind":"Var","type":{"annotation":[{"end":[5,13],"name":"tests/purus/passing/TransitiveImport/Middle.purs","start":[5,9]},[]],"contents":[["Test"],"Unit"],"tag":"TypeConstructor"},"value":{"identifier":"unit","moduleName":["Middle"]}},"kind":"App"},"identifier":"main"}],"exports":["main"],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Middle"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Prim"]},{"annotation":{"meta":null,"sourceSpan":{"end":[6,24],"start":[1,1]}},"moduleName":["Test"]}],"moduleName":["Main"],"modulePath":"tests/purus/passing/TransitiveImport/TransitiveImport.purs","reExports":{},"sourceSpan":{"end":[6,24],"start":[1,1]}} \ No newline at end of file diff --git a/tests/purus/passing/TransitiveImport/output/Main/index.cfn.pretty b/tests/purus/passing/TransitiveImport/output/Main/index.cfn.pretty index 489c6ce9f..614bf0282 100644 --- a/tests/purus/passing/TransitiveImport/output/Main/index.cfn.pretty +++ b/tests/purus/passing/TransitiveImport/output/Main/index.cfn.pretty @@ -11,8 +11,9 @@ Re-Exports: Foreign: Declarations: -main :: Unit +main :: Test.Unit main = - (middle: forall (a :: Type). TestCls$Dict a -> a -> a) - (unitTestCls: TestCls$Dict Unit) - (unit: Unit) \ No newline at end of file + (middle: forall (a :: Prim.Type). Test.TestCls$Dict (a :: Prim.Type) -> + (a :: Prim.Type) -> (a :: Prim.Type)) + (unitTestCls: Test.TestCls$Dict Test.Unit) + (unit: Test.Unit) \ No newline at end of file diff --git a/tests/purus/passing/TransitiveImport/output/Middle/externs.cbor b/tests/purus/passing/TransitiveImport/output/Middle/externs.cbor index f7167399adf2d61276b88ec89ccbac946d2546ad..8a5912d69282e03d329922e275bda4fa3ab633e0 100644 GIT binary patch delta 278 zcmcb?bAfL|12czFLnC8iVl(UHLKaIliDm{437N^qnZ3CroURMjB!aL~%e-W^NNhN=Riv>i>ooc93D5 zIuN5#c@VuadLTIiWW5<~rFqFEnfZBOd$_@xbsJ!AmcU^dM6n^nCYWLw9Euy87#RLf Ic4V{x0FHi8x&QzG delta 205 zcmcb>cY|j`12dOKLnC8iVq-IF(_}|RGj0Z)OB565x=K1sl+inE1b;g&i!&!y%yr64byHfLg1-A)x|N qp$0KLpeQr9i6O(SG%vX%Gd~Y%HXqa&WuVzmp~ a -> a +middle :: forall (a :: Prim.Type). Test.TestCls$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) middle = - \(dictTestCls: TestCls$Dict a) -> - (test: forall (@a :: Type). TestCls$Dict a -> a -> a) - (dictTestCls: TestCls$Dict a) \ No newline at end of file + \(dictTestCls: Test.TestCls$Dict (a :: Prim.Type)) -> + (test: forall (@a :: Prim.Type). Test.TestCls$Dict (a :: Prim.Type) -> + (a :: Prim.Type) -> (a :: Prim.Type)) + (dictTestCls: Test.TestCls$Dict (a :: Prim.Type)) \ No newline at end of file diff --git a/tests/purus/passing/TransitiveImport/output/Test/externs.cbor b/tests/purus/passing/TransitiveImport/output/Test/externs.cbor index 0432094b76b465226f187fb5c781cb49a74c9c21..323deda7ee50fd8377e5bab758db903d1c4d7614 100644 GIT binary patch delta 575 zcmaDPy;5mI9OGmMCUbUH(Pjo#3CYR1j4pyLj7=>J3C#=)3?ST)mS+x+r*F(QdyAte=;MJ{p8c!6PQ{UC--w(vG723Na4}}RCk`)Y;rso2gqPqT*?}o z7#Le7M=;Aw)@Nax+{?-_*^&7$%%PjPSb`W~oXK1)+CT-o$UfP8gVm9dOeaa;a?<3P z?2Az>sp80`g(W$YyE*tL^RkId{>CMYJw9-|QHom%*^QHnxL;B`95&zPVP^yYSFM|g delta 220 zcmZ3f^hkO`93x}n&o~pC-$22u a } -> { test :: a -> a } -TestCls$Dict = \(x: { test :: a -> a }) -> (x: { test :: a -> a }) +TestCls$Dict :: forall (a :: Prim.Type). { test :: (a :: Prim.Type) -> (a :: Prim.Type) } -> { test :: (a :: Prim.Type) -> (a :: Prim.Type) } +TestCls$Dict = + \(x: { test :: (a :: Prim.Type) -> (a :: Prim.Type) }) -> + (x: { test :: (a :: Prim.Type) -> (a :: Prim.Type) }) -unitTestCls :: TestCls$Dict Unit +unitTestCls :: Test.TestCls$Dict Test.Unit unitTestCls = - (TestCls$Dict: { test :: Unit -> Unit } -> TestCls$Dict Unit) - ({ test: \(v: Unit) -> (Unit: Unit) }: { test :: Unit -> Unit }) + (TestCls$Dict: { test :: Test.Unit -> Test.Unit } -> + Test.TestCls$Dict Test.Unit) + ({ test: \(v: Test.Unit) -> (Unit: Test.Unit) }: { + test :: Test.Unit -> + Test.Unit + }) -test :: forall (@a :: Type). TestCls$Dict a -> a -> a +test :: forall (@a :: Prim.Type). Test.TestCls$Dict (a :: Prim.Type) -> (a :: Prim.Type) -> (a :: Prim.Type) test = - \(dict: TestCls$Dict a) -> - case (dict: TestCls$Dict a) of - TestCls$Dict v -> (v: { test :: a -> a }).test \ No newline at end of file + \(dict: Test.TestCls$Dict (a :: Prim.Type)) -> + case (dict: Test.TestCls$Dict (a :: Prim.Type)) of + TestCls$Dict v -> + (v: { test :: (a :: Prim.Type) -> (a :: Prim.Type) }) + .test \ No newline at end of file