packages feed

uhc-light 1.1.7.4 → 1.1.8.0

raw patch · 329 files changed

+4964/−4230 lines, 329 filesdep ~uhc-lightdep ~uulibnew-component:exe:uhcrbinary-added

Dependency ranges changed: uhc-light, uulib

Files

103/lib/ag/CoreRun/AbsSyn.ag view
@@ -13,17 +13,19 @@   | Char        char            : {Char}   | String      str             : {String}   | Integer     integer         : {Integer}+  -- Debug only+  | Dbg			msg				: {String}  DATA Exp   -- base cases   | SExp        sexpr           : SExp    -- node constructor, tuple or data constructor, determined by tag-  | Tup         tag             : {CTag}-                args			: {CRArray Exp}+  | Tup         tag             : {Int}+                args			: {CRArray SExp}    -- let bindings, recursiveness allowed, yes/no eval made explicit in rhs of binding-  | Let         lev				: {Int}+  | Let         -- lev				: {Int}   				firstOff		: {Int}			-- offset of first binding   				ref2nm			: {Ref2Nm}		-- inverse lookup of locally introduced binding RRef's                 binds           : {CRArray Bind}@@ -32,11 +34,11 @@   -- application, abstraction   | App         -- isTailRec		: {Bool}   				func            : Exp-                args            : {CRArray Exp}+                args            : {CRArray SExp}   | Lam         mbNm			: {Maybe HsName}	-- possibly bound to name-  				lev				: {Int}				-- lexical level+  				-- lev				: {Int}				-- lexical level   				nrArgs          : {Int}				-- nr of arguments, 0 means it is a thunk-                nrBinds         : {Int}				-- nr stack frame locations to be allocated (excluding arguments) for locals+                -- nrBinds         : {Int}				-- nr stack frame locations to be allocated (excluding arguments) for locals                 stkDepth        : {Int}				-- max depth of stack                 ref2nm			: {Ref2Nm}			-- inverse lookup of locally introduced binding RRef's                 body            : Exp@@ -47,9 +49,11 @@    -- expr in a context to which must be returned (i.e. no tail rec)   -- | Ret			expr			: Exp+   -- expr in a case alternative result context (with local bindings to be removed)-  | RetCase		nrBinds			: {Int}-  				expr			: Exp+  -- | RetCase		nrBinds			: {Int}+  -- 				expr			: Exp+   -- Tail context   | Tail		expr			: Exp @@ -59,7 +63,7 @@    -- FFI call   | FFI         prim        	: {RunPrim}-                args			: {CRArray Exp}+                args			: {CRArray SExp} {-   | FFI         callconv        : {FFIWay}                 impEnt          : {ForeignEnt}@@ -67,16 +71,14 @@                 args			: {CRArray Exp} -} -  -- Debug only-  | Dbg			msg				: {String}  DATA Alt   | Alt         ref2nm			: {Ref2Nm}		-- inverse lookup of locally introduced binding RRef's-                pat             : Pat+                -- pat             : Pat                 expr            : Exp  DATA Pat-  | Con         tag             : {CTag}+  | Con         tag             : {Int}   | BoolExpr    expr            : Exp  SET AllNT
103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi view

binary file changed (6272 → 6272 bytes)

103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config view
@@ -1,2 +1,2 @@ exposed-modules: Data.Array-build-depends: uhcbase-1.1.7.4 base-3.0.0.0+build-depends: uhcbase-1.1.8.0 base-3.0.0.0
103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr view

binary file changed (160830 → 160830 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi view

binary file changed (115937 → 115937 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr view

binary file changed (169421 → 169766 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi view

binary file changed (140150 → 140150 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr view

binary file changed (5522 → 5522 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi view

binary file changed (10045 → 10045 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr view

binary file changed (16739 → 16739 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi view

binary file changed (18302 → 18302 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr view

binary file changed (13558 → 13558 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi view

binary file changed (13430 → 13430 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi view

binary file changed (7497 → 7497 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi view

binary file changed (8458 → 8458 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi view

binary file changed (4493 → 4493 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr view

binary file changed (229718 → 230402 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi view

binary file changed (49047 → 49047 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr view

binary file changed (40533 → 40533 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi view

binary file changed (28461 → 28461 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi view

binary file changed (3879 → 3879 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr view

binary file changed (72709 → 73168 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi view

binary file changed (32505 → 32505 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi view

binary file changed (4931 → 4931 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi view

binary file changed (4378 → 4378 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr view

binary file changed (371522 → 379658 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi view

binary file changed (182317 → 182317 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi view

binary file changed (5745 → 5745 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi view

binary file changed (6454 → 6454 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr view

binary file changed (3526 → 3526 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi view

binary file changed (7763 → 7763 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr view

binary file changed (122068 → 122068 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi view

binary file changed (79702 → 79702 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi view

binary file changed (6620 → 6620 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi view

binary file changed (64078 → 64078 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr view

binary file changed (220303 → 220303 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi view

binary file changed (77868 → 77868 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi view

binary file changed (5235 → 5235 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr view

binary file changed (191774 → 192459 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi view

binary file changed (69305 → 69305 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr view

binary file changed (36202 → 36202 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi view

binary file changed (27804 → 27804 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi view

binary file changed (4498 → 4498 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr view

binary file changed (228086 → 228330 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi view

binary file changed (49978 → 49978 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi view

binary file changed (5464 → 5464 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi view

binary file changed (6144 → 6144 bytes)

103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config view
@@ -1,2 +1,2 @@ exposed-modules: Control.Applicative Control.Arrow Control.Category Control.Monad.Fix Control.Monad.Instances Control.Monad.ST.Lazy Control.Monad.ST Data.Bool Data.Complex Data.Dynamic Data.Eq Data.Foldable Data.Function Data.Ix Data.Monoid Data.Ord Data.Ratio Data.String Data.Traversable Numeric Prelude System.Console.GetOpt System.Environment System.Exit Text.ParserCombinators.ReadP Text.ParserCombinators.ReadPrec Text.Read.Lex Text.Read Text.Show.Functions Text.Show-build-depends: uhcbase-1.1.7.4+build-depends: uhcbase-1.1.8.0
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.cr

binary file changed (59274 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.hi

binary file changed (27704 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.cr

binary file changed (81556 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.hi

binary file changed (24833 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.cr

binary file changed (11057 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.hi

binary file changed (5668 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.cr

binary file changed (6448 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.hi

binary file changed (3864 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.cr

binary file changed (3362 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.hi

binary file changed (3315 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.cr

binary file changed (201705 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.hi

binary file changed (46537 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.cr

binary file changed (7855 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.hi

binary file changed (4487 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.cr

binary file changed (169654 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.hi

binary file changed (112734 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.cr

binary file changed (3050 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.hi

binary file changed (4479 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.cr

binary file changed (405 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.hi

binary file changed (3275 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.cr

binary file changed (149 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.hi

binary file changed (2259 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.cr

binary file changed (19571 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.hi

binary file changed (14489 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.cr

binary file changed (28631 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.hi

binary file changed (16760 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.cr

binary file changed (4710 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.hi

binary file changed (2294 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.cr

binary file changed (951 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.hi

binary file changed (1984 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.cr

binary file changed (213991 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.hi

binary file changed (64563 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.cr

binary file changed (2083123 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.hi

binary file changed (950228 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.cr

binary file changed (12702 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.hi

binary file changed (5335 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.cr

binary file changed (120616 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.hi

binary file changed (60961 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.cr

binary file changed (29019 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.hi

binary file changed (21229 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.cr

binary file changed (5196 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.hi

binary file changed (1288 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.cr

binary file changed (8067 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.hi

binary file changed (4111 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.cr

binary file changed (105918 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.hi

binary file changed (66535 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.cr

binary file changed (58776 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.hi

binary file changed (4807 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.cr

binary file changed (651 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.hi

binary file changed (1259 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.cr

binary file changed (207 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.hi

binary file changed (16434 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.cr

binary file changed (660787 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.hi

binary file changed (421402 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.cr

binary file changed (17942 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.hi

binary file changed (11367 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.cr

binary file changed (15077 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.hi

binary file changed (5975 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.cr

binary file changed (274670 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.hi

binary file changed (144192 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.cr

binary file changed (75873 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.hi

binary file changed (30408 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.cr

binary file changed (36959 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.hi

binary file changed (23239 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.cr

binary file changed (28401 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.hi

binary file changed (10285 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.cr

binary file changed (18012 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.hi

binary file changed (10662 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.cr

binary file changed (12018 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.hi

binary file changed (5421 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.cr

binary file changed (68629 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.hi

binary file changed (21837 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.cr

binary file changed (192936 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.hi

binary file changed (73547 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.cr

binary file changed (24745 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.hi

binary file changed (21209 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.cr

binary file changed (87122 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.hi

binary file changed (17136 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.cr

binary file changed (7166 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.hi

binary file changed (1916 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.cr

binary file changed (11555 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.hi

binary file changed (5056 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.cr

binary file changed (47124 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.hi

binary file changed (31438 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.cr

binary file changed (22510 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.hi

binary file changed (15348 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.cr

binary file changed (151263 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.hi

binary file changed (36709 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.cr

binary file changed (21492 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.hi

binary file changed (16107 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.cr

binary file changed (141 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.hi

binary file changed (1380 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.cr

binary file changed (67781 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.hi

binary file changed (51972 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.cr

binary file changed (26655 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.hi

binary file changed (18131 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.cr

binary file changed (13463 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.hi

binary file changed (9775 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.cr

binary file changed (140 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.hi

binary file changed (853 → absent bytes)

− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/CTypes.h
@@ -1,231 +0,0 @@-{- ---------------------------------------------------------------------------// Dirty CPP hackery for CTypes/CTypesISO-//-// (c) The FFI task force, 2000-// ----------------------------------------------------------------------------}--#ifndef CTYPES__H-#define CTYPES__H--#include "Typeable.h"--{--// As long as there is no automatic derivation of classes for newtypes we resort-// to extremely dirty cpp-hackery.   :-P   Some care has to be taken when the-// macros below are modified, otherwise the layout rule will bite you.--}----  // A hacked version for GHC follows the Haskell 98 version...-#ifndef __GLASGOW_HASKELL__--#define NEWTYPE_TYPE_NODERIVING(T,B) \-newtype T = T B ; --#define NEWTYPE_TYPE(T,B) \-newtype T = T B deriving (Eq, Ord) ; --#define ARITHMETIC_TYPE_INSTANCES(T,C,S,B) \-INSTANCE_NUM(T) ; \-INSTANCE_REAL(T) ; \-INSTANCE_READ(T,B) ; \-INSTANCE_SHOW(T,B) ; \-INSTANCE_ENUM(T) ; \-INSTANCE_STORABLE(T) ; \-INSTANCE_TYPEABLE0(T,C,S) ;--#define INTEGRAL_TYPE_INSTANCES(T,C,S,B) \-INSTANCE_BOUNDED(T) ; \-INSTANCE_INTEGRAL(T) ; \-INSTANCE_BITS(T)--#define ARITHMETIC_TYPE(T,C,S,B) \-NEWTYPE_TYPE(T,B) ; \-ARITHMETIC_TYPE_INSTANCES(T,C,S,B) ;--#define INTEGRAL_TYPE(T,C,S,B) \-ARITHMETIC_TYPE(T,C,S,B) ; \-INTEGRAL_TYPE_INSTANCES(T,C,S,B)--#define FLOATING_TYPE(T,C,S,B) \-ARITHMETIC_TYPE(T,C,S,B) ; \-INSTANCE_FRACTIONAL(T) ; \-INSTANCE_FLOATING(T) ; \-INSTANCE_REALFRAC(T) ; \-INSTANCE_REALFLOAT(T)--#ifndef __GLASGOW_HASKELL__-#define fakeMap map-#endif--#define INSTANCE_READ(T,B) \-instance Read T where { \-   readsPrec p s = fakeMap (\(x, t) -> (T x, t)) (readsPrec p s) }--#define INSTANCE_SHOW(T,B) \-instance Show T where { \-   showsPrec p (T x) = showsPrec p x }--#define INSTANCE_NUM(T) \-instance Num T where { \-   (T i) + (T j) = T (i + j) ; \-   (T i) - (T j) = T (i - j) ; \-   (T i) * (T j) = T (i * j) ; \-   negate  (T i) = T (negate i) ; \-   abs     (T i) = T (abs    i) ; \-   signum  (T i) = T (signum i) ; \-   fromInteger x = T (fromInteger x) }--#define INSTANCE_EQ(T) \-instance Eq T where { \-   (T x1) == (T x2) = x1 == x2 }--#define INSTANCE_ORD(T) \-instance Ord T where { \-   (T x1) `compare` (T x2) = x1 `compare` x2 }--#define INSTANCE_BOUNDED(T) \-instance Bounded T where { \-   minBound = T minBound ; \-   maxBound = T maxBound }--#define INSTANCE_ENUM(T) \-instance Enum T where { \-   succ           (T i)             = T (succ i) ; \-   pred           (T i)             = T (pred i) ; \-   toEnum               x           = T (toEnum x) ; \-   fromEnum       (T i)             = fromEnum i ; \-   enumFrom       (T i)             = fakeMap T (enumFrom i) ; \-   enumFromThen   (T i) (T j)       = fakeMap T (enumFromThen i j) ; \-   enumFromTo     (T i) (T j)       = fakeMap T (enumFromTo i j) ; \-   enumFromThenTo (T i) (T j) (T k) = fakeMap T (enumFromThenTo i j k) }--#define INSTANCE_REAL(T) \-instance Real T where { \-   toRational (T i) = toRational i }--#define INSTANCE_INTEGRAL(T) \-instance Integral T where { \-   (T i) `quot`    (T j) = T (i `quot` j) ; \-   (T i) `rem`     (T j) = T (i `rem`  j) ; \-   (T i) `div`     (T j) = T (i `div`  j) ; \-   (T i) `mod`     (T j) = T (i `mod`  j) ; \-   (T i) `quotRem` (T j) = let (q,r) = i `quotRem` j in (T q, T r) ; \-   (T i) `divMod`  (T j) = let (d,m) = i `divMod`  j in (T d, T m) ; \-   toInteger (T i)       = toInteger i }--#define INSTANCE_BITS(T) \-instance Bits T where { \-  (T x) .&.     (T y)   = T (x .&.   y) ; \-  (T x) .|.     (T y)   = T (x .|.   y) ; \-  (T x) `xor`   (T y)   = T (x `xor` y) ; \-  complement    (T x)   = T (complement x) ; \-  shift         (T x) n = T (shift x n) ; \-  rotate        (T x) n = T (rotate x n) ; \-  bit                 n = T (bit n) ; \-  setBit        (T x) n = T (setBit x n) ; \-  clearBit      (T x) n = T (clearBit x n) ; \-  complementBit (T x) n = T (complementBit x n) ; \-  testBit       (T x) n = testBit x n ; \-  bitSize       (T x)   = bitSize x ; \-  isSigned      (T x)   = isSigned x }--#define INSTANCE_FRACTIONAL(T) \-instance Fractional T where { \-   (T x) / (T y)  = T (x / y) ; \-   recip   (T x)  = T (recip x) ; \-   fromRational r = T (fromRational r) }--#define INSTANCE_FLOATING(T) \-instance Floating T where { \-   pi                    = pi ; \-   exp   (T x)           = T (exp   x) ; \-   log   (T x)           = T (log   x) ; \-   sqrt  (T x)           = T (sqrt  x) ; \-   (T x) **        (T y) = T (x ** y) ; \-   (T x) `logBase` (T y) = T (x `logBase` y) ; \-   sin   (T x)           = T (sin   x) ; \-   cos   (T x)           = T (cos   x) ; \-   tan   (T x)           = T (tan   x) ; \-   asin  (T x)           = T (asin  x) ; \-   acos  (T x)           = T (acos  x) ; \-   atan  (T x)           = T (atan  x) ; \-   sinh  (T x)           = T (sinh  x) ; \-   cosh  (T x)           = T (cosh  x) ; \-   tanh  (T x)           = T (tanh  x) ; \-   asinh (T x)           = T (asinh x) ; \-   acosh (T x)           = T (acosh x) ; \-   atanh (T x)           = T (atanh x) }--#define INSTANCE_REALFRAC(T) \-instance RealFrac T where { \-   properFraction (T x) = let (m,y) = properFraction x in (m, T y) ; \-   truncate (T x) = truncate x ; \-   round    (T x) = round x ; \-   ceiling  (T x) = ceiling x ; \-   floor    (T x) = floor x }--#define INSTANCE_REALFLOAT(T) \-instance RealFloat T where { \-   floatRadix     (T x) = floatRadix x ; \-   floatDigits    (T x) = floatDigits x ; \-   floatRange     (T x) = floatRange x ; \-   decodeFloat    (T x) = decodeFloat x ; \-   encodeFloat m n      = T (encodeFloat m n) ; \-   exponent       (T x) = exponent x ; \-   significand    (T x) = T (significand  x) ; \-   scaleFloat n   (T x) = T (scaleFloat n x) ; \-   isNaN          (T x) = isNaN x ; \-   isInfinite     (T x) = isInfinite x ; \-   isDenormalized (T x) = isDenormalized x ; \-   isNegativeZero (T x) = isNegativeZero x ; \-   isIEEE         (T x) = isIEEE x ; \-   (T x) `atan2`  (T y) = T (x `atan2` y) }--#define INSTANCE_STORABLE(T) \-instance Storable T where { \-   sizeOf    (T x)       = sizeOf x ; \-   alignment (T x)       = alignment x ; \-   peekElemOff a i       = liftM T (peekElemOff (castPtr a) i) ; \-   pokeElemOff a i (T x) = pokeElemOff (castPtr a) i x }--#else /* __GLASGOW_HASKELL__ */----  // GHC can derive any class for a newtype, so we make use of that here...--#define ARITHMETIC_CLASSES  Eq,Ord,Num,Enum,Storable,Real-#define INTEGRAL_CLASSES Bounded,Integral,Bits-#define FLOATING_CLASSES Fractional,Floating,RealFrac,RealFloat--#define ARITHMETIC_TYPE(T,C,S,B) \-newtype T = T B deriving (ARITHMETIC_CLASSES); \-INSTANCE_READ(T,B); \-INSTANCE_SHOW(T,B); \-INSTANCE_TYPEABLE0(T,C,S) ;--#define INTEGRAL_TYPE(T,C,S,B) \-newtype T = T B deriving (ARITHMETIC_CLASSES, INTEGRAL_CLASSES); \-INSTANCE_READ(T,B); \-INSTANCE_SHOW(T,B); \-INSTANCE_TYPEABLE0(T,C,S) ;--#define FLOATING_TYPE(T,C,S,B) \-newtype T = T B deriving (ARITHMETIC_CLASSES, FLOATING_CLASSES); \-INSTANCE_READ(T,B); \-INSTANCE_SHOW(T,B); \-INSTANCE_TYPEABLE0(T,C,S) ;--#define INSTANCE_READ(T,B) \-instance Read T where { \-   readsPrec            = unsafeCoerce# (readsPrec :: Int -> ReadS B); \-   readList             = unsafeCoerce# (readList  :: ReadS [B]); }--#define INSTANCE_SHOW(T,B) \-instance Show T where { \-   showsPrec            = unsafeCoerce# (showsPrec :: Int -> B -> ShowS); \-   show                 = unsafeCoerce# (show :: B -> String); \-   showList             = unsafeCoerce# (showList :: [B] -> ShowS); }--#endif /* __GLASGOW_HASKELL__ */--#endif
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBase.h
@@ -1,757 +0,0 @@-/* ------------------------------------------------------------------------------ *- * (c) The University of Glasgow 2001-2004- *- * Definitions for package `base' which are visible in Haskell land.- *- * Adapted for use in EHC- *- * ---------------------------------------------------------------------------*/--#ifndef __HSBASE_H__-#define __HSBASE_H__--#include "HsBaseConfig.h"-#ifdef __UHC_BUILDS_O__-#include "rts.h"-#endif--/* ultra-evil... */-#undef PACKAGE_BUGREPORT-#undef PACKAGE_NAME-#undef PACKAGE_STRING-#undef PACKAGE_TARNAME-#undef PACKAGE_VERSION--/* Needed to get the macro version of errno on some OSs (eg. Solaris).-   We must do this, because these libs are only compiled once, but-   must work in both single-threaded and multi-threaded programs. */-#define _REENTRANT 1--#ifndef __UHC__-#include "HsFFI.h"-#endif /* !__UHC__ */--#include <stdio.h>-#include <stdlib.h>-#include <math.h>--#if HAVE_SYS_TYPES_H-#include <sys/types.h>-#endif-#if HAVE_UNISTD_H-#include <unistd.h>-#endif-#if HAVE_SYS_STAT_H-#include <sys/stat.h>-#endif-#if HAVE_FCNTL_H-# include <fcntl.h>-#endif-#if HAVE_TERMIOS_H-#include <termios.h>-#endif-#if HAVE_SIGNAL_H-#include <signal.h>-/* Ultra-ugly: OpenBSD uses broken macros for sigemptyset and sigfillset (missing casts) */-#if __OpenBSD__-#undef sigemptyset-#undef sigfillset-#endif-#endif-#if HAVE_ERRNO_H-#include <errno.h>-#endif-#if HAVE_STRING_H-#include <string.h>-#endif-#if HAVE_DIRENT_H-#include <dirent.h>-#endif-#if HAVE_UTIME_H-#include <utime.h>-#endif-#if HAVE_SYS_UTSNAME_H-#include <sys/utsname.h>-#endif-#if HAVE_GETTIMEOFDAY-#  if HAVE_SYS_TIME_H-#   include <sys/time.h>-#  endif-#elif HAVE_GETCLOCK-# if HAVE_SYS_TIMERS_H-#  define POSIX_4D9 1-#  include <sys/timers.h>-# endif-#endif-#if HAVE_TIME_H-#include <time.h>-#endif-#if HAVE_SYS_TIMEB_H-#include <sys/timeb.h>-#endif-#if HAVE_WINDOWS_H-#include <windows.h>-#endif-#if HAVE_SYS_TIMES_H-#include <sys/times.h>-#endif-#if HAVE_WINSOCK_H && defined(__MINGW32__)-#include <winsock.h>-#endif-#if HAVE_LIMITS_H-#include <limits.h>-#endif-#if HAVE_WCTYPE_H-#include <wctype.h>-#endif-#if HAVE_INTTYPES_H-# include <inttypes.h>-#elif HAVE_STDINT_H-# include <stdint.h>-#endif--#if !defined(__MINGW32__) && !defined(irix_HOST_OS)-# if HAVE_SYS_RESOURCE_H-#  include <sys/resource.h>-# endif-#endif--#if !HAVE_GETRUSAGE && HAVE_SYS_SYSCALL_H-# include <sys/syscall.h>-# if defined(SYS_GETRUSAGE)	/* hpux_HOST_OS */-#  define getrusage(a, b)  syscall(SYS_GETRUSAGE, a, b)-#  define HAVE_GETRUSAGE 1-# endif-#endif--/* For System */-#if HAVE_SYS_WAIT_H-#include <sys/wait.h>-#endif-#if HAVE_VFORK_H-#include <vfork.h>-#endif--#ifndef __UHC__-#include "dirUtils.h"-#endif-#ifndef __UHC__-#include "WCsubst.h"-#endif /* !__UHC__ */--#if defined(__MINGW32__)-/* in Win32Utils.c */-extern void maperrno (void);-extern HsWord64 getUSecOfDay(void);-#endif--#if defined(__MINGW32__)-#include <io.h>-#include <fcntl.h>-#include <shlobj.h>-#include <share.h>-#endif--#if HAVE_SYS_SELECT_H-#include <sys/select.h>-#endif--/* in inputReady.c */-extern int fdReady(int fd, int write, int msecs, int isSock);--#ifndef __UHC__-/* in Signals.c */-extern HsInt nocldstop;-#endif /* !__UHC__ */--#ifndef __UHC__-/* ------------------------------------------------------------------------------   64-bit operations, defined in longlong.c-   -------------------------------------------------------------------------- */--#ifdef SUPPORT_LONG_LONGS--HsBool hs_gtWord64 (HsWord64, HsWord64);-HsBool hs_geWord64 (HsWord64, HsWord64);-HsBool hs_eqWord64 (HsWord64, HsWord64);-HsBool hs_neWord64 (HsWord64, HsWord64);-HsBool hs_ltWord64 (HsWord64, HsWord64);-HsBool hs_leWord64 (HsWord64, HsWord64);--HsBool hs_gtInt64 (HsInt64, HsInt64);-HsBool hs_geInt64 (HsInt64, HsInt64);-HsBool hs_eqInt64 (HsInt64, HsInt64);-HsBool hs_neInt64 (HsInt64, HsInt64);-HsBool hs_ltInt64 (HsInt64, HsInt64);-HsBool hs_leInt64 (HsInt64, HsInt64);--HsWord64 hs_remWord64  (HsWord64, HsWord64);-HsWord64 hs_quotWord64 (HsWord64, HsWord64);--HsInt64 hs_remInt64    (HsInt64, HsInt64);-HsInt64 hs_quotInt64   (HsInt64, HsInt64);-HsInt64 hs_negateInt64 (HsInt64);-HsInt64 hs_plusInt64   (HsInt64, HsInt64);-HsInt64 hs_minusInt64  (HsInt64, HsInt64);-HsInt64 hs_timesInt64  (HsInt64, HsInt64);--HsWord64 hs_and64  (HsWord64, HsWord64);-HsWord64 hs_or64   (HsWord64, HsWord64);-HsWord64 hs_xor64  (HsWord64, HsWord64);-HsWord64 hs_not64  (HsWord64);--HsWord64 hs_uncheckedShiftL64   (HsWord64, HsInt);-HsWord64 hs_uncheckedShiftRL64  (HsWord64, HsInt);-HsInt64  hs_uncheckedIShiftL64  (HsInt64, HsInt);-HsInt64  hs_uncheckedIShiftRA64 (HsInt64, HsInt);-HsInt64  hs_uncheckedIShiftRL64 (HsInt64, HsInt);--HsInt64  hs_intToInt64    (HsInt);-HsInt    hs_int64ToInt    (HsInt64);-HsWord64 hs_int64ToWord64 (HsInt64);-HsWord64 hs_wordToWord64  (HsWord);-HsWord   hs_word64ToWord  (HsWord64);-HsInt64  hs_word64ToInt64 (HsWord64);--HsWord64 hs_integerToWord64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);-HsInt64  hs_integerToInt64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);--#endif /* SUPPORT_LONG_LONGS */-#endif /* !__UHC__ */--/* ------------------------------------------------------------------------------   INLINE functions.--   These functions are given as inlines here for when compiling via C,-   but we also generate static versions into the cbits library for-   when compiling to native code.-   -------------------------------------------------------------------------- */--#ifndef INLINE-# if defined(_MSC_VER)-#  define INLINE extern __inline-# else-#  define INLINE static inline-# endif-#endif--INLINE int __hscore_get_errno(void) { return errno; }-INLINE void __hscore_set_errno(int e) { errno = e; }--#if !defined(_MSC_VER)-INLINE int __hscore_s_isreg(mode_t m)  { return S_ISREG(m);  }-INLINE int __hscore_s_isdir(mode_t m)  { return S_ISDIR(m);  }-INLINE int __hscore_s_isfifo(mode_t m) { return S_ISFIFO(m); }-INLINE int __hscore_s_isblk(mode_t m)  { return S_ISBLK(m);  }-INLINE int __hscore_s_ischr(mode_t m)  { return S_ISCHR(m);  }-#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)-INLINE int __hscore_s_issock(mode_t m) { return S_ISSOCK(m); }-#endif-#endif--#if ( !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32) ) || defined(__CYGWIN__)-INLINE int-__hscore_sigemptyset( sigset_t *set )-{ return sigemptyset(set); }--INLINE int-__hscore_sigfillset( sigset_t *set )-{ return sigfillset(set); }--INLINE int-__hscore_sigaddset( sigset_t * set, int s )-{ return sigaddset(set,s); }--INLINE int-__hscore_sigdelset( sigset_t * set, int s )-{ return sigdelset(set,s); }--INLINE int-__hscore_sigismember( sigset_t * set, int s )-{ return sigismember(set,s); }-#endif--INLINE void *-__hscore_memcpy_dst_off( char *dst, int dst_off, char *src, size_t sz )-{ return memcpy(dst+dst_off, src, sz); }--INLINE void *-__hscore_memcpy_src_off( char *dst, char *src, int src_off, size_t sz )-{ return memcpy(dst, src+src_off, sz); }--INLINE HsBool-__hscore_supportsTextMode()-{-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)-  return HS_BOOL_FALSE;-#else-  return HS_BOOL_TRUE;-#endif-}--INLINE HsInt-__hscore_bufsiz()-{-  return BUFSIZ;-}--INLINE int-__hscore_seek_cur()-{-  return SEEK_CUR;-}--INLINE int-__hscore_o_binary()-{-#if defined(_MSC_VER)-  return O_BINARY;-#else-  return CONST_O_BINARY;-#endif-}--INLINE int-__hscore_o_rdonly()-{-#ifdef O_RDONLY-  return O_RDONLY;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_wronly( void )-{-#ifdef O_WRONLY-  return O_WRONLY;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_rdwr( void )-{-#ifdef O_RDWR-  return O_RDWR;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_append( void )-{-#ifdef O_APPEND-  return O_APPEND;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_creat( void )-{-#ifdef O_CREAT-  return O_CREAT;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_excl( void )-{-#ifdef O_EXCL-  return O_EXCL;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_trunc( void )-{-#ifdef O_TRUNC-  return O_TRUNC;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_noctty( void )-{-#ifdef O_NOCTTY-  return O_NOCTTY;-#else-  return 0;-#endif-}--INLINE int-__hscore_o_nonblock( void )-{-#ifdef O_NONBLOCK-  return O_NONBLOCK;-#else-  return 0;-#endif-}--INLINE int-__hscore_seek_set( void )-{-  return SEEK_SET;-}--INLINE int-__hscore_seek_end( void )-{-  return SEEK_END;-}--INLINE int-__hscore_ftruncate( int fd, off_t where )-{-#if defined(HAVE_FTRUNCATE)-  return ftruncate(fd,where);-#elif defined(HAVE__CHSIZE)-  return _chsize(fd,where);-#else-// ToDo: we should use _chsize_s() on Windows which allows a 64-bit-// offset, but it doesn't seem to be available from mingw at this time -// --SDM (01/2008)-#error at least ftruncate or _chsize functions are required to build-#endif-}--#ifndef __UHC__-INLINE int-__hscore_setmode( int fd, HsBool toBin )-{-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)-  return setmode(fd,(toBin == HS_BOOL_TRUE) ? _O_BINARY : _O_TEXT);-#else-  return 0;-#endif-}-#endif /* !__UHC__ */--#if __GLASGOW_HASKELL__--INLINE int-__hscore_PrelHandle_write( int fd, void *ptr, HsInt off, int sz )-{-  return write(fd,(char *)ptr + off, sz);-}--INLINE int-__hscore_PrelHandle_read( int fd, void *ptr, HsInt off, int sz )-{-  return read(fd,(char *)ptr + off, sz);--}--#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)-INLINE int-__hscore_PrelHandle_send( int fd, void *ptr, HsInt off, int sz )-{-    return send(fd,(char *)ptr + off, sz, 0);-}--INLINE int-__hscore_PrelHandle_recv( int fd, void *ptr, HsInt off, int sz )-{-    return recv(fd,(char *)ptr + off, sz, 0);-}-#endif--#endif /* __GLASGOW_HASKELL__ */--INLINE int-__hscore_mkdir( char *pathName, int mode )-{-#if ( defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) ) && !defined(__CYGWIN__)-  return mkdir(pathName);-#else-  return mkdir(pathName,mode);-#endif-}--INLINE int-__hscore_lstat( const char *fname, struct stat *st )-{-#if HAVE_LSTAT-  return lstat(fname, st);-#else-  return stat(fname, st);-#endif-}--INLINE char *-__hscore_d_name( struct dirent* d )-{-  return (d->d_name);-}--INLINE int-__hscore_end_of_dir( void )-{-  return READDIR_ERRNO_EOF;-}--INLINE void-__hscore_free_dirent(struct dirent *dEnt)-{-#if HAVE_READDIR_R-  free(dEnt);-#endif-}--#if defined(__MINGW32__)-// We want the versions of stat/fstat/lseek that use 64-bit offsets,-// and you have to ask for those explicitly.  Unfortunately there-// doesn't seem to be a 64-bit version of truncate/ftruncate, so while-// hFileSize and hSeek will work with large files, hSetFileSize will not.-#define stat(file,buf)       _stati64(file,buf)-#define fstat(fd,buf)        _fstati64(fd,buf)-typedef struct _stati64 struct_stat;-typedef off64_t stsize_t;-#else-typedef struct stat struct_stat;-typedef off_t stsize_t;-#endif--INLINE HsInt-__hscore_sizeof_stat( void )-{-  return sizeof(struct_stat);-}--INLINE time_t __hscore_st_mtime ( struct_stat* st ) { return st->st_mtime; }-INLINE stsize_t __hscore_st_size  ( struct_stat* st ) { return st->st_size; }-#if !defined(_MSC_VER)-INLINE mode_t __hscore_st_mode  ( struct_stat* st ) { return st->st_mode; }-INLINE dev_t  __hscore_st_dev  ( struct_stat* st ) { return st->st_dev; }-INLINE ino_t  __hscore_st_ino  ( struct_stat* st ) { return st->st_ino; }-#endif--#if HAVE_TERMIOS_H-INLINE tcflag_t __hscore_lflag( struct termios* ts ) { return ts->c_lflag; }--INLINE void-__hscore_poke_lflag( struct termios* ts, tcflag_t t ) { ts->c_lflag = t; }--INLINE unsigned char*-__hscore_ptr_c_cc( struct termios* ts )-{ return (unsigned char*) &ts->c_cc; }--INLINE HsInt-__hscore_sizeof_termios( void )-{-#ifndef __MINGW32__-  return sizeof(struct termios);-#else-  return 0;-#endif-}-#endif--//sizeof_sigset_t is also use on windows systems which define tcflat_t. Why exclude it?-// #if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32)-INLINE HsInt-__hscore_sizeof_sigset_t( void )-{-  return sizeof(sigset_t);-}-// #endif--INLINE int-__hscore_echo( void )-{-#ifdef ECHO-  return ECHO;-#else-  return 0;-#endif--}--INLINE int-__hscore_tcsanow( void )-{-#ifdef TCSANOW-  return TCSANOW;-#else-  return 0;-#endif--}--INLINE int-__hscore_icanon( void )-{-#ifdef ICANON-  return ICANON;-#else-  return 0;-#endif-}--INLINE int __hscore_vmin( void )-{-#ifdef VMIN-  return VMIN;-#else-  return 0;-#endif-}--INLINE int __hscore_vtime( void )-{-#ifdef VTIME-  return VTIME;-#else-  return 0;-#endif-}--INLINE int __hscore_sigttou( void )-{-#ifdef SIGTTOU-  return SIGTTOU;-#else-  return 0;-#endif-}--INLINE int __hscore_sig_block( void )-{-#ifdef SIG_BLOCK-  return SIG_BLOCK;-#else-  return 0;-#endif-}--INLINE int __hscore_sig_setmask( void )-{-#ifdef SIG_SETMASK-  return SIG_SETMASK;-#else-  return 0;-#endif-}--INLINE int-__hscore_f_getfl( void )-{-#ifdef F_GETFL-  return F_GETFL;-#else-  return 0;-#endif-}--INLINE int-__hscore_f_setfl( void )-{-#ifdef F_SETFL-  return F_SETFL;-#else-  return 0;-#endif-}--// defined in rts/RtsStartup.c.-extern void* __hscore_get_saved_termios(int fd);-extern void __hscore_set_saved_termios(int fd, void* ts);--INLINE int __hscore_hs_fileno (FILE *f) { return fileno (f); }--INLINE int __hscore_open(char *file, int how, mode_t mode) {-#ifdef __MINGW32__-	if ((how & O_WRONLY) || (how & O_RDWR) || (how & O_APPEND))-	  return _sopen(file,how,_SH_DENYRW,mode);-	else-	  return _sopen(file,how,_SH_DENYWR,mode);-#else-	return open(file,how,mode);-#endif-}--// These are wrapped because on some OSs (eg. Linux) they are-// macros which redirect to the 64-bit-off_t versions when large file-// support is enabled.-//-#if defined(__MINGW32__)-INLINE off64_t __hscore_lseek(int fd, off64_t off, int whence) {-	return (_lseeki64(fd,off,whence));-}-#else-INLINE off_t __hscore_lseek(int fd, off_t off, int whence) {-	return (lseek(fd,off,whence));-}-#endif--INLINE HsInt __hscore_stat(char *file, struct_stat *buf) {-	return (stat(file,buf));-}--INLINE HsInt __hscore_fstat(int fd, struct_stat *buf) {-	return (fstat(fd,buf));-}--// select-related stuff--#if !defined(__MINGW32__)-INLINE int  hsFD_SETSIZE(void) { return FD_SETSIZE; }-INLINE int  hsFD_ISSET(int fd, fd_set *fds) { return FD_ISSET(fd, fds); }-INLINE void hsFD_SET(int fd, fd_set *fds) { FD_SET(fd, fds); }-INLINE HsInt sizeof_fd_set(void) { return sizeof(fd_set); }-extern void hsFD_ZERO(fd_set *fds);-#endif--// gettimeofday()-related--#if !defined(__MINGW32__)--INLINE HsInt sizeofTimeVal(void) { return sizeof(struct timeval); }--INLINE HsWord64 getUSecOfDay(void)-{-    struct timeval tv;-    gettimeofday(&tv, (struct timezone *) NULL);-    // Don't forget to cast *before* doing the arithmetic, otherwise-    // the arithmetic happens at the type of tv_sec, which is probably-    // only 'int'.-    return ((HsWord64)tv.tv_sec * 1000000 + (HsWord64)tv.tv_usec);-}--INLINE void setTimevalTicks(struct timeval *p, HsWord64 usecs)-{-    p->tv_sec  = usecs / 1000000;-    p->tv_usec = usecs % 1000000;-}-#endif /* !defined(__MINGW32__) */--/* ToDo: write a feature test that doesn't assume 'environ' to- *    be in scope at link-time. */-extern char** environ;-INLINE char **__hscore_environ() { return environ; }--/* lossless conversions between pointers and integral types */-INLINE void *    __hscore_from_uintptr(uintptr_t n) { return (void *)n; }-INLINE void *    __hscore_from_intptr (intptr_t n)  { return (void *)n; }-INLINE uintptr_t __hscore_to_uintptr  (void *p)     { return (uintptr_t)p; }-INLINE intptr_t  __hscore_to_intptr   (void *p)     { return (intptr_t)p; }--void errorBelch2(const char*s, char *t);-void debugBelch2(const char*s, char *t);--#endif /* __HSBASE_H__ */-
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBaseConfig.h
@@ -1,944 +0,0 @@-/* ehclib/uhcbase/include/HsBaseConfig.h.  Generated from HsBaseConfig.h.in by configure.  */-#ifndef HSBASECONFIG_H-#define HSBASECONFIG_H--#include "MachDeps.h"--/********************************************************************/-/**** Sizes                                                      ****/-/********************************************************************/--#if SIZEOF_INTPTR_T == 8-#define HTYPE_INTPTR_T 			Int64-#define HTYPE_UINTPTR_T 		Word64-#else-#define HTYPE_INTPTR_T 			Int32-#define HTYPE_UINTPTR_T 		Word32-#endif--/* also here: typedef int sig_atomic_t- */-#if SIZEOF_INT == 8-#define HTYPE_INT 				Int64-#define HTYPE_UNSIGNED_INT 		Word64-#define HTYPE_SIG_ATOMIC_T 		Word64-#else-#define HTYPE_INT 				Int32-#define HTYPE_UNSIGNED_INT 		Word32-#define HTYPE_SIG_ATOMIC_T 		Word32-#endif--#if SIZEOF_LONG == 8-#define HTYPE_LONG 				Int64-#define HTYPE_UNSIGNED_LONG 	Word64-#else-#define HTYPE_LONG 				Int32-#define HTYPE_UNSIGNED_LONG 	Word32-#endif--#if SIZEOF_VOID_P == 8-#define HTYPE_PTRDIFF_T 		Int64-#else-#define HTYPE_PTRDIFF_T 		Int32-#endif--#if SIZEOF_CLOCK_T == 8-#define HTYPE_CLOCK_T 			Word64-#else-#define HTYPE_CLOCK_T 			Word32-#endif--#if SIZEOF_TIME_T == 8-#define HTYPE_TIME_T 			Word64-#else-#define HTYPE_TIME_T 			Word32-#endif--#if SIZEOF_USECONDS_T == 8-#define HTYPE_USECONDS_T 		Word64-#else-#define HTYPE_USECONDS_T 		Word32-#endif--#if SIZEOF_SIZE_T == 8-#define HTYPE_SIZE_T 			Word64-#else-#define HTYPE_SIZE_T 			Word32-#endif--#if SIZEOF_WCHAR_T == 1-#define HTYPE_WCHAR_T 			Word8-#elif SIZEOF_WCHAR_T == 2-#define HTYPE_WCHAR_T 			Word16-#else-#define HTYPE_WCHAR_T 			Word32-#endif----/* Define to Haskell type for char */-#define HTYPE_CHAR Int8--/* Define to Haskell type for double */-#define HTYPE_DOUBLE Double--/* Define to Haskell type for float */-#define HTYPE_FLOAT Float--/* Define to Haskell type for intmax_t */-#define HTYPE_INTMAX_T Int64--/* Define to Haskell type for long long */-#define HTYPE_LONG_LONG Int64--/* Define to Haskell type for short */-#define HTYPE_SHORT Int16--/* Define to Haskell type for signed char */-#define HTYPE_SIGNED_CHAR Int8--/* Define to Haskell type for uintmax_t */-#define HTYPE_UINTMAX_T Word64--/* Define to Haskell type for unsigned char */-#define HTYPE_UNSIGNED_CHAR Word8--/* Define to Haskell type for unsigned long long */-#define HTYPE_UNSIGNED_LONG_LONG Word64--/* Define to Haskell type for unsigned short */-#define HTYPE_UNSIGNED_SHORT Word16----/********************************************************************/-/**** System tupes                                               ****/-/********************************************************************/--#ifdef SIZEOF_DEV_T-# if SIZEOF_DEV_T == 8-#  define HTYPE_DEV_T 			Word64-# elif SIZEOF_DEV_T == 4-#  define HTYPE_DEV_T 			Word32-# elif SIZEOF_DEV_T == 2-#  define HTYPE_DEV_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_INO_T-# if SIZEOF_INO_T == 8-#  define HTYPE_INO_T 			Word64-# elif SIZEOF_INO_T == 4-#  define HTYPE_INO_T 			Word32-# elif SIZEOF_INO_T == 2-#  define HTYPE_INO_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_MODE_T-# if SIZEOF_MODE_T == 8-#  define HTYPE_MODE_T 			Word64-# elif SIZEOF_MODE_T == 4-#  define HTYPE_MODE_T 			Word32-# elif SIZEOF_MODE_T == 2-#  define HTYPE_MODE_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_OFF_T-# if SIZEOF_OFF_T == 8-#  define HTYPE_OFF_T 			Word64-# elif SIZEOF_OFF_T == 4-#  define HTYPE_OFF_T 			Word32-# elif SIZEOF_OFF_T == 2-#  define HTYPE_OFF_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_PID_T-# if SIZEOF_PID_T == 8-#  define HTYPE_PID_T 			Word64-# elif SIZEOF_PID_T == 4-#  define HTYPE_PID_T 			Word32-# elif SIZEOF_PID_T == 2-#  define HTYPE_PID_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_SSIZE_T-# if SIZEOF_SSIZE_T == 8-#  define HTYPE_SSIZE_T 			Word64-# elif SIZEOF_SSIZE_T == 4-#  define HTYPE_SSIZE_T 			Word32-# elif SIZEOF_SSIZE_T == 2-#  define HTYPE_SSIZE_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_GID_T-# if SIZEOF_GID_T == 8-#  define HTYPE_GID_T 			Word64-# elif SIZEOF_GID_T == 4-#  define HTYPE_GID_T 			Word32-# elif SIZEOF_GID_T == 2-#  define HTYPE_GID_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_NLINK_T-# if SIZEOF_NLINK_T == 8-#  define HTYPE_NLINK_T 			Word64-# elif SIZEOF_NLINK_T == 4-#  define HTYPE_NLINK_T 			Word32-# elif SIZEOF_NLINK_T == 2-#  define HTYPE_NLINK_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_UID_T-# if SIZEOF_UID_T == 8-#  define HTYPE_UID_T 			Word64-# elif SIZEOF_UID_T == 4-#  define HTYPE_UID_T 			Word32-# elif SIZEOF_UID_T == 2-#  define HTYPE_UID_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_CC_T-# if SIZEOF_CC_T == 8-#  define HTYPE_CC_T 			Word64-# elif SIZEOF_CC_T == 4-#  define HTYPE_CC_T 			Word32-# elif SIZEOF_CC_T == 2-#  define HTYPE_CC_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_SPEED_T-# if SIZEOF_SPEED_T == 8-#  define HTYPE_SPEED_T 			Word64-# elif SIZEOF_SPEED_T == 4-#  define HTYPE_SPEED_T 			Word32-# elif SIZEOF_SPEED_T == 2-#  define HTYPE_SPEED_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_TCFLAG_T-# if SIZEOF_TCFLAG_T == 8-#  define HTYPE_TCFLAG_T 			Word64-# elif SIZEOF_TCFLAG_T == 4-#  define HTYPE_TCFLAG_T 			Word32-# elif SIZEOF_TCFLAG_T == 2-#  define HTYPE_TCFLAG_T 			Word16-# else-# endif-#endif--#ifdef SIZEOF_RLIM_T-# if SIZEOF_RLIM_T == 8-#  define HTYPE_RLIM_T 			Word64-# elif SIZEOF_RLIM_T == 4-#  define HTYPE_RLIM_T 			Word32-# elif SIZEOF_RLIM_T == 2-#  define HTYPE_RLIM_T 			Word16-# else-# endif-#endif--/********************************************************************/-/**** Presence of include files                                  ****/-/********************************************************************/--#define HAVE_DIRENT_H 1-#define HAVE_ERRNO_H 1-#define HAVE_FCNTL_H 1-#define HAVE_INTTYPES_H 1-#define HAVE_LIMITS_H 1-#define HAVE_SIGNAL_H 1-#define HAVE_STDINT_H 1-#define HAVE_STRING_H 1-#define HAVE_SYS_RESOURCE_H 1-#define HAVE_SYS_SELECT_H 1-#define HAVE_SYS_STAT_H 1-#define HAVE_SYS_SYSCALL_H 1-#define HAVE_SYS_TIME_H 1-#define HAVE_SYS_TIMEB_H 1-/* #undef HAVE_SYS_TIMERS_H */-#define HAVE_SYS_TIMES_H 1-#define HAVE_SYS_TYPES_H 1-#define HAVE_SYS_UTSNAME_H 1-#define HAVE_SYS_WAIT_H 1-#define HAVE_TERMIOS_H 1-#define HAVE_TIME_H 1-#define HAVE_UNISTD_H 1-#define HAVE_UTIME_H 1-/* #undef HAVE_VFORK_H */-#define HAVE_WCTYPE_H 1-/* #undef HAVE_WINDOWS_H */-/* #undef HAVE_WINSOCK_H */--/* #undef HAVE__CHSIZE */-#define HAVE_FTRUNCATE 1-/* #undef HAVE_GETCLOCK */-#define HAVE_GETRUSAGE 1-#define HAVE_GETTIMEOFDAY 1-#define HAVE_LSTAT 1-#define HAVE_READDIR_R 1--/********************************************************************/-/**** Runtime types                                              ****/-/********************************************************************/--#ifdef __UHC_BUILDS_O__--#if defined(__UHC_TARGET_BC__) || defined(__UHC_TARGET_C__)-// # define HsBool				Word-// # define HsInt				Word-// # define HsWord64			Word64-// # define HsWord32			Word32-// # define HsWord16			Word16-// # define HsWord8			Word8-// # ifdef __UHC_TARGET_BC__-// #  define HS_BOOL_FALSE		gb_False-// #  define HS_BOOL_TRUE		gb_True-// # else-// #  define HS_BOOL_FALSE		0-// #  define HS_BOOL_TRUE		1-// # endif-#endif /* __UHC_TARGET_BC__ */--#endif /* __UHC_BUILDS_O__ */--/********************************************************************/-/**** Read dir EOF error                                         ****/-/********************************************************************/--/* See remarks in GHC, libraries/base/aclocal.m4: MinGW platform returns non 0 value. We ignore that */-#define	READDIR_ERRNO_EOF	0--/********************************************************************/-/**** C errors                                                   ****/-/********************************************************************/--/* (1) Assume errno.h is already included */-/* (2) Error codes like EADV are not present on all platforms, so a dummy value is provided, this should be done for all codes */--/* The value of E2BIG. */-#if !defined(E2BIG)-#define E2BIG 10000-#endif-#define CONST_E2BIG E2BIG--/* The value of EACCES. */-#if !defined(EACCES)-#define EACCES 10000-#endif-#define CONST_EACCES EACCES--/* The value of EADDRINUSE. */-#if !defined(EADDRINUSE)-#define EADDRINUSE 10000-#endif-#define CONST_EADDRINUSE EADDRINUSE--/* The value of EADDRNOTAVAIL. */-#define CONST_EADDRNOTAVAIL EADDRNOTAVAIL--/* The value of EADV. */-#if !defined(EADV)-#define EADV 10000-#endif-#define CONST_EADV EADV--/* The value of EAFNOSUPPORT. */-#if !defined(EAFNOSUPPORT)-#define EAFNOSUPPORT 10000-#endif-#define CONST_EAFNOSUPPORT EAFNOSUPPORT--/* The value of EAGAIN. */-#if !defined(EAGAIN)-#define EAGAIN 10000-#endif-#define CONST_EAGAIN EAGAIN--/* The value of EALREADY. */-#if !defined(EALREADY)-#define EALREADY 10000-#endif-#define CONST_EALREADY EALREADY--/* The value of EBADF. */-#if !defined(EBADF)-#define EBADF 10000-#endif-#define CONST_EBADF EBADF--/* The value of EBADMSG. */-#if !defined(EBADMSG)-#define EBADMSG 10000-#endif-#define CONST_EBADMSG EBADMSG--/* The value of EBADRPC. */-#if !defined(EBADRPC)-#define EBADRPC 10000-#endif-#define CONST_EBADRPC EBADRPC--/* The value of EBUSY. */-#if !defined(EBUSY)-#define EBUSY 10000-#endif-#define CONST_EBUSY EBUSY--/* The value of ECHILD. */-#if !defined(ECHILD)-#define ECHILD 10000-#endif-#define CONST_ECHILD ECHILD--/* The value of ECOMM. */-#if !defined(ECOMM)-#define ECOMM 10000-#endif-#define CONST_ECOMM ECOMM--/* The value of ECONNABORTED. */-#if !defined(ECONNABORTED)-#define ECONNABORTED 10000-#endif-#define CONST_ECONNABORTED ECONNABORTED--/* The value of ECONNREFUSED. */-#if !defined(ECONNREFUSED)-#define ECONNREFUSED 10000-#endif-#define CONST_ECONNREFUSED ECONNREFUSED--/* The value of ECONNRESET. */-#if !defined(ECONNRESET)-#define ECONNRESET 10000-#endif-#define CONST_ECONNRESET ECONNRESET--/* The value of EDEADLK. */-#if !defined(EDEADLK)-#define EDEADLK 10000-#endif-#define CONST_EDEADLK EDEADLK--/* The value of EDESTADDRREQ. */-#if !defined(EDESTADDRREQ)-#define EDESTADDRREQ 10000-#endif-#define CONST_EDESTADDRREQ EDESTADDRREQ--/* The value of EDIRTY. */-#if !defined(EDIRTY)-#define EDIRTY 10000-#endif-#define CONST_EDIRTY EDIRTY--/* The value of EDOM. */-#if !defined(EDOM)-#define EDOM 10000-#endif-#define CONST_EDOM EDOM--/* The value of EDQUOT. */-#if !defined(EDQUOT)-#define EDQUOT 10000-#endif-#define CONST_EDQUOT EDQUOT--/* The value of EEXIST. */-#if !defined(EEXIST)-#define EEXIST 10000-#endif-#define CONST_EEXIST EEXIST--/* The value of EFAULT. */-#if !defined(EFAULT)-#define EFAULT 10000-#endif-#define CONST_EFAULT EFAULT--/* The value of EFBIG. */-#if !defined(EFBIG)-#define EFBIG 10000-#endif-#define CONST_EFBIG EFBIG--/* The value of EFTYPE. */-#if !defined(EFTYPE)-#define EFTYPE 10000-#endif-#define CONST_EFTYPE EFTYPE--/* The value of EHOSTDOWN. */-#if !defined(EHOSTDOWN)-#define EHOSTDOWN 10000-#endif-#define CONST_EHOSTDOWN EHOSTDOWN--/* The value of EHOSTUNREACH. */-#if !defined(EHOSTUNREACH)-#define EHOSTUNREACH 10000-#endif-#define CONST_EHOSTUNREACH EHOSTUNREACH--/* The value of EIDRM. */-#if !defined(EIDRM)-#define EIDRM 10000-#endif-#define CONST_EIDRM EIDRM--/* The value of EILSEQ. */-#if !defined(EILSEQ)-#define EILSEQ 10000-#endif-#define CONST_EILSEQ EILSEQ--/* The value of EINPROGRESS. */-#if !defined(EINPROGRESS)-#define EINPROGRESS 10000-#endif-#define CONST_EINPROGRESS EINPROGRESS--/* The value of EINTR. */-#if !defined(EINTR)-#define EINTR 10000-#endif-#define CONST_EINTR EINTR--/* The value of EINVAL. */-#if !defined(EINVAL)-#define EINVAL 10000-#endif-#define CONST_EINVAL EINVAL--/* The value of EIO. */-#if !defined(EIO)-#define EIO 10000-#endif-#define CONST_EIO EIO--/* The value of EISCONN. */-#if !defined(EISCONN)-#define EISCONN 10000-#endif-#define CONST_EISCONN EISCONN--/* The value of EISDIR. */-#if !defined(EISDIR)-#define EISDIR 10000-#endif-#define CONST_EISDIR EISDIR--/* The value of ELOOP. */-#if !defined(ELOOP)-#define ELOOP 10000-#endif-#define CONST_ELOOP ELOOP--/* The value of EMFILE. */-#if !defined(EMFILE)-#define EMFILE 10000-#endif-#define CONST_EMFILE EMFILE--/* The value of EMLINK. */-#if !defined(EMLINK)-#define EMLINK 10000-#endif-#define CONST_EMLINK EMLINK--/* The value of EMSGSIZE. */-#if !defined(EMSGSIZE)-#define EMSGSIZE 10000-#endif-#define CONST_EMSGSIZE EMSGSIZE--/* The value of EMULTIHOP. */-#if !defined(EMULTIHOP)-#define EMULTIHOP 10000-#endif-#define CONST_EMULTIHOP EMULTIHOP--/* The value of ENAMETOOLONG. */-#if !defined(ENAMETOOLONG)-#define ENAMETOOLONG 10000-#endif-#define CONST_ENAMETOOLONG ENAMETOOLONG--/* The value of ENETDOWN. */-#if !defined(ENETDOWN)-#define ENETDOWN 10000-#endif-#define CONST_ENETDOWN ENETDOWN--/* The value of ENETRESET. */-#if !defined(ENETRESET)-#define ENETRESET 10000-#endif-#define CONST_ENETRESET ENETRESET--/* The value of ENETUNREACH. */-#if !defined(ENETUNREACH)-#define ENETUNREACH 10000-#endif-#define CONST_ENETUNREACH ENETUNREACH--/* The value of ENFILE. */-#if !defined(ENFILE)-#define ENFILE 10000-#endif-#define CONST_ENFILE ENFILE--/* The value of ENOBUFS. */-#if !defined(ENOBUFS)-#define ENOBUFS 10000-#endif-#define CONST_ENOBUFS ENOBUFS--/* The value of ENOCIGAR. */-#if !defined(ENOCIGAR)-#define ENOCIGAR 10000-#endif-#define CONST_ENOCIGAR ENOCIGAR--/* The value of ENODATA. */-#if !defined(ENODATA)-#define ENODATA 10000-#endif-#define CONST_ENODATA ENODATA--/* The value of ENODEV. */-#if !defined(ENODEV)-#define ENODEV 10000-#endif-#define CONST_ENODEV ENODEV--/* The value of ENOENT. */-#if !defined(ENOENT)-#define ENOENT 10000-#endif-#define CONST_ENOENT ENOENT--/* The value of ENOEXEC. */-#if !defined(ENOEXEC)-#define ENOEXEC 10000-#endif-#define CONST_ENOEXEC ENOEXEC--/* The value of ENOLCK. */-#if !defined(ENOLCK)-#define ENOLCK 10000-#endif-#define CONST_ENOLCK ENOLCK--/* The value of ENOLINK. */-#if !defined(ENOLINK)-#define ENOLINK 10000-#endif-#define CONST_ENOLINK ENOLINK--/* The value of ENOMEM. */-#if !defined(ENOMEM)-#define ENOMEM 10000-#endif-#define CONST_ENOMEM ENOMEM--/* The value of ENOMSG. */-#if !defined(ENOMSG)-#define ENOMSG 10000-#endif-#define CONST_ENOMSG ENOMSG--/* The value of ENONET. */-#if !defined(ENONET)-#define ENONET 10000-#endif-#define CONST_ENONET ENONET--/* The value of ENOPROTOOPT. */-#if !defined(ENOPROTOOPT)-#define ENOPROTOOPT 10000-#endif-#define CONST_ENOPROTOOPT ENOPROTOOPT--/* The value of ENOSPC. */-#if !defined(ENOSPC)-#define ENOSPC 10000-#endif-#define CONST_ENOSPC ENOSPC--/* The value of ENOSR. */-#if !defined(ENOSR)-#define ENOSR 10000-#endif-#define CONST_ENOSR ENOSR--/* The value of ENOSTR. */-#if !defined(ENOSTR)-#define ENOSTR 10000-#endif-#define CONST_ENOSTR ENOSTR--/* The value of ENOSYS. */-#if !defined(ENOSYS)-#define ENOSYS 10000-#endif-#define CONST_ENOSYS ENOSYS--/* The value of ENOTBLK. */-#if !defined(ENOTBLK)-#define ENOTBLK 10000-#endif-#define CONST_ENOTBLK ENOTBLK--/* The value of ENOTCONN. */-#if !defined(ENOTCONN)-#define ENOTCONN 10000-#endif-#define CONST_ENOTCONN ENOTCONN--/* The value of ENOTDIR. */-#if !defined(ENOTDIR)-#define ENOTDIR 10000-#endif-#define CONST_ENOTDIR ENOTDIR--/* The value of ENOTEMPTY. */-#if !defined(ENOTEMPTY)-#define ENOTEMPTY 10000-#endif-#define CONST_ENOTEMPTY ENOTEMPTY--/* The value of ENOTSOCK. */-#if !defined(ENOTSOCK)-#define ENOTSOCK 10000-#endif-#define CONST_ENOTSOCK ENOTSOCK--/* The value of ENOTTY. */-#if !defined(ENOTTY)-#define ENOTTY 10000-#endif-#define CONST_ENOTTY ENOTTY--/* The value of ENXIO. */-#if !defined(ENXIO)-#define ENXIO 10000-#endif-#define CONST_ENXIO ENXIO--/* The value of EOPNOTSUPP. */-#if !defined(EOPNOTSUPP)-#define EOPNOTSUPP 10000-#endif-#define CONST_EOPNOTSUPP EOPNOTSUPP--/* The value of EPERM. */-#if !defined(EPERM)-#define EPERM 10000-#endif-#define CONST_EPERM EPERM--/* The value of EPFNOSUPPORT. */-#if !defined(EPFNOSUPPORT)-#define EPFNOSUPPORT 10000-#endif-#define CONST_EPFNOSUPPORT EPFNOSUPPORT--/* The value of EPIPE. */-#if !defined(EPIPE)-#define EPIPE 10000-#endif-#define CONST_EPIPE EPIPE--/* The value of EPROCLIM. */-#if !defined(EPROCLIM)-#define EPROCLIM 10000-#endif-#define CONST_EPROCLIM EPROCLIM--/* The value of EPROCUNAVAIL. */-#if !defined(EPROCUNAVAIL)-#define EPROCUNAVAIL 10000-#endif-#define CONST_EPROCUNAVAIL EPROCUNAVAIL--/* The value of EPROGMISMATCH. */-#if !defined(EPROGMISMATCH)-#define EPROGMISMATCH 10000-#endif-#define CONST_EPROGMISMATCH EPROGMISMATCH--/* The value of EPROGUNAVAIL. */-#if !defined(EPROGUNAVAIL)-#define EPROGUNAVAIL 10000-#endif-#define CONST_EPROGUNAVAIL EPROGUNAVAIL--/* The value of EPROTO. */-#if !defined(EPROTO)-#define EPROTO 10000-#endif-#define CONST_EPROTO EPROTO--/* The value of EPROTONOSUPPORT. */-#if !defined(EPROTONOSUPPORT)-#define EPROTONOSUPPORT 10000-#endif-#define CONST_EPROTONOSUPPORT EPROTONOSUPPORT--/* The value of EPROTOTYPE. */-#if !defined(EPROTOTYPE)-#define EPROTOTYPE 10000-#endif-#define CONST_EPROTOTYPE EPROTOTYPE--/* The value of ERANGE. */-#if !defined(ERANGE)-#define ERANGE 10000-#endif-#define CONST_ERANGE ERANGE--/* The value of EREMCHG. */-#if !defined(EREMCHG)-#define EREMCHG 10000-#endif-#define CONST_EREMCHG EREMCHG--/* The value of EREMOTE. */-#if !defined(EREMOTE)-#define EREMOTE 10000-#endif-#define CONST_EREMOTE EREMOTE--/* The value of EROFS. */-#if !defined(EROFS)-#define EROFS 10000-#endif-#define CONST_EROFS EROFS--/* The value of ERPCMISMATCH. */-#if !defined(ERPCMISMATCH)-#define ERPCMISMATCH 10000-#endif-#define CONST_ERPCMISMATCH ERPCMISMATCH--/* The value of ERREMOTE. */-#if !defined(ERREMOTE)-#define ERREMOTE 10000-#endif-#define CONST_ERREMOTE ERREMOTE--/* The value of ESHUTDOWN. */-#if !defined(ESHUTDOWN)-#define ESHUTDOWN 10000-#endif-#define CONST_ESHUTDOWN ESHUTDOWN--/* The value of ESOCKTNOSUPPORT. */-#if !defined(ESOCKTNOSUPPORT)-#define ESOCKTNOSUPPORT 10000-#endif-#define CONST_ESOCKTNOSUPPORT ESOCKTNOSUPPORT--/* The value of ESPIPE. */-#if !defined(ESPIPE)-#define ESPIPE 10000-#endif-#define CONST_ESPIPE ESPIPE--/* The value of ESRCH. */-#if !defined(ESRCH)-#define ESRCH 10000-#endif-#define CONST_ESRCH ESRCH--/* The value of ESRMNT. */-#if !defined(ESRMNT)-#define ESRMNT 10000-#endif-#define CONST_ESRMNT ESRMNT--/* The value of ESTALE. */-#if !defined(ESTALE)-#define ESTALE 10000-#endif-#define CONST_ESTALE ESTALE--/* The value of ETIME. */-#if !defined(ETIME)-#define ETIME 10000-#endif-#define CONST_ETIME ETIME--/* The value of ETIMEDOUT. */-#if !defined(ETIMEDOUT)-#define ETIMEDOUT 10000-#endif-#define CONST_ETIMEDOUT ETIMEDOUT--/* The value of ETOOMANYREFS. */-#if !defined(ETOOMANYREFS)-#define ETOOMANYREFS 10000-#endif-#define CONST_ETOOMANYREFS ETOOMANYREFS--/* The value of ETXTBSY. */-#if !defined(ETXTBSY)-#define ETXTBSY 10000-#endif-#define CONST_ETXTBSY ETXTBSY--/* The value of EUSERS. */-#if !defined(EUSERS)-#define EUSERS 10000-#endif-#define CONST_EUSERS EUSERS--/* The value of EWOULDBLOCK. */-#if !defined(EWOULDBLOCK)-#define EWOULDBLOCK 10000-#endif-#define CONST_EWOULDBLOCK EWOULDBLOCK--/* The value of EXDEV. */-#if !defined(EXDEV)-#define EXDEV 10000-#endif-#define CONST_EXDEV EXDEV--/* The value of O_BINARY. */-#if !defined(O_BINARY)-#define O_BINARY 10000-#endif-#define CONST_O_BINARY O_BINARY--/* The value of SIGINT. */-#if !defined(SIGINT)-#define SIGINT 10000-#endif-#define CONST_SIGINT SIGINT---#endif-
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/IntLikeInstance.h
@@ -1,242 +0,0 @@-{- ---------------------------------------------------------------------------// Macros to help make various instances for Int like types (Int8, ...).-//-// Primitives are defined by 2 forms of macros:-//  - starting with PRIMS_  : name of Haskell function and primitive is the same-//  - starting with PRIMS2_ : name of primitive is given explicitly, to allow sharing between primitives-// ----------------------------------------------------------------------------}---- define conversion primitives-#define PRIMS_CONVERSION_INTEGER(tycon,primIntegerTo,primToInteger) \-foreign import prim primIntegerTo :: Integer -> tycon ; \-foreign import prim primToInteger :: tycon -> Integer --#define PRIMS2_CONVERSION_INTEGER(tycon,primIntegerTo,primIntegerToNm,primToInteger,primToIntegerNm) \-foreign import prim primIntegerToNm primIntegerTo :: Integer -> tycon ; \-foreign import prim primToIntegerNm primToInteger :: tycon -> Integer --#define PRIMS_CONVERSION_INT(tycon,primIntTo,primToInt) \-foreign import prim primIntTo     :: Int -> tycon ; \-foreign import prim primToInt     :: tycon -> Int ----- define Eq primitives-#define PRIMS_EQ(tycon,primEq,primNe) \-foreign import prim primEq      :: tycon -> tycon -> Bool ; \-foreign import prim primNe      :: tycon -> tycon -> Bool --#define PRIMS2_EQ(tycon,primEq,primEqNm,primNe,primNeNm) \-foreign import prim primEqNm primEq     :: tycon -> tycon -> Bool ; \-foreign import prim primNeNm primNe     :: tycon -> tycon -> Bool----- define Eq instance-#define INSTANCE_EQ(tycon,primEq,primNe) \-instance Eq tycon where \-  { (==) = primEq ; \-  	(/=) = primNe \-  }----- define Ord primitives--#define PRIMS_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \-foreign import prim primCmp     :: tycon -> tycon -> Ordering ; \-foreign import prim primLt      :: tycon -> tycon -> Bool ; \-foreign import prim primGt      :: tycon -> tycon -> Bool ; \-foreign import prim primLe      :: tycon -> tycon -> Bool ; \-foreign import prim primGe      :: tycon -> tycon -> Bool --#define PRIMS2_ORD(tycon,primCmp,primCmpNm,primLt,primLtNm,primGt,primGtNm,primLe,primLeNm,primGe,primGeNm) \-foreign import prim primCmpNm primCmp     :: tycon -> tycon -> Ordering ; \-foreign import prim primLtNm primLt      :: tycon -> tycon -> Bool ; \-foreign import prim primGtNm primGt      :: tycon -> tycon -> Bool ; \-foreign import prim primLeNm primLe      :: tycon -> tycon -> Bool ; \-foreign import prim primGeNm primGe      :: tycon -> tycon -> Bool ----- define Ord instance--#define INSTANCE_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \-instance Ord tycon where \-  { compare = primCmp \-  ; (<) = primLt \-  ; (>) = primGt \-  ; (<=) = primLe \-  ; (>=) = primGe \-  }----- define Bounded primitives-#define PRIMS_BOUNDED(tycon,primMin,primMax) \-foreign import prim primMin     :: tycon ; \-foreign import prim primMax     :: tycon ----- define Bounded instance-#define INSTANCE_BOUNDED(tycon,primMin,primMax) \-instance Bounded tycon where \-  { minBound = primMin \-  ; maxBound = primMax \-  }----- define Num primitives-#define PRIMS_NUM(tycon,primAdd,primSub,primMul,primNeg) \-foreign import prim primAdd       :: tycon -> tycon -> tycon ; \-foreign import prim primSub       :: tycon -> tycon -> tycon ; \-foreign import prim primMul       :: tycon -> tycon -> tycon ; \-foreign import prim primNeg       :: tycon -> tycon --#define PRIMS2_NUM(tycon,primAdd,primAddNm,primSub,primSubNm,primMul,primMulNm,primNeg,primNegNm) \-foreign import prim primAddNm 			primAdd       :: tycon -> tycon -> tycon ; \-foreign import prim primSubNm 			primSub       :: tycon -> tycon -> tycon ; \-foreign import prim primMulNm 			primMul       :: tycon -> tycon -> tycon ; \-foreign import prim primNegNm 			primNeg       :: tycon -> tycon ----- define Num instance-#define INSTANCE_NUM(tycon,primAdd,primSub,primMul,primNeg,primIntegerTo,primIntTo) \-instance Num tycon where \-  { (+)         = primAdd \-  ; (-)         = primSub \-  ; (*)         = primMul \-  ; negate      = primNeg \-  ; fromInteger = primIntegerTo \-  ; fromInt     = primIntTo \-  ; abs         = absReal \-  ; signum      = signumReal \-  }----- define Enum instance-#define INSTANCE_ENUM(tycon,primToEnum,primFromEnum) \-instance Enum tycon where \-  { succ           = boundedSucc \-  ; pred           = boundedPred \-  ; toEnum         = primToEnum \-  ; fromEnum       = primFromEnum \-  ; enumFrom       = boundedEnumFrom \-  ; enumFromTo     = boundedEnumFromTo \-  ; enumFromThen   = boundedEnumFromThen \-  ; enumFromThenTo = boundedEnumFromThenTo \-  }----- define Real instance-#define INSTANCE_REAL(tycon) \-instance Real tycon where \-  { toRational x = toInteger x % 1 \-  }----- define Integral primitives-#define PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) \-foreign import prim primDiv       :: tycon -> tycon -> tycon ; \-foreign import prim primMod       :: tycon -> tycon -> tycon ; \-foreign import prim primQuot      :: tycon -> tycon -> tycon ; \-foreign import prim primRem       :: tycon -> tycon -> tycon --#define PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primRemNm) \-foreign import prim primDivNm 			primDiv       :: tycon -> tycon -> tycon ; \-foreign import prim primModNm 			primMod       :: tycon -> tycon -> tycon ; \-foreign import prim primQuotNm 			primQuot      :: tycon -> tycon -> tycon ; \-foreign import prim primRemNm 			primRem       :: tycon -> tycon -> tycon --#define PRIMS_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem) \-PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) ; \-foreign import prim primDivMod    :: tycon -> tycon -> (tycon,tycon) ; \-foreign import prim primQuotRem   :: tycon -> tycon -> (tycon,tycon) --#define PRIMS2_INTEGRAL2(tycon,primDiv,primDivNm,primMod,primModNm,primDivMod,primDivModNm,primQuot,primQuotNm,primRem,primRemNm,primQuotRem,primQuotRemNm) \-PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primQuotRemNm) ; \-foreign import prim primDivModNm 	primDivMod    :: tycon -> tycon -> (tycon,tycon) ; \-foreign import prim primQuotRemNm 	primQuotRem   :: tycon -> tycon -> (tycon,tycon) ----- define Integral instance, assume default for divMod-#define INSTANCE_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem,primToInteger,primToInt) \-instance Integral tycon where \-  { quotRem d m \-              = (primQuot d m, primRem d m) \-  ; div       = primDiv \-  ; quot      = primQuot \-  ; rem       = primRem \-  ; mod       = primMod \-  ; toInteger = primToInteger \-  ; toInt     = primToInt \-  }--#define INSTANCE_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem,primToInteger,primToInt) \-instance Integral tycon where \-  { divMod    = primDivMod \-  ; quotRem   = primQuotRem \-  ; div       = primDiv \-  ; quot      = primQuot \-  ; rem       = primRem \-  ; mod       = primMod \-  ; toInteger = primToInteger \-  ; toInt     = primToInt \-  }----- define Show instance-#define INSTANCE_SHOW(tycon) \-instance Show tycon where \-  { show = show . toInteger \-  }----- define Read instance-#define INSTANCE_READ(tycon) \-instance Read tycon where \-  { readsPrec p = readSigned readDec \-  }----- define Bits primitives-#define PRIMS_BITLOGIC(tycon,primAnd,primOr,primXor) \-foreign import prim primAnd       	:: tycon -> tycon -> tycon ; \-foreign import prim primOr       	:: tycon -> tycon -> tycon ; \-foreign import prim primXor      	:: tycon -> tycon -> tycon--#define PRIMS_BITSHIFT(tycon,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \-foreign import prim primComplement	:: tycon -> tycon ; \-foreign import prim primShiftLeft  	:: tycon -> Int -> tycon ; \-foreign import prim primShiftRight 	:: tycon -> Int -> tycon ; \-foreign import prim primRotateLeft  :: tycon -> Int -> tycon ; \-foreign import prim primRotateRight :: tycon -> Int -> tycon--#define PRIMS2_BITLOGIC(tycon,primAnd,primAndNm,primOr,primOrNm,primXor,primXorNm) \-foreign import prim primAndNm       	primAnd       	:: tycon -> tycon -> tycon ; \-foreign import prim primOrNm       		primOr       	:: tycon -> tycon -> tycon ; \-foreign import prim primXorNm      		primXor      	:: tycon -> tycon -> tycon--#define PRIMS2_BITSHIFT(tycon,primComplement,primComplementNm,primShiftLeft,primShiftLeftNm,primShiftRight,primShiftRightNm,primRotateLeft,primRotateLeftNm,primRotateRight,primRotateRightNm) \-foreign import prim primComplementNm	primComplement	:: tycon -> tycon ; \-foreign import prim primShiftLeftNm  	primShiftLeft  	:: tycon -> Int -> tycon ; \-foreign import prim primShiftRightNm 	primShiftRight 	:: tycon -> Int -> tycon ; \-foreign import prim primRotateLeftNm  	primRotateLeft  :: tycon -> Int -> tycon ; \-foreign import prim primRotateRightNm 	primRotateRight :: tycon -> Int -> tycon---- define Bits instance-#define INSTANCE_BITS1(tycon,size,signed,primAnd,primOr,primXor,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \-instance Bits tycon where \-  { (.&.)   	= primAnd \-  ; (.|.)   	= primOr \-  ; xor	   		= primXor \-  ; complement  = primComplement \-  ; shiftL      = primShiftLeft \-  ; shiftR      = primShiftRight \-  ; rotateL     = primRotateLeft \-  ; rotateR     = primRotateRight \-  ; bitSize _   = size \-  ; isSigned _  = signed \-  }------
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/MachDeps.h
@@ -1,125 +0,0 @@-/* ehclib/uhcbase/include/MachDeps.h.  Generated from MachDeps.h.in by configure.  */-#ifndef MACHDEPS_H-#define MACHDEPS_H--#define SIZEOF_INTPTR_T 8-#define SIZEOF_CHAR 1-#define SIZEOF_SHORT 2-#define SIZEOF_INT 4-#define SIZEOF_LONG 8-#define SIZEOF_LONG_LONG 8-#define SIZEOF_FLOAT 4-#define SIZEOF_DOUBLE 8-#define SIZEOF_UNSIGNED_CHAR 1-#define SIZEOF_UNSIGNED_SHORT 2-#define SIZEOF_UNSIGNED_INT 4-#define SIZEOF_UNSIGNED_LONG 8-#define SIZEOF_UNSIGNED_LONG_LONG 8-#define SIZEOF_VOID_P 8--#define SIZEOF_DEV_T 4-#define SIZEOF_INO_T 8-#define SIZEOF_OFF_T 8-#define SIZEOF_MODE_T 2-#define SIZEOF_PID_T 4-#define SIZEOF_SSIZE_T 8-#define SIZEOF_GID_T 4-#define SIZEOF_NLINK_T 2-#define SIZEOF_UID_T 4-#define SIZEOF_RLIM_T 8-#define SIZEOF_CLOCK_T 8-#define SIZEOF_TIME_T 8-#define SIZEOF_SIZE_T 8-#define SIZEOF_WCHAR_T 4--#define SIZEOF_CC_T 1-#define SIZEOF_SPEED_T 8-#define SIZEOF_TCFLAG_T 8--#define ALIGNOF_INTPTR_T 8-#define ALIGNOF_CHAR 1-#define ALIGNOF_SHORT 2-#define ALIGNOF_INT 4-#define ALIGNOF_LONG 8-#define ALIGNOF_LONG_LONG 8-#define ALIGNOF_FLOAT 4-#define ALIGNOF_DOUBLE 8-#define ALIGNOF_UNSIGNED_CHAR 1-#define ALIGNOF_UNSIGNED_SHORT 2-#define ALIGNOF_UNSIGNED_INT 4-#define ALIGNOF_UNSIGNED_LONG 8-#define ALIGNOF_UNSIGNED_LONG_LONG 8-#define ALIGNOF_VOID_P 8--#define ALIGNOF_UINT8_T 1-#define ALIGNOF_UINT16_T 2-#define ALIGNOF_UINT32_T 4-#define ALIGNOF_UINT64_T 8--#if SIZEOF_INTPTR_T == 8-#define USE_64_BITS 1-#define USE_32_BITS 0-#else-#define USE_64_BITS 0-#define USE_32_BITS 1-#endif--#ifdef __UHC_TARGET_BC__-#define BITSIZEOF_WORDTAG		1-#else-#define BITSIZEOF_WORDTAG		0-#endif--#define SIZEOF_HSCHAR           SIZEOF_INTPTR_T-#define ALIGNMENT_HSCHAR        ALIGNOF_UINT32_T--#define SIZEOF_HSINT            SIZEOF_INTPTR_T-#define ALIGNMENT_HSINT         ALIGNOF_INTPTR_T--#define SIZEOF_HSWORD			SIZEOF_INTPTR_T-#define ALIGNMENT_HSWORD		ALIGNOF_INTPTR_T--#define SIZEOF_HSDOUBLE			SIZEOF_DOUBLE-#define ALIGNMENT_HSDOUBLE		ALIGNOF_DOUBLE--#define SIZEOF_HSFLOAT			SIZEOF_FLOAT-#define ALIGNMENT_HSFLOAT		ALIGNOF_FLOAT--#define SIZEOF_HSPTR            SIZEOF_VOID_P-#define ALIGNMENT_HSPTR         ALIGNOF_VOID_P--#define SIZEOF_HSFUNPTR         SIZEOF_VOID_P-#define ALIGNMENT_HSFUNPTR      ALIGNOF_VOID_P--#define SIZEOF_HSFOREIGNPTR     SIZEOF_VOID_P-#define ALIGNMENT_HSFOREIGNPTR  ALIGNOF_VOID_P--#define SIZEOF_HSSTABLEPTR      SIZEOF_VOID_P-#define ALIGNMENT_HSSTABLEPTR   ALIGNOF_VOID_P--#define SIZEOF_INT8             8-#define ALIGNMENT_INT8          ALIGNOF_UINT8_T--#define SIZEOF_WORD8            8-#define ALIGNMENT_WORD8         ALIGNOF_UINT8_T--#define SIZEOF_INT16            16-#define ALIGNMENT_INT16         ALIGNOF_UINT16_T--#define SIZEOF_WORD16           16-#define ALIGNMENT_WORD16        ALIGNOF_UINT16_T--#define SIZEOF_INT32            32-#define ALIGNMENT_INT32         ALIGNOF_UINT32_T--#define SIZEOF_WORD32           32-#define ALIGNMENT_WORD32        ALIGNOF_UINT32_T--#define SIZEOF_INT64            64-#define ALIGNMENT_INT64         ALIGNOF_UINT64_T--#define SIZEOF_WORD64           64-#define ALIGNMENT_WORD64        ALIGNOF_UINT64_T---#endif
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/TupleInstance.h
@@ -1,147 +0,0 @@-{- ---------------------------------------------------------------------------// Macros to help make various instances for tuples.-// A kind of poor mans deriving.-//-// ----------------------------------------------------------------------------}--#define	COMMA	,--{- ---------------------------------------------------------------------------// 2 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b) => clscon (a,b) where \-  { op1 op1preArg (a,b) op1postArg \-      = pre \-            op1subop a \-        sep op1subop b \-        post \-  }--{- ---------------------------------------------------------------------------// 3 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \-  { op1 op1preArg (a,b,c) op1postArg \-      = pre \-            op1subop a \-        sep op1subop b \-        sep op1subop c \-        post \-  }--{- ---------------------------------------------------------------------------// 4 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \-  { op1 op1preArg (a,b,c,d) op1postArg \-      = pre \-            op1subop a \-        sep op1subop b \-        sep op1subop c \-        sep op1subop d \-        post \-  }--{- ---------------------------------------------------------------------------// 5 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \-  { op1 op1preArg (a,b,c,d,e) op1postArg \-      = pre \-            op1subop a \-        sep op1subop b \-        sep op1subop c \-        sep op1subop d \-        sep op1subop e \-        post \-  }--{- ---------------------------------------------------------------------------// Set of 2..n tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE_UNOP1_INSTANCES(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-{ TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\-  TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\-  TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\-  TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-}--{- ---------------------------------------------------------------------------// 2 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b) => clscon (a,b) where \-  { (a1,b1) op1 (a2,b2) \-      = pre \-            a1 op1subop a2 \-        sep b1 op1subop b2 \-        post \-  }--{- ---------------------------------------------------------------------------// 3 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \-  { (a1,b1,c1) op1 (a2,b2,c2) \-      = pre \-            a1 op1subop a2 \-        sep b1 op1subop b2 \-        sep c1 op1subop c2 \-        post \-  }--{- ---------------------------------------------------------------------------// 4 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \-  { (a1,b1,c1,d1) op1 (a2,b2,c2,d2) \-      = pre \-            a1 op1subop a2 \-        sep b1 op1subop b2 \-        sep c1 op1subop c2 \-        sep d1 op1subop d2 \-        post \-  }--{- ---------------------------------------------------------------------------// 5 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \-  { (a1,b1,c1,d1,e1) op1 (a2,b2,c2,d2,e2) \-      = pre \-            a1 op1subop a2 \-        sep b1 op1subop b2 \-        sep c1 op1subop c2 \-        sep d1 op1subop d2 \-        sep e1 op1subop e2 \-        post \-  }--{- ---------------------------------------------------------------------------// Set of 2..n tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE_BINOP1_INSTANCES(clscon,op1,op1subop,pre,sep,post) \-{ TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\-  TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\-  TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\-  TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-}-
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/Typeable.h
@@ -1,149 +0,0 @@-{- ---------------------------------------------------------------------------// Macros to help make Typeable instances.-//-// INSTANCE_TYPEABLEn(tc,tcname,"tc") defines-//-//	instance Typeable/n/ tc-//	instance Typeable a => Typeable/n-1/ (tc a)-//	instance (Typeable a, Typeable b) => Typeable/n-2/ (tc a b)-//	...-//	instance (Typeable a1, ..., Typeable an) => Typeable (tc a1 ... an)-// ----------------------------------------------------------------------------}--#ifndef TYPEABLE_H-#define TYPEABLE_H--#define INSTANCE_TYPEABLE0(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }--#ifdef __GLASGOW_HASKELL__----  // For GHC, the extra instances follow from general instance declarations---  // defined in Data.Typeable.--#define INSTANCE_TYPEABLE1(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE2(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE3(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE4(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE5(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE6(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE7(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }--#else /* !__GLASGOW_HASKELL__ */--#define INSTANCE_TYPEABLE1(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable (tycon a) where { typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE2(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable1 (tycon a) where { \-  typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b) => Typeable (tycon a b) where { \-  typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE3(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable2 (tycon a) where { \-  typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b) => Typeable1 (tycon a b) where { \-  typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable (tycon a b c) where { \-  typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE4(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable3 (tycon a) where { \-  typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b) => Typeable2 (tycon a b) where { \-  typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable1 (tycon a b c) where { \-  typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable (tycon a b c d) where { \-  typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE5(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable4 (tycon a) where { \-  typeOf4 = typeOf4Default }; \-instance (Typeable a, Typeable b) => Typeable3 (tycon a b) where { \-  typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable2 (tycon a b c) where { \-  typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable1 (tycon a b c d) where { \-  typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable (tycon a b c d e) where { \-  typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE6(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable5 (tycon a) where { \-  typeOf5 = typeOf5Default }; \-instance (Typeable a, Typeable b) => Typeable4 (tycon a b) where { \-  typeOf4 = typeOf4Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable3 (tycon a b c) where { \-  typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable2 (tycon a b c d) where { \-  typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable1 (tycon a b c d e) where { \-  typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable (tycon a b c d e f) where { \-  typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE7(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable6 (tycon a) where { \-  typeOf6 = typeOf6Default }; \-instance (Typeable a, Typeable b) => Typeable5 (tycon a b) where { \-  typeOf5 = typeOf5Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable4 (tycon a b c) where { \-  typeOf4 = typeOf4Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable3 (tycon a b c d) where { \-  typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable2 (tycon a b c d e) where { \-  typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable1 (tycon a b c d e f) where { \-  typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f, Typeable g) => Typeable (tycon a b c d e f g) where { \-  typeOf = typeOfDefault }--#endif /* !__GLASGOW_HASKELL__ */--#endif
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/dirUtils.h
@@ -1,11 +0,0 @@-/* - * (c) The University of Glasgow 2002- *- * Directory Runtime Support- */-#ifndef __DIRUTILS_H__-#define __DIRUTILS_H__--extern int __hscore_readdir(DIR *dirPtr, struct dirent **pDirEnt);--#endif /* __DIRUTILS_H__ */
− 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/installed-pkg-config
@@ -1,2 +0,0 @@-exposed-modules: Control.Monad Data.Bits Data.Char Data.Either Data.Int Data.IORef Data.List Data.Maybe Data.Typeable Data.Word Debug.Trace Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.C Foreign.ForeignPtr Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Pool Foreign.Marshal.Utils Foreign.Marshal Foreign.Ptr Foreign.StablePtr Foreign.Storable Foreign System.IO.Error System.IO.Fix System.IO.Unsafe System.IO System.Posix.Internals System.Posix.Types UHC.Array UHC.Base UHC.Bits UHC.Bounded UHC.BoxArray UHC.ByteArray UHC.Char UHC.Conc UHC.Enum UHC.Eq UHC.Float UHC.ForeignPtr UHC.GC UHC.Generics.Tuple UHC.Generics UHC.Handle UHC.Int UHC.IO UHC.IOBase UHC.Ix UHC.LazyST UHC.MutVar UHC.MVar UHC.OldException UHC.OldIO UHC.Ord UHC.Prims UHC.Ptr UHC.Read UHC.Real UHC.Run UHC.Show UHC.ST UHC.StablePtr UHC.StackTrace UHC.Storable UHC.STRef UHC.Types UHC.Weak UHC.WeakPtr UHC.Word Unsafe.Coerce-build-depends: 
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Control/Monad.cr view

binary file changed (absent → 59734 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Control/Monad.hi view

binary file changed (absent → 27704 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Bits.cr view

binary file changed (absent → 81556 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Bits.hi view

binary file changed (absent → 24833 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Char.cr view

binary file changed (absent → 11057 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Char.hi view

binary file changed (absent → 5668 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Either.cr view

binary file changed (absent → 6448 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Either.hi view

binary file changed (absent → 3864 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/IORef.cr view

binary file changed (absent → 3362 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/IORef.hi view

binary file changed (absent → 3315 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/List.cr view

binary file changed (absent → 201705 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/List.hi view

binary file changed (absent → 46537 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Maybe.cr view

binary file changed (absent → 7855 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Maybe.hi view

binary file changed (absent → 4487 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Typeable.cr view

binary file changed (absent → 169654 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Typeable.hi view

binary file changed (absent → 112734 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Debug/Trace.cr view

binary file changed (absent → 3050 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Debug/Trace.hi view

binary file changed (absent → 4479 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/Ptr.cr view

binary file changed (absent → 405 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/Ptr.hi view

binary file changed (absent → 3275 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/StablePtr.cr view

binary file changed (absent → 149 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/StablePtr.hi view

binary file changed (absent → 2259 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO.cr view

binary file changed (absent → 19571 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO.hi view

binary file changed (absent → 14489 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Error.cr view

binary file changed (absent → 28631 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Error.hi view

binary file changed (absent → 16760 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Fix.cr view

binary file changed (absent → 4710 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Fix.hi view

binary file changed (absent → 2294 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Unsafe.cr view

binary file changed (absent → 951 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Unsafe.hi view

binary file changed (absent → 1984 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Array.cr view

binary file changed (absent → 214102 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Array.hi view

binary file changed (absent → 64563 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Base.cr view

file too large to diff

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Base.hi view

binary file changed (absent → 950228 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bits.cr view

binary file changed (absent → 12702 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bits.hi view

binary file changed (absent → 5335 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bounded.cr view

binary file changed (absent → 120616 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bounded.hi view

binary file changed (absent → 60961 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/BoxArray.cr view

binary file changed (absent → 29019 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/BoxArray.hi view

binary file changed (absent → 21229 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Char.cr view

binary file changed (absent → 5196 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Char.hi view

binary file changed (absent → 1288 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Enum.cr view

binary file changed (absent → 8283 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Enum.hi view

binary file changed (absent → 4111 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Eq.cr view

binary file changed (absent → 105918 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Eq.hi view

binary file changed (absent → 66535 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Float.cr view

binary file changed (absent → 58776 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Float.hi view

binary file changed (absent → 4807 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/GC.cr view

binary file changed (absent → 651 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/GC.hi view

binary file changed (absent → 1259 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics.cr view

binary file changed (absent → 207 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics.hi view

binary file changed (absent → 16434 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics/Tuple.cr view

binary file changed (absent → 660914 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics/Tuple.hi view

binary file changed (absent → 421402 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Handle.cr view

binary file changed (absent → 17942 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Handle.hi view

binary file changed (absent → 11367 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IO.cr view

binary file changed (absent → 15077 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IO.hi view

binary file changed (absent → 5975 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IOBase.cr view

binary file changed (absent → 275902 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IOBase.hi view

binary file changed (absent → 144192 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ix.cr view

binary file changed (absent → 75981 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ix.hi view

binary file changed (absent → 30408 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/LazyST.cr view

binary file changed (absent → 36959 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/LazyST.hi view

binary file changed (absent → 23239 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MVar.cr view

binary file changed (absent → 28617 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MVar.hi view

binary file changed (absent → 10285 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MutVar.cr view

binary file changed (absent → 18012 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MutVar.hi view

binary file changed (absent → 10662 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/OldException.cr view

binary file changed (absent → 12018 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/OldException.hi view

binary file changed (absent → 5421 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ord.cr view

binary file changed (absent → 68629 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ord.hi view

binary file changed (absent → 21837 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Prims.cr view

binary file changed (absent → 192936 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Prims.hi view

binary file changed (absent → 73547 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ptr.cr view

binary file changed (absent → 24745 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ptr.hi view

binary file changed (absent → 21209 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Read.cr view

binary file changed (absent → 87239 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Read.hi view

binary file changed (absent → 17136 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Real.cr view

binary file changed (absent → 7166 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Real.hi view

binary file changed (absent → 1916 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Run.cr view

binary file changed (absent → 11769 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Run.hi view

binary file changed (absent → 5056 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/ST.cr view

binary file changed (absent → 47124 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/ST.hi view

binary file changed (absent → 31438 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/STRef.cr view

binary file changed (absent → 22619 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/STRef.hi view

binary file changed (absent → 15348 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Show.cr view

binary file changed (absent → 151263 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Show.hi view

binary file changed (absent → 36709 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StablePtr.cr view

binary file changed (absent → 21492 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StablePtr.hi view

binary file changed (absent → 16107 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StackTrace.cr view

binary file changed (absent → 141 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StackTrace.hi view

binary file changed (absent → 1380 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Types.cr view

binary file changed (absent → 67781 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Types.hi view

binary file changed (absent → 51972 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Weak.cr view

binary file changed (absent → 26763 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Weak.hi view

binary file changed (absent → 18131 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/WeakPtr.cr view

binary file changed (absent → 13574 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/WeakPtr.hi view

binary file changed (absent → 9775 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Unsafe/Coerce.cr view

binary file changed (absent → 140 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Unsafe/Coerce.hi view

binary file changed (absent → 853 bytes)

+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/CTypes.h view
@@ -0,0 +1,231 @@+{- --------------------------------------------------------------------------+// Dirty CPP hackery for CTypes/CTypesISO+//+// (c) The FFI task force, 2000+// --------------------------------------------------------------------------+-}++#ifndef CTYPES__H+#define CTYPES__H++#include "Typeable.h"++{-+// As long as there is no automatic derivation of classes for newtypes we resort+// to extremely dirty cpp-hackery.   :-P   Some care has to be taken when the+// macros below are modified, otherwise the layout rule will bite you.+-}++--  // A hacked version for GHC follows the Haskell 98 version...+#ifndef __GLASGOW_HASKELL__++#define NEWTYPE_TYPE_NODERIVING(T,B) \+newtype T = T B ; ++#define NEWTYPE_TYPE(T,B) \+newtype T = T B deriving (Eq, Ord) ; ++#define ARITHMETIC_TYPE_INSTANCES(T,C,S,B) \+INSTANCE_NUM(T) ; \+INSTANCE_REAL(T) ; \+INSTANCE_READ(T,B) ; \+INSTANCE_SHOW(T,B) ; \+INSTANCE_ENUM(T) ; \+INSTANCE_STORABLE(T) ; \+INSTANCE_TYPEABLE0(T,C,S) ;++#define INTEGRAL_TYPE_INSTANCES(T,C,S,B) \+INSTANCE_BOUNDED(T) ; \+INSTANCE_INTEGRAL(T) ; \+INSTANCE_BITS(T)++#define ARITHMETIC_TYPE(T,C,S,B) \+NEWTYPE_TYPE(T,B) ; \+ARITHMETIC_TYPE_INSTANCES(T,C,S,B) ;++#define INTEGRAL_TYPE(T,C,S,B) \+ARITHMETIC_TYPE(T,C,S,B) ; \+INTEGRAL_TYPE_INSTANCES(T,C,S,B)++#define FLOATING_TYPE(T,C,S,B) \+ARITHMETIC_TYPE(T,C,S,B) ; \+INSTANCE_FRACTIONAL(T) ; \+INSTANCE_FLOATING(T) ; \+INSTANCE_REALFRAC(T) ; \+INSTANCE_REALFLOAT(T)++#ifndef __GLASGOW_HASKELL__+#define fakeMap map+#endif++#define INSTANCE_READ(T,B) \+instance Read T where { \+   readsPrec p s = fakeMap (\(x, t) -> (T x, t)) (readsPrec p s) }++#define INSTANCE_SHOW(T,B) \+instance Show T where { \+   showsPrec p (T x) = showsPrec p x }++#define INSTANCE_NUM(T) \+instance Num T where { \+   (T i) + (T j) = T (i + j) ; \+   (T i) - (T j) = T (i - j) ; \+   (T i) * (T j) = T (i * j) ; \+   negate  (T i) = T (negate i) ; \+   abs     (T i) = T (abs    i) ; \+   signum  (T i) = T (signum i) ; \+   fromInteger x = T (fromInteger x) }++#define INSTANCE_EQ(T) \+instance Eq T where { \+   (T x1) == (T x2) = x1 == x2 }++#define INSTANCE_ORD(T) \+instance Ord T where { \+   (T x1) `compare` (T x2) = x1 `compare` x2 }++#define INSTANCE_BOUNDED(T) \+instance Bounded T where { \+   minBound = T minBound ; \+   maxBound = T maxBound }++#define INSTANCE_ENUM(T) \+instance Enum T where { \+   succ           (T i)             = T (succ i) ; \+   pred           (T i)             = T (pred i) ; \+   toEnum               x           = T (toEnum x) ; \+   fromEnum       (T i)             = fromEnum i ; \+   enumFrom       (T i)             = fakeMap T (enumFrom i) ; \+   enumFromThen   (T i) (T j)       = fakeMap T (enumFromThen i j) ; \+   enumFromTo     (T i) (T j)       = fakeMap T (enumFromTo i j) ; \+   enumFromThenTo (T i) (T j) (T k) = fakeMap T (enumFromThenTo i j k) }++#define INSTANCE_REAL(T) \+instance Real T where { \+   toRational (T i) = toRational i }++#define INSTANCE_INTEGRAL(T) \+instance Integral T where { \+   (T i) `quot`    (T j) = T (i `quot` j) ; \+   (T i) `rem`     (T j) = T (i `rem`  j) ; \+   (T i) `div`     (T j) = T (i `div`  j) ; \+   (T i) `mod`     (T j) = T (i `mod`  j) ; \+   (T i) `quotRem` (T j) = let (q,r) = i `quotRem` j in (T q, T r) ; \+   (T i) `divMod`  (T j) = let (d,m) = i `divMod`  j in (T d, T m) ; \+   toInteger (T i)       = toInteger i }++#define INSTANCE_BITS(T) \+instance Bits T where { \+  (T x) .&.     (T y)   = T (x .&.   y) ; \+  (T x) .|.     (T y)   = T (x .|.   y) ; \+  (T x) `xor`   (T y)   = T (x `xor` y) ; \+  complement    (T x)   = T (complement x) ; \+  shift         (T x) n = T (shift x n) ; \+  rotate        (T x) n = T (rotate x n) ; \+  bit                 n = T (bit n) ; \+  setBit        (T x) n = T (setBit x n) ; \+  clearBit      (T x) n = T (clearBit x n) ; \+  complementBit (T x) n = T (complementBit x n) ; \+  testBit       (T x) n = testBit x n ; \+  bitSize       (T x)   = bitSize x ; \+  isSigned      (T x)   = isSigned x }++#define INSTANCE_FRACTIONAL(T) \+instance Fractional T where { \+   (T x) / (T y)  = T (x / y) ; \+   recip   (T x)  = T (recip x) ; \+   fromRational r = T (fromRational r) }++#define INSTANCE_FLOATING(T) \+instance Floating T where { \+   pi                    = pi ; \+   exp   (T x)           = T (exp   x) ; \+   log   (T x)           = T (log   x) ; \+   sqrt  (T x)           = T (sqrt  x) ; \+   (T x) **        (T y) = T (x ** y) ; \+   (T x) `logBase` (T y) = T (x `logBase` y) ; \+   sin   (T x)           = T (sin   x) ; \+   cos   (T x)           = T (cos   x) ; \+   tan   (T x)           = T (tan   x) ; \+   asin  (T x)           = T (asin  x) ; \+   acos  (T x)           = T (acos  x) ; \+   atan  (T x)           = T (atan  x) ; \+   sinh  (T x)           = T (sinh  x) ; \+   cosh  (T x)           = T (cosh  x) ; \+   tanh  (T x)           = T (tanh  x) ; \+   asinh (T x)           = T (asinh x) ; \+   acosh (T x)           = T (acosh x) ; \+   atanh (T x)           = T (atanh x) }++#define INSTANCE_REALFRAC(T) \+instance RealFrac T where { \+   properFraction (T x) = let (m,y) = properFraction x in (m, T y) ; \+   truncate (T x) = truncate x ; \+   round    (T x) = round x ; \+   ceiling  (T x) = ceiling x ; \+   floor    (T x) = floor x }++#define INSTANCE_REALFLOAT(T) \+instance RealFloat T where { \+   floatRadix     (T x) = floatRadix x ; \+   floatDigits    (T x) = floatDigits x ; \+   floatRange     (T x) = floatRange x ; \+   decodeFloat    (T x) = decodeFloat x ; \+   encodeFloat m n      = T (encodeFloat m n) ; \+   exponent       (T x) = exponent x ; \+   significand    (T x) = T (significand  x) ; \+   scaleFloat n   (T x) = T (scaleFloat n x) ; \+   isNaN          (T x) = isNaN x ; \+   isInfinite     (T x) = isInfinite x ; \+   isDenormalized (T x) = isDenormalized x ; \+   isNegativeZero (T x) = isNegativeZero x ; \+   isIEEE         (T x) = isIEEE x ; \+   (T x) `atan2`  (T y) = T (x `atan2` y) }++#define INSTANCE_STORABLE(T) \+instance Storable T where { \+   sizeOf    (T x)       = sizeOf x ; \+   alignment (T x)       = alignment x ; \+   peekElemOff a i       = liftM T (peekElemOff (castPtr a) i) ; \+   pokeElemOff a i (T x) = pokeElemOff (castPtr a) i x }++#else /* __GLASGOW_HASKELL__ */++--  // GHC can derive any class for a newtype, so we make use of that here...++#define ARITHMETIC_CLASSES  Eq,Ord,Num,Enum,Storable,Real+#define INTEGRAL_CLASSES Bounded,Integral,Bits+#define FLOATING_CLASSES Fractional,Floating,RealFrac,RealFloat++#define ARITHMETIC_TYPE(T,C,S,B) \+newtype T = T B deriving (ARITHMETIC_CLASSES); \+INSTANCE_READ(T,B); \+INSTANCE_SHOW(T,B); \+INSTANCE_TYPEABLE0(T,C,S) ;++#define INTEGRAL_TYPE(T,C,S,B) \+newtype T = T B deriving (ARITHMETIC_CLASSES, INTEGRAL_CLASSES); \+INSTANCE_READ(T,B); \+INSTANCE_SHOW(T,B); \+INSTANCE_TYPEABLE0(T,C,S) ;++#define FLOATING_TYPE(T,C,S,B) \+newtype T = T B deriving (ARITHMETIC_CLASSES, FLOATING_CLASSES); \+INSTANCE_READ(T,B); \+INSTANCE_SHOW(T,B); \+INSTANCE_TYPEABLE0(T,C,S) ;++#define INSTANCE_READ(T,B) \+instance Read T where { \+   readsPrec            = unsafeCoerce# (readsPrec :: Int -> ReadS B); \+   readList             = unsafeCoerce# (readList  :: ReadS [B]); }++#define INSTANCE_SHOW(T,B) \+instance Show T where { \+   showsPrec            = unsafeCoerce# (showsPrec :: Int -> B -> ShowS); \+   show                 = unsafeCoerce# (show :: B -> String); \+   showList             = unsafeCoerce# (showList :: [B] -> ShowS); }++#endif /* __GLASGOW_HASKELL__ */++#endif
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/HsBase.h view
@@ -0,0 +1,757 @@+/* -----------------------------------------------------------------------------+ *+ * (c) The University of Glasgow 2001-2004+ *+ * Definitions for package `base' which are visible in Haskell land.+ *+ * Adapted for use in EHC+ *+ * ---------------------------------------------------------------------------*/++#ifndef __HSBASE_H__+#define __HSBASE_H__++#include "HsBaseConfig.h"+#ifdef __UHC_BUILDS_O__+#include "rts.h"+#endif++/* ultra-evil... */+#undef PACKAGE_BUGREPORT+#undef PACKAGE_NAME+#undef PACKAGE_STRING+#undef PACKAGE_TARNAME+#undef PACKAGE_VERSION++/* Needed to get the macro version of errno on some OSs (eg. Solaris).+   We must do this, because these libs are only compiled once, but+   must work in both single-threaded and multi-threaded programs. */+#define _REENTRANT 1++#ifndef __UHC__+#include "HsFFI.h"+#endif /* !__UHC__ */++#include <stdio.h>+#include <stdlib.h>+#include <math.h>++#if HAVE_SYS_TYPES_H+#include <sys/types.h>+#endif+#if HAVE_UNISTD_H+#include <unistd.h>+#endif+#if HAVE_SYS_STAT_H+#include <sys/stat.h>+#endif+#if HAVE_FCNTL_H+# include <fcntl.h>+#endif+#if HAVE_TERMIOS_H+#include <termios.h>+#endif+#if HAVE_SIGNAL_H+#include <signal.h>+/* Ultra-ugly: OpenBSD uses broken macros for sigemptyset and sigfillset (missing casts) */+#if __OpenBSD__+#undef sigemptyset+#undef sigfillset+#endif+#endif+#if HAVE_ERRNO_H+#include <errno.h>+#endif+#if HAVE_STRING_H+#include <string.h>+#endif+#if HAVE_DIRENT_H+#include <dirent.h>+#endif+#if HAVE_UTIME_H+#include <utime.h>+#endif+#if HAVE_SYS_UTSNAME_H+#include <sys/utsname.h>+#endif+#if HAVE_GETTIMEOFDAY+#  if HAVE_SYS_TIME_H+#   include <sys/time.h>+#  endif+#elif HAVE_GETCLOCK+# if HAVE_SYS_TIMERS_H+#  define POSIX_4D9 1+#  include <sys/timers.h>+# endif+#endif+#if HAVE_TIME_H+#include <time.h>+#endif+#if HAVE_SYS_TIMEB_H+#include <sys/timeb.h>+#endif+#if HAVE_WINDOWS_H+#include <windows.h>+#endif+#if HAVE_SYS_TIMES_H+#include <sys/times.h>+#endif+#if HAVE_WINSOCK_H && defined(__MINGW32__)+#include <winsock.h>+#endif+#if HAVE_LIMITS_H+#include <limits.h>+#endif+#if HAVE_WCTYPE_H+#include <wctype.h>+#endif+#if HAVE_INTTYPES_H+# include <inttypes.h>+#elif HAVE_STDINT_H+# include <stdint.h>+#endif++#if !defined(__MINGW32__) && !defined(irix_HOST_OS)+# if HAVE_SYS_RESOURCE_H+#  include <sys/resource.h>+# endif+#endif++#if !HAVE_GETRUSAGE && HAVE_SYS_SYSCALL_H+# include <sys/syscall.h>+# if defined(SYS_GETRUSAGE)	/* hpux_HOST_OS */+#  define getrusage(a, b)  syscall(SYS_GETRUSAGE, a, b)+#  define HAVE_GETRUSAGE 1+# endif+#endif++/* For System */+#if HAVE_SYS_WAIT_H+#include <sys/wait.h>+#endif+#if HAVE_VFORK_H+#include <vfork.h>+#endif++#ifndef __UHC__+#include "dirUtils.h"+#endif+#ifndef __UHC__+#include "WCsubst.h"+#endif /* !__UHC__ */++#if defined(__MINGW32__)+/* in Win32Utils.c */+extern void maperrno (void);+extern HsWord64 getUSecOfDay(void);+#endif++#if defined(__MINGW32__)+#include <io.h>+#include <fcntl.h>+#include <shlobj.h>+#include <share.h>+#endif++#if HAVE_SYS_SELECT_H+#include <sys/select.h>+#endif++/* in inputReady.c */+extern int fdReady(int fd, int write, int msecs, int isSock);++#ifndef __UHC__+/* in Signals.c */+extern HsInt nocldstop;+#endif /* !__UHC__ */++#ifndef __UHC__+/* -----------------------------------------------------------------------------+   64-bit operations, defined in longlong.c+   -------------------------------------------------------------------------- */++#ifdef SUPPORT_LONG_LONGS++HsBool hs_gtWord64 (HsWord64, HsWord64);+HsBool hs_geWord64 (HsWord64, HsWord64);+HsBool hs_eqWord64 (HsWord64, HsWord64);+HsBool hs_neWord64 (HsWord64, HsWord64);+HsBool hs_ltWord64 (HsWord64, HsWord64);+HsBool hs_leWord64 (HsWord64, HsWord64);++HsBool hs_gtInt64 (HsInt64, HsInt64);+HsBool hs_geInt64 (HsInt64, HsInt64);+HsBool hs_eqInt64 (HsInt64, HsInt64);+HsBool hs_neInt64 (HsInt64, HsInt64);+HsBool hs_ltInt64 (HsInt64, HsInt64);+HsBool hs_leInt64 (HsInt64, HsInt64);++HsWord64 hs_remWord64  (HsWord64, HsWord64);+HsWord64 hs_quotWord64 (HsWord64, HsWord64);++HsInt64 hs_remInt64    (HsInt64, HsInt64);+HsInt64 hs_quotInt64   (HsInt64, HsInt64);+HsInt64 hs_negateInt64 (HsInt64);+HsInt64 hs_plusInt64   (HsInt64, HsInt64);+HsInt64 hs_minusInt64  (HsInt64, HsInt64);+HsInt64 hs_timesInt64  (HsInt64, HsInt64);++HsWord64 hs_and64  (HsWord64, HsWord64);+HsWord64 hs_or64   (HsWord64, HsWord64);+HsWord64 hs_xor64  (HsWord64, HsWord64);+HsWord64 hs_not64  (HsWord64);++HsWord64 hs_uncheckedShiftL64   (HsWord64, HsInt);+HsWord64 hs_uncheckedShiftRL64  (HsWord64, HsInt);+HsInt64  hs_uncheckedIShiftL64  (HsInt64, HsInt);+HsInt64  hs_uncheckedIShiftRA64 (HsInt64, HsInt);+HsInt64  hs_uncheckedIShiftRL64 (HsInt64, HsInt);++HsInt64  hs_intToInt64    (HsInt);+HsInt    hs_int64ToInt    (HsInt64);+HsWord64 hs_int64ToWord64 (HsInt64);+HsWord64 hs_wordToWord64  (HsWord);+HsWord   hs_word64ToWord  (HsWord64);+HsInt64  hs_word64ToInt64 (HsWord64);++HsWord64 hs_integerToWord64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);+HsInt64  hs_integerToInt64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);++#endif /* SUPPORT_LONG_LONGS */+#endif /* !__UHC__ */++/* -----------------------------------------------------------------------------+   INLINE functions.++   These functions are given as inlines here for when compiling via C,+   but we also generate static versions into the cbits library for+   when compiling to native code.+   -------------------------------------------------------------------------- */++#ifndef INLINE+# if defined(_MSC_VER)+#  define INLINE extern __inline+# else+#  define INLINE static inline+# endif+#endif++INLINE int __hscore_get_errno(void) { return errno; }+INLINE void __hscore_set_errno(int e) { errno = e; }++#if !defined(_MSC_VER)+INLINE int __hscore_s_isreg(mode_t m)  { return S_ISREG(m);  }+INLINE int __hscore_s_isdir(mode_t m)  { return S_ISDIR(m);  }+INLINE int __hscore_s_isfifo(mode_t m) { return S_ISFIFO(m); }+INLINE int __hscore_s_isblk(mode_t m)  { return S_ISBLK(m);  }+INLINE int __hscore_s_ischr(mode_t m)  { return S_ISCHR(m);  }+#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)+INLINE int __hscore_s_issock(mode_t m) { return S_ISSOCK(m); }+#endif+#endif++#if ( !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32) ) || defined(__CYGWIN__)+INLINE int+__hscore_sigemptyset( sigset_t *set )+{ return sigemptyset(set); }++INLINE int+__hscore_sigfillset( sigset_t *set )+{ return sigfillset(set); }++INLINE int+__hscore_sigaddset( sigset_t * set, int s )+{ return sigaddset(set,s); }++INLINE int+__hscore_sigdelset( sigset_t * set, int s )+{ return sigdelset(set,s); }++INLINE int+__hscore_sigismember( sigset_t * set, int s )+{ return sigismember(set,s); }+#endif++INLINE void *+__hscore_memcpy_dst_off( char *dst, int dst_off, char *src, size_t sz )+{ return memcpy(dst+dst_off, src, sz); }++INLINE void *+__hscore_memcpy_src_off( char *dst, char *src, int src_off, size_t sz )+{ return memcpy(dst, src+src_off, sz); }++INLINE HsBool+__hscore_supportsTextMode()+{+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)+  return HS_BOOL_FALSE;+#else+  return HS_BOOL_TRUE;+#endif+}++INLINE HsInt+__hscore_bufsiz()+{+  return BUFSIZ;+}++INLINE int+__hscore_seek_cur()+{+  return SEEK_CUR;+}++INLINE int+__hscore_o_binary()+{+#if defined(_MSC_VER)+  return O_BINARY;+#else+  return CONST_O_BINARY;+#endif+}++INLINE int+__hscore_o_rdonly()+{+#ifdef O_RDONLY+  return O_RDONLY;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_wronly( void )+{+#ifdef O_WRONLY+  return O_WRONLY;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_rdwr( void )+{+#ifdef O_RDWR+  return O_RDWR;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_append( void )+{+#ifdef O_APPEND+  return O_APPEND;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_creat( void )+{+#ifdef O_CREAT+  return O_CREAT;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_excl( void )+{+#ifdef O_EXCL+  return O_EXCL;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_trunc( void )+{+#ifdef O_TRUNC+  return O_TRUNC;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_noctty( void )+{+#ifdef O_NOCTTY+  return O_NOCTTY;+#else+  return 0;+#endif+}++INLINE int+__hscore_o_nonblock( void )+{+#ifdef O_NONBLOCK+  return O_NONBLOCK;+#else+  return 0;+#endif+}++INLINE int+__hscore_seek_set( void )+{+  return SEEK_SET;+}++INLINE int+__hscore_seek_end( void )+{+  return SEEK_END;+}++INLINE int+__hscore_ftruncate( int fd, off_t where )+{+#if defined(HAVE_FTRUNCATE)+  return ftruncate(fd,where);+#elif defined(HAVE__CHSIZE)+  return _chsize(fd,where);+#else+// ToDo: we should use _chsize_s() on Windows which allows a 64-bit+// offset, but it doesn't seem to be available from mingw at this time +// --SDM (01/2008)+#error at least ftruncate or _chsize functions are required to build+#endif+}++#ifndef __UHC__+INLINE int+__hscore_setmode( int fd, HsBool toBin )+{+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)+  return setmode(fd,(toBin == HS_BOOL_TRUE) ? _O_BINARY : _O_TEXT);+#else+  return 0;+#endif+}+#endif /* !__UHC__ */++#if __GLASGOW_HASKELL__++INLINE int+__hscore_PrelHandle_write( int fd, void *ptr, HsInt off, int sz )+{+  return write(fd,(char *)ptr + off, sz);+}++INLINE int+__hscore_PrelHandle_read( int fd, void *ptr, HsInt off, int sz )+{+  return read(fd,(char *)ptr + off, sz);++}++#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)+INLINE int+__hscore_PrelHandle_send( int fd, void *ptr, HsInt off, int sz )+{+    return send(fd,(char *)ptr + off, sz, 0);+}++INLINE int+__hscore_PrelHandle_recv( int fd, void *ptr, HsInt off, int sz )+{+    return recv(fd,(char *)ptr + off, sz, 0);+}+#endif++#endif /* __GLASGOW_HASKELL__ */++INLINE int+__hscore_mkdir( char *pathName, int mode )+{+#if ( defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) ) && !defined(__CYGWIN__)+  return mkdir(pathName);+#else+  return mkdir(pathName,mode);+#endif+}++INLINE int+__hscore_lstat( const char *fname, struct stat *st )+{+#if HAVE_LSTAT+  return lstat(fname, st);+#else+  return stat(fname, st);+#endif+}++INLINE char *+__hscore_d_name( struct dirent* d )+{+  return (d->d_name);+}++INLINE int+__hscore_end_of_dir( void )+{+  return READDIR_ERRNO_EOF;+}++INLINE void+__hscore_free_dirent(struct dirent *dEnt)+{+#if HAVE_READDIR_R+  free(dEnt);+#endif+}++#if defined(__MINGW32__)+// We want the versions of stat/fstat/lseek that use 64-bit offsets,+// and you have to ask for those explicitly.  Unfortunately there+// doesn't seem to be a 64-bit version of truncate/ftruncate, so while+// hFileSize and hSeek will work with large files, hSetFileSize will not.+#define stat(file,buf)       _stati64(file,buf)+#define fstat(fd,buf)        _fstati64(fd,buf)+typedef struct _stati64 struct_stat;+typedef off64_t stsize_t;+#else+typedef struct stat struct_stat;+typedef off_t stsize_t;+#endif++INLINE HsInt+__hscore_sizeof_stat( void )+{+  return sizeof(struct_stat);+}++INLINE time_t __hscore_st_mtime ( struct_stat* st ) { return st->st_mtime; }+INLINE stsize_t __hscore_st_size  ( struct_stat* st ) { return st->st_size; }+#if !defined(_MSC_VER)+INLINE mode_t __hscore_st_mode  ( struct_stat* st ) { return st->st_mode; }+INLINE dev_t  __hscore_st_dev  ( struct_stat* st ) { return st->st_dev; }+INLINE ino_t  __hscore_st_ino  ( struct_stat* st ) { return st->st_ino; }+#endif++#if HAVE_TERMIOS_H+INLINE tcflag_t __hscore_lflag( struct termios* ts ) { return ts->c_lflag; }++INLINE void+__hscore_poke_lflag( struct termios* ts, tcflag_t t ) { ts->c_lflag = t; }++INLINE unsigned char*+__hscore_ptr_c_cc( struct termios* ts )+{ return (unsigned char*) &ts->c_cc; }++INLINE HsInt+__hscore_sizeof_termios( void )+{+#ifndef __MINGW32__+  return sizeof(struct termios);+#else+  return 0;+#endif+}+#endif++//sizeof_sigset_t is also use on windows systems which define tcflat_t. Why exclude it?+// #if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32)+INLINE HsInt+__hscore_sizeof_sigset_t( void )+{+  return sizeof(sigset_t);+}+// #endif++INLINE int+__hscore_echo( void )+{+#ifdef ECHO+  return ECHO;+#else+  return 0;+#endif++}++INLINE int+__hscore_tcsanow( void )+{+#ifdef TCSANOW+  return TCSANOW;+#else+  return 0;+#endif++}++INLINE int+__hscore_icanon( void )+{+#ifdef ICANON+  return ICANON;+#else+  return 0;+#endif+}++INLINE int __hscore_vmin( void )+{+#ifdef VMIN+  return VMIN;+#else+  return 0;+#endif+}++INLINE int __hscore_vtime( void )+{+#ifdef VTIME+  return VTIME;+#else+  return 0;+#endif+}++INLINE int __hscore_sigttou( void )+{+#ifdef SIGTTOU+  return SIGTTOU;+#else+  return 0;+#endif+}++INLINE int __hscore_sig_block( void )+{+#ifdef SIG_BLOCK+  return SIG_BLOCK;+#else+  return 0;+#endif+}++INLINE int __hscore_sig_setmask( void )+{+#ifdef SIG_SETMASK+  return SIG_SETMASK;+#else+  return 0;+#endif+}++INLINE int+__hscore_f_getfl( void )+{+#ifdef F_GETFL+  return F_GETFL;+#else+  return 0;+#endif+}++INLINE int+__hscore_f_setfl( void )+{+#ifdef F_SETFL+  return F_SETFL;+#else+  return 0;+#endif+}++// defined in rts/RtsStartup.c.+extern void* __hscore_get_saved_termios(int fd);+extern void __hscore_set_saved_termios(int fd, void* ts);++INLINE int __hscore_hs_fileno (FILE *f) { return fileno (f); }++INLINE int __hscore_open(char *file, int how, mode_t mode) {+#ifdef __MINGW32__+	if ((how & O_WRONLY) || (how & O_RDWR) || (how & O_APPEND))+	  return _sopen(file,how,_SH_DENYRW,mode);+	else+	  return _sopen(file,how,_SH_DENYWR,mode);+#else+	return open(file,how,mode);+#endif+}++// These are wrapped because on some OSs (eg. Linux) they are+// macros which redirect to the 64-bit-off_t versions when large file+// support is enabled.+//+#if defined(__MINGW32__)+INLINE off64_t __hscore_lseek(int fd, off64_t off, int whence) {+	return (_lseeki64(fd,off,whence));+}+#else+INLINE off_t __hscore_lseek(int fd, off_t off, int whence) {+	return (lseek(fd,off,whence));+}+#endif++INLINE HsInt __hscore_stat(char *file, struct_stat *buf) {+	return (stat(file,buf));+}++INLINE HsInt __hscore_fstat(int fd, struct_stat *buf) {+	return (fstat(fd,buf));+}++// select-related stuff++#if !defined(__MINGW32__)+INLINE int  hsFD_SETSIZE(void) { return FD_SETSIZE; }+INLINE int  hsFD_ISSET(int fd, fd_set *fds) { return FD_ISSET(fd, fds); }+INLINE void hsFD_SET(int fd, fd_set *fds) { FD_SET(fd, fds); }+INLINE HsInt sizeof_fd_set(void) { return sizeof(fd_set); }+extern void hsFD_ZERO(fd_set *fds);+#endif++// gettimeofday()-related++#if !defined(__MINGW32__)++INLINE HsInt sizeofTimeVal(void) { return sizeof(struct timeval); }++INLINE HsWord64 getUSecOfDay(void)+{+    struct timeval tv;+    gettimeofday(&tv, (struct timezone *) NULL);+    // Don't forget to cast *before* doing the arithmetic, otherwise+    // the arithmetic happens at the type of tv_sec, which is probably+    // only 'int'.+    return ((HsWord64)tv.tv_sec * 1000000 + (HsWord64)tv.tv_usec);+}++INLINE void setTimevalTicks(struct timeval *p, HsWord64 usecs)+{+    p->tv_sec  = usecs / 1000000;+    p->tv_usec = usecs % 1000000;+}+#endif /* !defined(__MINGW32__) */++/* ToDo: write a feature test that doesn't assume 'environ' to+ *    be in scope at link-time. */+extern char** environ;+INLINE char **__hscore_environ() { return environ; }++/* lossless conversions between pointers and integral types */+INLINE void *    __hscore_from_uintptr(uintptr_t n) { return (void *)n; }+INLINE void *    __hscore_from_intptr (intptr_t n)  { return (void *)n; }+INLINE uintptr_t __hscore_to_uintptr  (void *p)     { return (uintptr_t)p; }+INLINE intptr_t  __hscore_to_intptr   (void *p)     { return (intptr_t)p; }++void errorBelch2(const char*s, char *t);+void debugBelch2(const char*s, char *t);++#endif /* __HSBASE_H__ */+
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/HsBaseConfig.h view
@@ -0,0 +1,944 @@+/* ehclib/uhcbase/include/HsBaseConfig.h.  Generated from HsBaseConfig.h.in by configure.  */+#ifndef HSBASECONFIG_H+#define HSBASECONFIG_H++#include "MachDeps.h"++/********************************************************************/+/**** Sizes                                                      ****/+/********************************************************************/++#if SIZEOF_INTPTR_T == 8+#define HTYPE_INTPTR_T 			Int64+#define HTYPE_UINTPTR_T 		Word64+#else+#define HTYPE_INTPTR_T 			Int32+#define HTYPE_UINTPTR_T 		Word32+#endif++/* also here: typedef int sig_atomic_t+ */+#if SIZEOF_INT == 8+#define HTYPE_INT 				Int64+#define HTYPE_UNSIGNED_INT 		Word64+#define HTYPE_SIG_ATOMIC_T 		Word64+#else+#define HTYPE_INT 				Int32+#define HTYPE_UNSIGNED_INT 		Word32+#define HTYPE_SIG_ATOMIC_T 		Word32+#endif++#if SIZEOF_LONG == 8+#define HTYPE_LONG 				Int64+#define HTYPE_UNSIGNED_LONG 	Word64+#else+#define HTYPE_LONG 				Int32+#define HTYPE_UNSIGNED_LONG 	Word32+#endif++#if SIZEOF_VOID_P == 8+#define HTYPE_PTRDIFF_T 		Int64+#else+#define HTYPE_PTRDIFF_T 		Int32+#endif++#if SIZEOF_CLOCK_T == 8+#define HTYPE_CLOCK_T 			Word64+#else+#define HTYPE_CLOCK_T 			Word32+#endif++#if SIZEOF_TIME_T == 8+#define HTYPE_TIME_T 			Word64+#else+#define HTYPE_TIME_T 			Word32+#endif++#if SIZEOF_USECONDS_T == 8+#define HTYPE_USECONDS_T 		Word64+#else+#define HTYPE_USECONDS_T 		Word32+#endif++#if SIZEOF_SIZE_T == 8+#define HTYPE_SIZE_T 			Word64+#else+#define HTYPE_SIZE_T 			Word32+#endif++#if SIZEOF_WCHAR_T == 1+#define HTYPE_WCHAR_T 			Word8+#elif SIZEOF_WCHAR_T == 2+#define HTYPE_WCHAR_T 			Word16+#else+#define HTYPE_WCHAR_T 			Word32+#endif++++/* Define to Haskell type for char */+#define HTYPE_CHAR Int8++/* Define to Haskell type for double */+#define HTYPE_DOUBLE Double++/* Define to Haskell type for float */+#define HTYPE_FLOAT Float++/* Define to Haskell type for intmax_t */+#define HTYPE_INTMAX_T Int64++/* Define to Haskell type for long long */+#define HTYPE_LONG_LONG Int64++/* Define to Haskell type for short */+#define HTYPE_SHORT Int16++/* Define to Haskell type for signed char */+#define HTYPE_SIGNED_CHAR Int8++/* Define to Haskell type for uintmax_t */+#define HTYPE_UINTMAX_T Word64++/* Define to Haskell type for unsigned char */+#define HTYPE_UNSIGNED_CHAR Word8++/* Define to Haskell type for unsigned long long */+#define HTYPE_UNSIGNED_LONG_LONG Word64++/* Define to Haskell type for unsigned short */+#define HTYPE_UNSIGNED_SHORT Word16++++/********************************************************************/+/**** System tupes                                               ****/+/********************************************************************/++#ifdef SIZEOF_DEV_T+# if SIZEOF_DEV_T == 8+#  define HTYPE_DEV_T 			Word64+# elif SIZEOF_DEV_T == 4+#  define HTYPE_DEV_T 			Word32+# elif SIZEOF_DEV_T == 2+#  define HTYPE_DEV_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_INO_T+# if SIZEOF_INO_T == 8+#  define HTYPE_INO_T 			Word64+# elif SIZEOF_INO_T == 4+#  define HTYPE_INO_T 			Word32+# elif SIZEOF_INO_T == 2+#  define HTYPE_INO_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_MODE_T+# if SIZEOF_MODE_T == 8+#  define HTYPE_MODE_T 			Word64+# elif SIZEOF_MODE_T == 4+#  define HTYPE_MODE_T 			Word32+# elif SIZEOF_MODE_T == 2+#  define HTYPE_MODE_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_OFF_T+# if SIZEOF_OFF_T == 8+#  define HTYPE_OFF_T 			Word64+# elif SIZEOF_OFF_T == 4+#  define HTYPE_OFF_T 			Word32+# elif SIZEOF_OFF_T == 2+#  define HTYPE_OFF_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_PID_T+# if SIZEOF_PID_T == 8+#  define HTYPE_PID_T 			Word64+# elif SIZEOF_PID_T == 4+#  define HTYPE_PID_T 			Word32+# elif SIZEOF_PID_T == 2+#  define HTYPE_PID_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_SSIZE_T+# if SIZEOF_SSIZE_T == 8+#  define HTYPE_SSIZE_T 			Word64+# elif SIZEOF_SSIZE_T == 4+#  define HTYPE_SSIZE_T 			Word32+# elif SIZEOF_SSIZE_T == 2+#  define HTYPE_SSIZE_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_GID_T+# if SIZEOF_GID_T == 8+#  define HTYPE_GID_T 			Word64+# elif SIZEOF_GID_T == 4+#  define HTYPE_GID_T 			Word32+# elif SIZEOF_GID_T == 2+#  define HTYPE_GID_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_NLINK_T+# if SIZEOF_NLINK_T == 8+#  define HTYPE_NLINK_T 			Word64+# elif SIZEOF_NLINK_T == 4+#  define HTYPE_NLINK_T 			Word32+# elif SIZEOF_NLINK_T == 2+#  define HTYPE_NLINK_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_UID_T+# if SIZEOF_UID_T == 8+#  define HTYPE_UID_T 			Word64+# elif SIZEOF_UID_T == 4+#  define HTYPE_UID_T 			Word32+# elif SIZEOF_UID_T == 2+#  define HTYPE_UID_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_CC_T+# if SIZEOF_CC_T == 8+#  define HTYPE_CC_T 			Word64+# elif SIZEOF_CC_T == 4+#  define HTYPE_CC_T 			Word32+# elif SIZEOF_CC_T == 2+#  define HTYPE_CC_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_SPEED_T+# if SIZEOF_SPEED_T == 8+#  define HTYPE_SPEED_T 			Word64+# elif SIZEOF_SPEED_T == 4+#  define HTYPE_SPEED_T 			Word32+# elif SIZEOF_SPEED_T == 2+#  define HTYPE_SPEED_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_TCFLAG_T+# if SIZEOF_TCFLAG_T == 8+#  define HTYPE_TCFLAG_T 			Word64+# elif SIZEOF_TCFLAG_T == 4+#  define HTYPE_TCFLAG_T 			Word32+# elif SIZEOF_TCFLAG_T == 2+#  define HTYPE_TCFLAG_T 			Word16+# else+# endif+#endif++#ifdef SIZEOF_RLIM_T+# if SIZEOF_RLIM_T == 8+#  define HTYPE_RLIM_T 			Word64+# elif SIZEOF_RLIM_T == 4+#  define HTYPE_RLIM_T 			Word32+# elif SIZEOF_RLIM_T == 2+#  define HTYPE_RLIM_T 			Word16+# else+# endif+#endif++/********************************************************************/+/**** Presence of include files                                  ****/+/********************************************************************/++#define HAVE_DIRENT_H 1+#define HAVE_ERRNO_H 1+#define HAVE_FCNTL_H 1+#define HAVE_INTTYPES_H 1+#define HAVE_LIMITS_H 1+#define HAVE_SIGNAL_H 1+#define HAVE_STDINT_H 1+#define HAVE_STRING_H 1+#define HAVE_SYS_RESOURCE_H 1+#define HAVE_SYS_SELECT_H 1+#define HAVE_SYS_STAT_H 1+#define HAVE_SYS_SYSCALL_H 1+#define HAVE_SYS_TIME_H 1+#define HAVE_SYS_TIMEB_H 1+/* #undef HAVE_SYS_TIMERS_H */+#define HAVE_SYS_TIMES_H 1+#define HAVE_SYS_TYPES_H 1+#define HAVE_SYS_UTSNAME_H 1+#define HAVE_SYS_WAIT_H 1+#define HAVE_TERMIOS_H 1+#define HAVE_TIME_H 1+#define HAVE_UNISTD_H 1+#define HAVE_UTIME_H 1+/* #undef HAVE_VFORK_H */+#define HAVE_WCTYPE_H 1+/* #undef HAVE_WINDOWS_H */+/* #undef HAVE_WINSOCK_H */++/* #undef HAVE__CHSIZE */+#define HAVE_FTRUNCATE 1+/* #undef HAVE_GETCLOCK */+#define HAVE_GETRUSAGE 1+#define HAVE_GETTIMEOFDAY 1+#define HAVE_LSTAT 1+#define HAVE_READDIR_R 1++/********************************************************************/+/**** Runtime types                                              ****/+/********************************************************************/++#ifdef __UHC_BUILDS_O__++#if defined(__UHC_TARGET_BC__) || defined(__UHC_TARGET_C__)+// # define HsBool				Word+// # define HsInt				Word+// # define HsWord64			Word64+// # define HsWord32			Word32+// # define HsWord16			Word16+// # define HsWord8			Word8+// # ifdef __UHC_TARGET_BC__+// #  define HS_BOOL_FALSE		gb_False+// #  define HS_BOOL_TRUE		gb_True+// # else+// #  define HS_BOOL_FALSE		0+// #  define HS_BOOL_TRUE		1+// # endif+#endif /* __UHC_TARGET_BC__ */++#endif /* __UHC_BUILDS_O__ */++/********************************************************************/+/**** Read dir EOF error                                         ****/+/********************************************************************/++/* See remarks in GHC, libraries/base/aclocal.m4: MinGW platform returns non 0 value. We ignore that */+#define	READDIR_ERRNO_EOF	0++/********************************************************************/+/**** C errors                                                   ****/+/********************************************************************/++/* (1) Assume errno.h is already included */+/* (2) Error codes like EADV are not present on all platforms, so a dummy value is provided, this should be done for all codes */++/* The value of E2BIG. */+#if !defined(E2BIG)+#define E2BIG 10000+#endif+#define CONST_E2BIG E2BIG++/* The value of EACCES. */+#if !defined(EACCES)+#define EACCES 10000+#endif+#define CONST_EACCES EACCES++/* The value of EADDRINUSE. */+#if !defined(EADDRINUSE)+#define EADDRINUSE 10000+#endif+#define CONST_EADDRINUSE EADDRINUSE++/* The value of EADDRNOTAVAIL. */+#define CONST_EADDRNOTAVAIL EADDRNOTAVAIL++/* The value of EADV. */+#if !defined(EADV)+#define EADV 10000+#endif+#define CONST_EADV EADV++/* The value of EAFNOSUPPORT. */+#if !defined(EAFNOSUPPORT)+#define EAFNOSUPPORT 10000+#endif+#define CONST_EAFNOSUPPORT EAFNOSUPPORT++/* The value of EAGAIN. */+#if !defined(EAGAIN)+#define EAGAIN 10000+#endif+#define CONST_EAGAIN EAGAIN++/* The value of EALREADY. */+#if !defined(EALREADY)+#define EALREADY 10000+#endif+#define CONST_EALREADY EALREADY++/* The value of EBADF. */+#if !defined(EBADF)+#define EBADF 10000+#endif+#define CONST_EBADF EBADF++/* The value of EBADMSG. */+#if !defined(EBADMSG)+#define EBADMSG 10000+#endif+#define CONST_EBADMSG EBADMSG++/* The value of EBADRPC. */+#if !defined(EBADRPC)+#define EBADRPC 10000+#endif+#define CONST_EBADRPC EBADRPC++/* The value of EBUSY. */+#if !defined(EBUSY)+#define EBUSY 10000+#endif+#define CONST_EBUSY EBUSY++/* The value of ECHILD. */+#if !defined(ECHILD)+#define ECHILD 10000+#endif+#define CONST_ECHILD ECHILD++/* The value of ECOMM. */+#if !defined(ECOMM)+#define ECOMM 10000+#endif+#define CONST_ECOMM ECOMM++/* The value of ECONNABORTED. */+#if !defined(ECONNABORTED)+#define ECONNABORTED 10000+#endif+#define CONST_ECONNABORTED ECONNABORTED++/* The value of ECONNREFUSED. */+#if !defined(ECONNREFUSED)+#define ECONNREFUSED 10000+#endif+#define CONST_ECONNREFUSED ECONNREFUSED++/* The value of ECONNRESET. */+#if !defined(ECONNRESET)+#define ECONNRESET 10000+#endif+#define CONST_ECONNRESET ECONNRESET++/* The value of EDEADLK. */+#if !defined(EDEADLK)+#define EDEADLK 10000+#endif+#define CONST_EDEADLK EDEADLK++/* The value of EDESTADDRREQ. */+#if !defined(EDESTADDRREQ)+#define EDESTADDRREQ 10000+#endif+#define CONST_EDESTADDRREQ EDESTADDRREQ++/* The value of EDIRTY. */+#if !defined(EDIRTY)+#define EDIRTY 10000+#endif+#define CONST_EDIRTY EDIRTY++/* The value of EDOM. */+#if !defined(EDOM)+#define EDOM 10000+#endif+#define CONST_EDOM EDOM++/* The value of EDQUOT. */+#if !defined(EDQUOT)+#define EDQUOT 10000+#endif+#define CONST_EDQUOT EDQUOT++/* The value of EEXIST. */+#if !defined(EEXIST)+#define EEXIST 10000+#endif+#define CONST_EEXIST EEXIST++/* The value of EFAULT. */+#if !defined(EFAULT)+#define EFAULT 10000+#endif+#define CONST_EFAULT EFAULT++/* The value of EFBIG. */+#if !defined(EFBIG)+#define EFBIG 10000+#endif+#define CONST_EFBIG EFBIG++/* The value of EFTYPE. */+#if !defined(EFTYPE)+#define EFTYPE 10000+#endif+#define CONST_EFTYPE EFTYPE++/* The value of EHOSTDOWN. */+#if !defined(EHOSTDOWN)+#define EHOSTDOWN 10000+#endif+#define CONST_EHOSTDOWN EHOSTDOWN++/* The value of EHOSTUNREACH. */+#if !defined(EHOSTUNREACH)+#define EHOSTUNREACH 10000+#endif+#define CONST_EHOSTUNREACH EHOSTUNREACH++/* The value of EIDRM. */+#if !defined(EIDRM)+#define EIDRM 10000+#endif+#define CONST_EIDRM EIDRM++/* The value of EILSEQ. */+#if !defined(EILSEQ)+#define EILSEQ 10000+#endif+#define CONST_EILSEQ EILSEQ++/* The value of EINPROGRESS. */+#if !defined(EINPROGRESS)+#define EINPROGRESS 10000+#endif+#define CONST_EINPROGRESS EINPROGRESS++/* The value of EINTR. */+#if !defined(EINTR)+#define EINTR 10000+#endif+#define CONST_EINTR EINTR++/* The value of EINVAL. */+#if !defined(EINVAL)+#define EINVAL 10000+#endif+#define CONST_EINVAL EINVAL++/* The value of EIO. */+#if !defined(EIO)+#define EIO 10000+#endif+#define CONST_EIO EIO++/* The value of EISCONN. */+#if !defined(EISCONN)+#define EISCONN 10000+#endif+#define CONST_EISCONN EISCONN++/* The value of EISDIR. */+#if !defined(EISDIR)+#define EISDIR 10000+#endif+#define CONST_EISDIR EISDIR++/* The value of ELOOP. */+#if !defined(ELOOP)+#define ELOOP 10000+#endif+#define CONST_ELOOP ELOOP++/* The value of EMFILE. */+#if !defined(EMFILE)+#define EMFILE 10000+#endif+#define CONST_EMFILE EMFILE++/* The value of EMLINK. */+#if !defined(EMLINK)+#define EMLINK 10000+#endif+#define CONST_EMLINK EMLINK++/* The value of EMSGSIZE. */+#if !defined(EMSGSIZE)+#define EMSGSIZE 10000+#endif+#define CONST_EMSGSIZE EMSGSIZE++/* The value of EMULTIHOP. */+#if !defined(EMULTIHOP)+#define EMULTIHOP 10000+#endif+#define CONST_EMULTIHOP EMULTIHOP++/* The value of ENAMETOOLONG. */+#if !defined(ENAMETOOLONG)+#define ENAMETOOLONG 10000+#endif+#define CONST_ENAMETOOLONG ENAMETOOLONG++/* The value of ENETDOWN. */+#if !defined(ENETDOWN)+#define ENETDOWN 10000+#endif+#define CONST_ENETDOWN ENETDOWN++/* The value of ENETRESET. */+#if !defined(ENETRESET)+#define ENETRESET 10000+#endif+#define CONST_ENETRESET ENETRESET++/* The value of ENETUNREACH. */+#if !defined(ENETUNREACH)+#define ENETUNREACH 10000+#endif+#define CONST_ENETUNREACH ENETUNREACH++/* The value of ENFILE. */+#if !defined(ENFILE)+#define ENFILE 10000+#endif+#define CONST_ENFILE ENFILE++/* The value of ENOBUFS. */+#if !defined(ENOBUFS)+#define ENOBUFS 10000+#endif+#define CONST_ENOBUFS ENOBUFS++/* The value of ENOCIGAR. */+#if !defined(ENOCIGAR)+#define ENOCIGAR 10000+#endif+#define CONST_ENOCIGAR ENOCIGAR++/* The value of ENODATA. */+#if !defined(ENODATA)+#define ENODATA 10000+#endif+#define CONST_ENODATA ENODATA++/* The value of ENODEV. */+#if !defined(ENODEV)+#define ENODEV 10000+#endif+#define CONST_ENODEV ENODEV++/* The value of ENOENT. */+#if !defined(ENOENT)+#define ENOENT 10000+#endif+#define CONST_ENOENT ENOENT++/* The value of ENOEXEC. */+#if !defined(ENOEXEC)+#define ENOEXEC 10000+#endif+#define CONST_ENOEXEC ENOEXEC++/* The value of ENOLCK. */+#if !defined(ENOLCK)+#define ENOLCK 10000+#endif+#define CONST_ENOLCK ENOLCK++/* The value of ENOLINK. */+#if !defined(ENOLINK)+#define ENOLINK 10000+#endif+#define CONST_ENOLINK ENOLINK++/* The value of ENOMEM. */+#if !defined(ENOMEM)+#define ENOMEM 10000+#endif+#define CONST_ENOMEM ENOMEM++/* The value of ENOMSG. */+#if !defined(ENOMSG)+#define ENOMSG 10000+#endif+#define CONST_ENOMSG ENOMSG++/* The value of ENONET. */+#if !defined(ENONET)+#define ENONET 10000+#endif+#define CONST_ENONET ENONET++/* The value of ENOPROTOOPT. */+#if !defined(ENOPROTOOPT)+#define ENOPROTOOPT 10000+#endif+#define CONST_ENOPROTOOPT ENOPROTOOPT++/* The value of ENOSPC. */+#if !defined(ENOSPC)+#define ENOSPC 10000+#endif+#define CONST_ENOSPC ENOSPC++/* The value of ENOSR. */+#if !defined(ENOSR)+#define ENOSR 10000+#endif+#define CONST_ENOSR ENOSR++/* The value of ENOSTR. */+#if !defined(ENOSTR)+#define ENOSTR 10000+#endif+#define CONST_ENOSTR ENOSTR++/* The value of ENOSYS. */+#if !defined(ENOSYS)+#define ENOSYS 10000+#endif+#define CONST_ENOSYS ENOSYS++/* The value of ENOTBLK. */+#if !defined(ENOTBLK)+#define ENOTBLK 10000+#endif+#define CONST_ENOTBLK ENOTBLK++/* The value of ENOTCONN. */+#if !defined(ENOTCONN)+#define ENOTCONN 10000+#endif+#define CONST_ENOTCONN ENOTCONN++/* The value of ENOTDIR. */+#if !defined(ENOTDIR)+#define ENOTDIR 10000+#endif+#define CONST_ENOTDIR ENOTDIR++/* The value of ENOTEMPTY. */+#if !defined(ENOTEMPTY)+#define ENOTEMPTY 10000+#endif+#define CONST_ENOTEMPTY ENOTEMPTY++/* The value of ENOTSOCK. */+#if !defined(ENOTSOCK)+#define ENOTSOCK 10000+#endif+#define CONST_ENOTSOCK ENOTSOCK++/* The value of ENOTTY. */+#if !defined(ENOTTY)+#define ENOTTY 10000+#endif+#define CONST_ENOTTY ENOTTY++/* The value of ENXIO. */+#if !defined(ENXIO)+#define ENXIO 10000+#endif+#define CONST_ENXIO ENXIO++/* The value of EOPNOTSUPP. */+#if !defined(EOPNOTSUPP)+#define EOPNOTSUPP 10000+#endif+#define CONST_EOPNOTSUPP EOPNOTSUPP++/* The value of EPERM. */+#if !defined(EPERM)+#define EPERM 10000+#endif+#define CONST_EPERM EPERM++/* The value of EPFNOSUPPORT. */+#if !defined(EPFNOSUPPORT)+#define EPFNOSUPPORT 10000+#endif+#define CONST_EPFNOSUPPORT EPFNOSUPPORT++/* The value of EPIPE. */+#if !defined(EPIPE)+#define EPIPE 10000+#endif+#define CONST_EPIPE EPIPE++/* The value of EPROCLIM. */+#if !defined(EPROCLIM)+#define EPROCLIM 10000+#endif+#define CONST_EPROCLIM EPROCLIM++/* The value of EPROCUNAVAIL. */+#if !defined(EPROCUNAVAIL)+#define EPROCUNAVAIL 10000+#endif+#define CONST_EPROCUNAVAIL EPROCUNAVAIL++/* The value of EPROGMISMATCH. */+#if !defined(EPROGMISMATCH)+#define EPROGMISMATCH 10000+#endif+#define CONST_EPROGMISMATCH EPROGMISMATCH++/* The value of EPROGUNAVAIL. */+#if !defined(EPROGUNAVAIL)+#define EPROGUNAVAIL 10000+#endif+#define CONST_EPROGUNAVAIL EPROGUNAVAIL++/* The value of EPROTO. */+#if !defined(EPROTO)+#define EPROTO 10000+#endif+#define CONST_EPROTO EPROTO++/* The value of EPROTONOSUPPORT. */+#if !defined(EPROTONOSUPPORT)+#define EPROTONOSUPPORT 10000+#endif+#define CONST_EPROTONOSUPPORT EPROTONOSUPPORT++/* The value of EPROTOTYPE. */+#if !defined(EPROTOTYPE)+#define EPROTOTYPE 10000+#endif+#define CONST_EPROTOTYPE EPROTOTYPE++/* The value of ERANGE. */+#if !defined(ERANGE)+#define ERANGE 10000+#endif+#define CONST_ERANGE ERANGE++/* The value of EREMCHG. */+#if !defined(EREMCHG)+#define EREMCHG 10000+#endif+#define CONST_EREMCHG EREMCHG++/* The value of EREMOTE. */+#if !defined(EREMOTE)+#define EREMOTE 10000+#endif+#define CONST_EREMOTE EREMOTE++/* The value of EROFS. */+#if !defined(EROFS)+#define EROFS 10000+#endif+#define CONST_EROFS EROFS++/* The value of ERPCMISMATCH. */+#if !defined(ERPCMISMATCH)+#define ERPCMISMATCH 10000+#endif+#define CONST_ERPCMISMATCH ERPCMISMATCH++/* The value of ERREMOTE. */+#if !defined(ERREMOTE)+#define ERREMOTE 10000+#endif+#define CONST_ERREMOTE ERREMOTE++/* The value of ESHUTDOWN. */+#if !defined(ESHUTDOWN)+#define ESHUTDOWN 10000+#endif+#define CONST_ESHUTDOWN ESHUTDOWN++/* The value of ESOCKTNOSUPPORT. */+#if !defined(ESOCKTNOSUPPORT)+#define ESOCKTNOSUPPORT 10000+#endif+#define CONST_ESOCKTNOSUPPORT ESOCKTNOSUPPORT++/* The value of ESPIPE. */+#if !defined(ESPIPE)+#define ESPIPE 10000+#endif+#define CONST_ESPIPE ESPIPE++/* The value of ESRCH. */+#if !defined(ESRCH)+#define ESRCH 10000+#endif+#define CONST_ESRCH ESRCH++/* The value of ESRMNT. */+#if !defined(ESRMNT)+#define ESRMNT 10000+#endif+#define CONST_ESRMNT ESRMNT++/* The value of ESTALE. */+#if !defined(ESTALE)+#define ESTALE 10000+#endif+#define CONST_ESTALE ESTALE++/* The value of ETIME. */+#if !defined(ETIME)+#define ETIME 10000+#endif+#define CONST_ETIME ETIME++/* The value of ETIMEDOUT. */+#if !defined(ETIMEDOUT)+#define ETIMEDOUT 10000+#endif+#define CONST_ETIMEDOUT ETIMEDOUT++/* The value of ETOOMANYREFS. */+#if !defined(ETOOMANYREFS)+#define ETOOMANYREFS 10000+#endif+#define CONST_ETOOMANYREFS ETOOMANYREFS++/* The value of ETXTBSY. */+#if !defined(ETXTBSY)+#define ETXTBSY 10000+#endif+#define CONST_ETXTBSY ETXTBSY++/* The value of EUSERS. */+#if !defined(EUSERS)+#define EUSERS 10000+#endif+#define CONST_EUSERS EUSERS++/* The value of EWOULDBLOCK. */+#if !defined(EWOULDBLOCK)+#define EWOULDBLOCK 10000+#endif+#define CONST_EWOULDBLOCK EWOULDBLOCK++/* The value of EXDEV. */+#if !defined(EXDEV)+#define EXDEV 10000+#endif+#define CONST_EXDEV EXDEV++/* The value of O_BINARY. */+#if !defined(O_BINARY)+#define O_BINARY 10000+#endif+#define CONST_O_BINARY O_BINARY++/* The value of SIGINT. */+#if !defined(SIGINT)+#define SIGINT 10000+#endif+#define CONST_SIGINT SIGINT+++#endif+
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/IntLikeInstance.h view
@@ -0,0 +1,242 @@+{- --------------------------------------------------------------------------+// Macros to help make various instances for Int like types (Int8, ...).+//+// Primitives are defined by 2 forms of macros:+//  - starting with PRIMS_  : name of Haskell function and primitive is the same+//  - starting with PRIMS2_ : name of primitive is given explicitly, to allow sharing between primitives+// --------------------------------------------------------------------------+-}++-- define conversion primitives+#define PRIMS_CONVERSION_INTEGER(tycon,primIntegerTo,primToInteger) \+foreign import prim primIntegerTo :: Integer -> tycon ; \+foreign import prim primToInteger :: tycon -> Integer ++#define PRIMS2_CONVERSION_INTEGER(tycon,primIntegerTo,primIntegerToNm,primToInteger,primToIntegerNm) \+foreign import prim primIntegerToNm primIntegerTo :: Integer -> tycon ; \+foreign import prim primToIntegerNm primToInteger :: tycon -> Integer ++#define PRIMS_CONVERSION_INT(tycon,primIntTo,primToInt) \+foreign import prim primIntTo     :: Int -> tycon ; \+foreign import prim primToInt     :: tycon -> Int +++-- define Eq primitives+#define PRIMS_EQ(tycon,primEq,primNe) \+foreign import prim primEq      :: tycon -> tycon -> Bool ; \+foreign import prim primNe      :: tycon -> tycon -> Bool ++#define PRIMS2_EQ(tycon,primEq,primEqNm,primNe,primNeNm) \+foreign import prim primEqNm primEq     :: tycon -> tycon -> Bool ; \+foreign import prim primNeNm primNe     :: tycon -> tycon -> Bool+++-- define Eq instance+#define INSTANCE_EQ(tycon,primEq,primNe) \+instance Eq tycon where \+  { (==) = primEq ; \+  	(/=) = primNe \+  }+++-- define Ord primitives++#define PRIMS_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \+foreign import prim primCmp     :: tycon -> tycon -> Ordering ; \+foreign import prim primLt      :: tycon -> tycon -> Bool ; \+foreign import prim primGt      :: tycon -> tycon -> Bool ; \+foreign import prim primLe      :: tycon -> tycon -> Bool ; \+foreign import prim primGe      :: tycon -> tycon -> Bool ++#define PRIMS2_ORD(tycon,primCmp,primCmpNm,primLt,primLtNm,primGt,primGtNm,primLe,primLeNm,primGe,primGeNm) \+foreign import prim primCmpNm primCmp     :: tycon -> tycon -> Ordering ; \+foreign import prim primLtNm primLt      :: tycon -> tycon -> Bool ; \+foreign import prim primGtNm primGt      :: tycon -> tycon -> Bool ; \+foreign import prim primLeNm primLe      :: tycon -> tycon -> Bool ; \+foreign import prim primGeNm primGe      :: tycon -> tycon -> Bool +++-- define Ord instance++#define INSTANCE_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \+instance Ord tycon where \+  { compare = primCmp \+  ; (<) = primLt \+  ; (>) = primGt \+  ; (<=) = primLe \+  ; (>=) = primGe \+  }+++-- define Bounded primitives+#define PRIMS_BOUNDED(tycon,primMin,primMax) \+foreign import prim primMin     :: tycon ; \+foreign import prim primMax     :: tycon +++-- define Bounded instance+#define INSTANCE_BOUNDED(tycon,primMin,primMax) \+instance Bounded tycon where \+  { minBound = primMin \+  ; maxBound = primMax \+  }+++-- define Num primitives+#define PRIMS_NUM(tycon,primAdd,primSub,primMul,primNeg) \+foreign import prim primAdd       :: tycon -> tycon -> tycon ; \+foreign import prim primSub       :: tycon -> tycon -> tycon ; \+foreign import prim primMul       :: tycon -> tycon -> tycon ; \+foreign import prim primNeg       :: tycon -> tycon ++#define PRIMS2_NUM(tycon,primAdd,primAddNm,primSub,primSubNm,primMul,primMulNm,primNeg,primNegNm) \+foreign import prim primAddNm 			primAdd       :: tycon -> tycon -> tycon ; \+foreign import prim primSubNm 			primSub       :: tycon -> tycon -> tycon ; \+foreign import prim primMulNm 			primMul       :: tycon -> tycon -> tycon ; \+foreign import prim primNegNm 			primNeg       :: tycon -> tycon +++-- define Num instance+#define INSTANCE_NUM(tycon,primAdd,primSub,primMul,primNeg,primIntegerTo,primIntTo) \+instance Num tycon where \+  { (+)         = primAdd \+  ; (-)         = primSub \+  ; (*)         = primMul \+  ; negate      = primNeg \+  ; fromInteger = primIntegerTo \+  ; fromInt     = primIntTo \+  ; abs         = absReal \+  ; signum      = signumReal \+  }+++-- define Enum instance+#define INSTANCE_ENUM(tycon,primToEnum,primFromEnum) \+instance Enum tycon where \+  { succ           = boundedSucc \+  ; pred           = boundedPred \+  ; toEnum         = primToEnum \+  ; fromEnum       = primFromEnum \+  ; enumFrom       = boundedEnumFrom \+  ; enumFromTo     = boundedEnumFromTo \+  ; enumFromThen   = boundedEnumFromThen \+  ; enumFromThenTo = boundedEnumFromThenTo \+  }+++-- define Real instance+#define INSTANCE_REAL(tycon) \+instance Real tycon where \+  { toRational x = toInteger x % 1 \+  }+++-- define Integral primitives+#define PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) \+foreign import prim primDiv       :: tycon -> tycon -> tycon ; \+foreign import prim primMod       :: tycon -> tycon -> tycon ; \+foreign import prim primQuot      :: tycon -> tycon -> tycon ; \+foreign import prim primRem       :: tycon -> tycon -> tycon ++#define PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primRemNm) \+foreign import prim primDivNm 			primDiv       :: tycon -> tycon -> tycon ; \+foreign import prim primModNm 			primMod       :: tycon -> tycon -> tycon ; \+foreign import prim primQuotNm 			primQuot      :: tycon -> tycon -> tycon ; \+foreign import prim primRemNm 			primRem       :: tycon -> tycon -> tycon ++#define PRIMS_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem) \+PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) ; \+foreign import prim primDivMod    :: tycon -> tycon -> (tycon,tycon) ; \+foreign import prim primQuotRem   :: tycon -> tycon -> (tycon,tycon) ++#define PRIMS2_INTEGRAL2(tycon,primDiv,primDivNm,primMod,primModNm,primDivMod,primDivModNm,primQuot,primQuotNm,primRem,primRemNm,primQuotRem,primQuotRemNm) \+PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primQuotRemNm) ; \+foreign import prim primDivModNm 	primDivMod    :: tycon -> tycon -> (tycon,tycon) ; \+foreign import prim primQuotRemNm 	primQuotRem   :: tycon -> tycon -> (tycon,tycon) +++-- define Integral instance, assume default for divMod+#define INSTANCE_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem,primToInteger,primToInt) \+instance Integral tycon where \+  { quotRem d m \+              = (primQuot d m, primRem d m) \+  ; div       = primDiv \+  ; quot      = primQuot \+  ; rem       = primRem \+  ; mod       = primMod \+  ; toInteger = primToInteger \+  ; toInt     = primToInt \+  }++#define INSTANCE_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem,primToInteger,primToInt) \+instance Integral tycon where \+  { divMod    = primDivMod \+  ; quotRem   = primQuotRem \+  ; div       = primDiv \+  ; quot      = primQuot \+  ; rem       = primRem \+  ; mod       = primMod \+  ; toInteger = primToInteger \+  ; toInt     = primToInt \+  }+++-- define Show instance+#define INSTANCE_SHOW(tycon) \+instance Show tycon where \+  { show = show . toInteger \+  }+++-- define Read instance+#define INSTANCE_READ(tycon) \+instance Read tycon where \+  { readsPrec p = readSigned readDec \+  }+++-- define Bits primitives+#define PRIMS_BITLOGIC(tycon,primAnd,primOr,primXor) \+foreign import prim primAnd       	:: tycon -> tycon -> tycon ; \+foreign import prim primOr       	:: tycon -> tycon -> tycon ; \+foreign import prim primXor      	:: tycon -> tycon -> tycon++#define PRIMS_BITSHIFT(tycon,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \+foreign import prim primComplement	:: tycon -> tycon ; \+foreign import prim primShiftLeft  	:: tycon -> Int -> tycon ; \+foreign import prim primShiftRight 	:: tycon -> Int -> tycon ; \+foreign import prim primRotateLeft  :: tycon -> Int -> tycon ; \+foreign import prim primRotateRight :: tycon -> Int -> tycon++#define PRIMS2_BITLOGIC(tycon,primAnd,primAndNm,primOr,primOrNm,primXor,primXorNm) \+foreign import prim primAndNm       	primAnd       	:: tycon -> tycon -> tycon ; \+foreign import prim primOrNm       		primOr       	:: tycon -> tycon -> tycon ; \+foreign import prim primXorNm      		primXor      	:: tycon -> tycon -> tycon++#define PRIMS2_BITSHIFT(tycon,primComplement,primComplementNm,primShiftLeft,primShiftLeftNm,primShiftRight,primShiftRightNm,primRotateLeft,primRotateLeftNm,primRotateRight,primRotateRightNm) \+foreign import prim primComplementNm	primComplement	:: tycon -> tycon ; \+foreign import prim primShiftLeftNm  	primShiftLeft  	:: tycon -> Int -> tycon ; \+foreign import prim primShiftRightNm 	primShiftRight 	:: tycon -> Int -> tycon ; \+foreign import prim primRotateLeftNm  	primRotateLeft  :: tycon -> Int -> tycon ; \+foreign import prim primRotateRightNm 	primRotateRight :: tycon -> Int -> tycon++-- define Bits instance+#define INSTANCE_BITS1(tycon,size,signed,primAnd,primOr,primXor,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \+instance Bits tycon where \+  { (.&.)   	= primAnd \+  ; (.|.)   	= primOr \+  ; xor	   		= primXor \+  ; complement  = primComplement \+  ; shiftL      = primShiftLeft \+  ; shiftR      = primShiftRight \+  ; rotateL     = primRotateLeft \+  ; rotateR     = primRotateRight \+  ; bitSize _   = size \+  ; isSigned _  = signed \+  }++++++
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/MachDeps.h view
@@ -0,0 +1,125 @@+/* ehclib/uhcbase/include/MachDeps.h.  Generated from MachDeps.h.in by configure.  */+#ifndef MACHDEPS_H+#define MACHDEPS_H++#define SIZEOF_INTPTR_T 8+#define SIZEOF_CHAR 1+#define SIZEOF_SHORT 2+#define SIZEOF_INT 4+#define SIZEOF_LONG 8+#define SIZEOF_LONG_LONG 8+#define SIZEOF_FLOAT 4+#define SIZEOF_DOUBLE 8+#define SIZEOF_UNSIGNED_CHAR 1+#define SIZEOF_UNSIGNED_SHORT 2+#define SIZEOF_UNSIGNED_INT 4+#define SIZEOF_UNSIGNED_LONG 8+#define SIZEOF_UNSIGNED_LONG_LONG 8+#define SIZEOF_VOID_P 8++#define SIZEOF_DEV_T 4+#define SIZEOF_INO_T 8+#define SIZEOF_OFF_T 8+#define SIZEOF_MODE_T 2+#define SIZEOF_PID_T 4+#define SIZEOF_SSIZE_T 8+#define SIZEOF_GID_T 4+#define SIZEOF_NLINK_T 2+#define SIZEOF_UID_T 4+#define SIZEOF_RLIM_T 8+#define SIZEOF_CLOCK_T 8+#define SIZEOF_TIME_T 8+#define SIZEOF_SIZE_T 8+#define SIZEOF_WCHAR_T 4++#define SIZEOF_CC_T 1+#define SIZEOF_SPEED_T 8+#define SIZEOF_TCFLAG_T 8++#define ALIGNOF_INTPTR_T 8+#define ALIGNOF_CHAR 1+#define ALIGNOF_SHORT 2+#define ALIGNOF_INT 4+#define ALIGNOF_LONG 8+#define ALIGNOF_LONG_LONG 8+#define ALIGNOF_FLOAT 4+#define ALIGNOF_DOUBLE 8+#define ALIGNOF_UNSIGNED_CHAR 1+#define ALIGNOF_UNSIGNED_SHORT 2+#define ALIGNOF_UNSIGNED_INT 4+#define ALIGNOF_UNSIGNED_LONG 8+#define ALIGNOF_UNSIGNED_LONG_LONG 8+#define ALIGNOF_VOID_P 8++#define ALIGNOF_UINT8_T 1+#define ALIGNOF_UINT16_T 2+#define ALIGNOF_UINT32_T 4+#define ALIGNOF_UINT64_T 8++#if SIZEOF_INTPTR_T == 8+#define USE_64_BITS 1+#define USE_32_BITS 0+#else+#define USE_64_BITS 0+#define USE_32_BITS 1+#endif++#ifdef __UHC_TARGET_BC__+#define BITSIZEOF_WORDTAG		1+#else+#define BITSIZEOF_WORDTAG		0+#endif++#define SIZEOF_HSCHAR           SIZEOF_INTPTR_T+#define ALIGNMENT_HSCHAR        ALIGNOF_UINT32_T++#define SIZEOF_HSINT            SIZEOF_INTPTR_T+#define ALIGNMENT_HSINT         ALIGNOF_INTPTR_T++#define SIZEOF_HSWORD			SIZEOF_INTPTR_T+#define ALIGNMENT_HSWORD		ALIGNOF_INTPTR_T++#define SIZEOF_HSDOUBLE			SIZEOF_DOUBLE+#define ALIGNMENT_HSDOUBLE		ALIGNOF_DOUBLE++#define SIZEOF_HSFLOAT			SIZEOF_FLOAT+#define ALIGNMENT_HSFLOAT		ALIGNOF_FLOAT++#define SIZEOF_HSPTR            SIZEOF_VOID_P+#define ALIGNMENT_HSPTR         ALIGNOF_VOID_P++#define SIZEOF_HSFUNPTR         SIZEOF_VOID_P+#define ALIGNMENT_HSFUNPTR      ALIGNOF_VOID_P++#define SIZEOF_HSFOREIGNPTR     SIZEOF_VOID_P+#define ALIGNMENT_HSFOREIGNPTR  ALIGNOF_VOID_P++#define SIZEOF_HSSTABLEPTR      SIZEOF_VOID_P+#define ALIGNMENT_HSSTABLEPTR   ALIGNOF_VOID_P++#define SIZEOF_INT8             8+#define ALIGNMENT_INT8          ALIGNOF_UINT8_T++#define SIZEOF_WORD8            8+#define ALIGNMENT_WORD8         ALIGNOF_UINT8_T++#define SIZEOF_INT16            16+#define ALIGNMENT_INT16         ALIGNOF_UINT16_T++#define SIZEOF_WORD16           16+#define ALIGNMENT_WORD16        ALIGNOF_UINT16_T++#define SIZEOF_INT32            32+#define ALIGNMENT_INT32         ALIGNOF_UINT32_T++#define SIZEOF_WORD32           32+#define ALIGNMENT_WORD32        ALIGNOF_UINT32_T++#define SIZEOF_INT64            64+#define ALIGNMENT_INT64         ALIGNOF_UINT64_T++#define SIZEOF_WORD64           64+#define ALIGNMENT_WORD64        ALIGNOF_UINT64_T+++#endif
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/TupleInstance.h view
@@ -0,0 +1,147 @@+{- --------------------------------------------------------------------------+// Macros to help make various instances for tuples.+// A kind of poor mans deriving.+//+// --------------------------------------------------------------------------+-}++#define	COMMA	,++{- --------------------------------------------------------------------------+// 2 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b) => clscon (a,b) where \+  { op1 op1preArg (a,b) op1postArg \+      = pre \+            op1subop a \+        sep op1subop b \+        post \+  }++{- --------------------------------------------------------------------------+// 3 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \+  { op1 op1preArg (a,b,c) op1postArg \+      = pre \+            op1subop a \+        sep op1subop b \+        sep op1subop c \+        post \+  }++{- --------------------------------------------------------------------------+// 4 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \+  { op1 op1preArg (a,b,c,d) op1postArg \+      = pre \+            op1subop a \+        sep op1subop b \+        sep op1subop c \+        sep op1subop d \+        post \+  }++{- --------------------------------------------------------------------------+// 5 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \+  { op1 op1preArg (a,b,c,d,e) op1postArg \+      = pre \+            op1subop a \+        sep op1subop b \+        sep op1subop c \+        sep op1subop d \+        sep op1subop e \+        post \+  }++{- --------------------------------------------------------------------------+// Set of 2..n tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE_UNOP1_INSTANCES(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+{ TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\+  TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\+  TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\+  TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+}++{- --------------------------------------------------------------------------+// 2 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b) => clscon (a,b) where \+  { (a1,b1) op1 (a2,b2) \+      = pre \+            a1 op1subop a2 \+        sep b1 op1subop b2 \+        post \+  }++{- --------------------------------------------------------------------------+// 3 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \+  { (a1,b1,c1) op1 (a2,b2,c2) \+      = pre \+            a1 op1subop a2 \+        sep b1 op1subop b2 \+        sep c1 op1subop c2 \+        post \+  }++{- --------------------------------------------------------------------------+// 4 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \+  { (a1,b1,c1,d1) op1 (a2,b2,c2,d2) \+      = pre \+            a1 op1subop a2 \+        sep b1 op1subop b2 \+        sep c1 op1subop c2 \+        sep d1 op1subop d2 \+        post \+  }++{- --------------------------------------------------------------------------+// 5 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \+  { (a1,b1,c1,d1,e1) op1 (a2,b2,c2,d2,e2) \+      = pre \+            a1 op1subop a2 \+        sep b1 op1subop b2 \+        sep c1 op1subop c2 \+        sep d1 op1subop d2 \+        sep e1 op1subop e2 \+        post \+  }++{- --------------------------------------------------------------------------+// Set of 2..n tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE_BINOP1_INSTANCES(clscon,op1,op1subop,pre,sep,post) \+{ TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\+  TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\+  TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\+  TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+}+
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/Typeable.h view
@@ -0,0 +1,149 @@+{- --------------------------------------------------------------------------+// Macros to help make Typeable instances.+//+// INSTANCE_TYPEABLEn(tc,tcname,"tc") defines+//+//	instance Typeable/n/ tc+//	instance Typeable a => Typeable/n-1/ (tc a)+//	instance (Typeable a, Typeable b) => Typeable/n-2/ (tc a b)+//	...+//	instance (Typeable a1, ..., Typeable an) => Typeable (tc a1 ... an)+// --------------------------------------------------------------------------+-}++#ifndef TYPEABLE_H+#define TYPEABLE_H++#define INSTANCE_TYPEABLE0(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }++#ifdef __GLASGOW_HASKELL__++--  // For GHC, the extra instances follow from general instance declarations+--  // defined in Data.Typeable.++#define INSTANCE_TYPEABLE1(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE2(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE3(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE4(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE5(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE6(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE7(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }++#else /* !__GLASGOW_HASKELL__ */++#define INSTANCE_TYPEABLE1(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable (tycon a) where { typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE2(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable1 (tycon a) where { \+  typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b) => Typeable (tycon a b) where { \+  typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE3(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable2 (tycon a) where { \+  typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b) => Typeable1 (tycon a b) where { \+  typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable (tycon a b c) where { \+  typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE4(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable3 (tycon a) where { \+  typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b) => Typeable2 (tycon a b) where { \+  typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable1 (tycon a b c) where { \+  typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable (tycon a b c d) where { \+  typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE5(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable4 (tycon a) where { \+  typeOf4 = typeOf4Default }; \+instance (Typeable a, Typeable b) => Typeable3 (tycon a b) where { \+  typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable2 (tycon a b c) where { \+  typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable1 (tycon a b c d) where { \+  typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable (tycon a b c d e) where { \+  typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE6(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable5 (tycon a) where { \+  typeOf5 = typeOf5Default }; \+instance (Typeable a, Typeable b) => Typeable4 (tycon a b) where { \+  typeOf4 = typeOf4Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable3 (tycon a b c) where { \+  typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable2 (tycon a b c d) where { \+  typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable1 (tycon a b c d e) where { \+  typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable (tycon a b c d e f) where { \+  typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE7(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable6 (tycon a) where { \+  typeOf6 = typeOf6Default }; \+instance (Typeable a, Typeable b) => Typeable5 (tycon a b) where { \+  typeOf5 = typeOf5Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable4 (tycon a b c) where { \+  typeOf4 = typeOf4Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable3 (tycon a b c d) where { \+  typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable2 (tycon a b c d e) where { \+  typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable1 (tycon a b c d e f) where { \+  typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f, Typeable g) => Typeable (tycon a b c d e f g) where { \+  typeOf = typeOfDefault }++#endif /* !__GLASGOW_HASKELL__ */++#endif
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/dirUtils.h view
@@ -0,0 +1,11 @@+/* + * (c) The University of Glasgow 2002+ *+ * Directory Runtime Support+ */+#ifndef __DIRUTILS_H__+#define __DIRUTILS_H__++extern int __hscore_readdir(DIR *dirPtr, struct dirent **pDirEnt);++#endif /* __DIRUTILS_H__ */
+ 103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/installed-pkg-config view
@@ -0,0 +1,2 @@+exposed-modules: Control.Monad Data.Bits Data.Char Data.Either Data.Int Data.IORef Data.List Data.Maybe Data.Typeable Data.Word Debug.Trace Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.C Foreign.ForeignPtr Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Pool Foreign.Marshal.Utils Foreign.Marshal Foreign.Ptr Foreign.StablePtr Foreign.Storable Foreign System.IO.Error System.IO.Fix System.IO.Unsafe System.IO System.Posix.Internals System.Posix.Types UHC.Array UHC.Base UHC.Bits UHC.Bounded UHC.BoxArray UHC.ByteArray UHC.Char UHC.Conc UHC.Enum UHC.Eq UHC.Float UHC.ForeignPtr UHC.GC UHC.Generics.Tuple UHC.Generics UHC.Handle UHC.Int UHC.IO UHC.IOBase UHC.Ix UHC.LazyST UHC.MutVar UHC.MVar UHC.OldException UHC.OldIO UHC.Ord UHC.Prims UHC.Ptr UHC.Read UHC.Real UHC.Run UHC.Show UHC.ST UHC.StablePtr UHC.StackTrace UHC.Storable UHC.STRef UHC.Types UHC.Weak UHC.WeakPtr UHC.Word Unsafe.Coerce+build-depends: 
changelog.md view
@@ -1,6 +1,18 @@ # Changelog -## 1.1.7.4+## 1.1.8.1++- ++## 1.1.8.0 - 20141212++- [corerun, api] CoreRun has its own API.+- [core, api] Interface to Core main changed in that the state parameter is already passed explicitly (not implicitly added during later compiler pipeline stages), influences the api.+- [corerun] Cleaned up CoreRun AST, spec of the operational semantics under development (separate outside src/doc tree).+- [feature] Separate executable 'uhcr' as part of uhc-light for running CoreRun file .rcr as pretty printed by dump, a temporary solution.+- [corerun] Parser for CoreRun.++## 1.1.7.4 - 20141203  - [core] Detection of yes/no ANormal form of parsed Core and corresponding no/yes transformation (not tested for cases where it matters; unknown whether this is good enough for codegen to work properly) - [cleanup] Removal of src/ruler from source tree (has its own repo)
src/EHC.hs view
@@ -1,403 +1,9 @@ module Main where-import System.Console.GetOpt-import System.IO-import System.Exit-import System.Process-import System.Environment-import qualified UHC.Light.Compiler.Config as Cfg-import UHC.Light.Compiler.EHC.Common-import UHC.Light.Compiler.EHC.Environment-import UHC.Light.Compiler.EHC.CompileUnit-import UHC.Light.Compiler.EHC.CompileRun-import UHC.Light.Compiler.EHC.InitialSetup-import UHC.Light.Compiler.EHC.CompilePhase.TopLevelPhases-import qualified Debug.Trace-import qualified Data.Map as Map-import qualified Data.Set as Set-import Control.Monad.State-import UHC.Light.Compiler.Base.Target-import UHC.Light.Compiler.Base.Optimize (allOptimizeMp)-import qualified UHC.Light.Compiler.SourceCodeSig as Sig-import UHC.Light.Compiler.EHC.CompilePhase.Module-import UHC.Light.Compiler.Module.ImportExport (modBuiltin)-import UHC.Light.Compiler.Module.ImportExport-import System.Directory-import UHC.Light.Compiler.Base.PackageDatabase-import UHC.Light.Compiler.Base.Parser2-import qualified UHC.Light.Compiler.ConfigCabal as Cfg (getDataDir)-----------+import UHC.Light.Compiler.EHC.Main -{-# LINE 90 "src/ehc/EHC.chs" #-}+{-# LINE 21 "src/ehc/EHC.chs" #-}+-- | Top level main. TBD: hooks & customization main :: IO ()-main-  =  do  {  args      <- getArgs-         ;  progName  <- getProgName-         ;  curDir    <- getCurrentDirectory-         -- an empty data dir means we are running as cabal installed exec-         ;  mbDataDir <- Cfg.getDataDir >>= \d -> return $ if null d then Nothing else Just d-         ;  let  opts1          = defaultEHCOpts-                                    { ehcOptEnvironment     = defaultEHCEnvironment-                                    , ehcProgName           = p-                                    , ehcCurDir             = curDir-                                    }-                                where p = mkFPath progName-                 oo@(o,n,errs)  = ehcCmdLineOptsApply (maybe [] (\d -> [\o -> o {ehcOptCfgInstallRoot = Just d}]) mbDataDir) args opts1-                 opts2          = maybe opts1 id o-         ;  case opts2 of-              o | isNotOk (ehcOptMbTarget       o) -> err $ "non existent target `"        ++ fromNotOk (ehcOptMbTarget       o) ++ "'"-                | isNotOk (ehcOptMbTargetFlavor o) -> err $ "non existent target flavor `" ++ fromNotOk (ehcOptMbTargetFlavor o) ++ "'"-                where err x-                        = do { hPutStrLn stderr ("option error: " ++ x)-                             ; exitFailure-                             }-              _ -> return ()-         ;  userDir <- ehcenvDir (envkey opts2)-         ;  let opts3 = opts2 { ehcOptUserDir = userDir-                              , ehcOptOutputDir =-                                  let outputDir = maybe "." id (ehcOptOutputDir opts2)-                                  in  case ehcOptPkgOpt opts2 of-                                        Just (PkgOption {pkgoptName=s})-                                          -> case parsePkgKey s of-                                               Just k  -> Just $-                                                          outputDir ++ "/" ++-                                                          mkInternalPkgFileBase k (Cfg.installVariant opts2)-                                                                                (ehcOptTarget opts2) (ehcOptTargetFlavor opts2)-                                               _       -> ehcOptOutputDir opts2-                                        _ -> ehcOptOutputDir opts2-                              }-         ;  case ehcOptImmQuit opts3 of-              Just immq     -> handleImmQuitOption immq opts3-              _ | null errs ->-                               unless (null n) (doCompileRun n opts3)-                | otherwise -> do { putStr (head errs)-                                  ; exitFailure-                                  }-         }-  where envkey opts = mkEhcenvKey (Cfg.verFull Cfg.version) (fpathToStr $ ehcProgName opts) Cfg.ehcDefaultVariant--{-# LINE 177 "src/ehc/EHC.chs" #-}-defaultEHCEnvironment :: EHCEnvironment-defaultEHCEnvironment-  = EHCEnvironment Cfg.ehcDefaultVariant Cfg.ehcDefaultInplaceInstallDir--{-# LINE 187 "src/ehc/EHC.chs" #-}-handleImmQuitOption :: ImmediateQuitOption -> EHCOpts -> IO ()-handleImmQuitOption immq opts-  = case immq of-      ImmediateQuitOption_Help-        -> do {-                let progName = fpathToStr (ehcProgName opts)-              ; let inputSuffixes = catMaybes [ s | (s,_,vis) <- mkFileSuffMpHs opts, vis ]-              ; putStrLn (usageInfo (  "version: " ++ Cfg.verInfo Cfg.version ++ ", aspects: " ++ ehcOptAspects opts-                                    ++ "\n\nUsage: " ++ progName ++ " [options] [file[" ++ (concat $ intersperse "|" $ map ('.':) inputSuffixes) ++ "] ...]\n\noptions:"-                                    )-                                    ehcCmdLineOpts)-              }-        where-      ImmediateQuitOption_Version-        -> putStrLn $ Cfg.verInfo Cfg.version-                      ++ ", timestamp " ++ Sig.timestamp-      ImmediateQuitOption_Meta_Variant-        -> putStrLn Cfg.ehcDefaultVariant-      ImmediateQuitOption_Meta_Targets-        -> putStr showSupportedTargets-      ImmediateQuitOption_Meta_TargetDefault-        -> putStr (show defaultTarget)-      ImmediateQuitOption_Meta_Optimizations-        -> putStr (showStringMapKeys allOptimizeMp " ")-      ImmediateQuitOption_VersionDotted-        -> putStrLn (Cfg.verFull Cfg.version)-      ImmediateQuitOption_VersionAsNumber-        -> putStrLn (Cfg.verAsNumber Cfg.version)-{--      ImmediateQuitOption_Meta_ExportEnv mvEnvOpt-        -> exportEHCEnvironment-             (mkEhcenvKey (Cfg.verFull Cfg.version) (fpathToStr $ ehcProgName opts) Cfg.ehcDefaultVariant)-             (env {ehcenvInstallRoot = installRootDir, ehcenvVariant = variant})-        where env = ehcOptEnvironment opts-              (installRootDir,variant)-                = case fmap (wordsBy (`elem` ",;")) mvEnvOpt of-                    Just (d:v:_) -> (d,v)-                    Just (d:_)   -> (d,ehcenvVariant env)-                    _            -> (ehcenvInstallRoot env,ehcenvVariant env)-      ImmediateQuitOption_Meta_DirEnv-        -> do { d <- ehcenvDir (mkEhcenvKey (Cfg.verFull Cfg.version) (fpathToStr $ ehcProgName opts) Cfg.ehcDefaultVariant)-              ; putStrLn d-              }--}-      ImmediateQuitOption_Meta_Pkgdir_System-        -> do { let d = Cfg.mkInstallPkgdirSystem opts-              ; putStrLn d-              }-      ImmediateQuitOption_Meta_Pkgdir_User-        -> do { let d = Cfg.mkInstallPkgdirUser opts-              ; putStrLn d-              }--{-# LINE 269 "src/ehc/EHC.chs" #-}-type FileSuffMp =-  [( FileSuffix				-- suffix-   , EHCompileUnitState		-- initial state-   , Bool					-- visible from commandline-   )]---- | Allowed suffixes, order is significant.-mkFileSuffMpHs :: EHCOpts -> FileSuffMp-mkFileSuffMpHs opts-  = [ ( Just "hs"  , ECUS_Haskell HSStart, True )-    , ( Just "lhs" , ECUS_Haskell LHSStart, True )-    , ( Just "eh"  , ECUS_Eh EHStart, True )-    , ( Just "hi"  , ECUS_Haskell HIStart, False )-    , ( Just Cfg.suffixDotlessInputOutputTextualCore, ECUS_Core CRStartText, True   )-    , ( Just Cfg.suffixDotlessInputOutputBinaryCore , ECUS_Core CRStartBinary, True )-    , ( Just Cfg.suffixDotlessBinaryCore , ECUS_Core CRStartBinary, False )-    ]-    ++ (if targetIsOnUnixAndOrC (ehcOptTarget opts)-        then [ ( Just "c"   , ECUS_C CStart, True )-             , ( Just "o"   , ECUS_O OStart, True )-             ]-        else []-       )--{-# LINE 309 "src/ehc/EHC.chs" #-}--- Suffix map for empty suffix, defaults to .hs-fileSuffMpHsNoSuff :: FileSuffMp-fileSuffMpHsNoSuff-  = [ ( Nothing  , ECUS_Haskell HSStart, False )-    ]--{-# LINE 389 "src/ehc/EHC.chs" #-}-doCompilePrepare :: [String] -> EHCOpts -> IO (Maybe (EHCOpts,[FPath],[HsName],EHCompileRun))-doCompilePrepare fnL@(fn:_) opts-  = do { let fpL@(fp:_)             = map (mkTopLevelFPath "hs") fnL-             topModNmL@(topModNm:_) = map (mkHNm . fpathBase) fpL-             -- installVariant         = Cfg.installVariant opts-       -- ; installRoot <- Cfg.installRootM opts-       -- ; userDir <- ehcenvDir (Cfg.verFull Cfg.version)-       -- ; let opts2 = opts -- {ehcOptUserDir = userDir}-       ; pkgDb1 <- pkgDbFromDirs opts-                    ({--                        [ filePathCoalesceSeparator $ filePathUnPrefix-                          $ Cfg.mkDirbasedInstallPrefix (filelocDir d) Cfg.INST_LIB_PKG "" (show (ehcOptTarget opts)) ""-                        | d <- ehcOptPkgdirLocPath opts-                        ]-                     ++ [ filePathUnPrefix-                          $ Cfg.mkDirbasedTargetVariantPkgPrefix installRoot installVariant (show (ehcOptTarget opts)) ""-                        ]-                     -}-                     {--                     -}-                        [ filePathUnPrefix d-                        | d <- nub $ ehcOptPkgdirLocPath opts ++ [Cfg.mkInstallPkgdirUser opts, Cfg.mkInstallPkgdirSystem opts]-                        ]-                    )-       ; let (pkgDb2,pkgErrs) = pkgDbSelectBySearchFilter (pkgSearchFilter Just PackageSearchFilter_ExposePkg (map tup123to1 $ pkgExposedPackages pkgDb1)-                                                           ++ sort (ehcOptPackageSearchFilter opts)-                                                          ) pkgDb1-             pkgDb3 = pkgDbFreeze pkgDb2-       -- ; putStrLn $ "db1 " ++ show pkgDb1-       -- ; putStrLn $ "db2 " ++ show pkgDb2-       -- ; putStrLn $ "db3 " ++ show pkgDb3-       -- ; putStrLn (show $ ehcOptPackageSearchFilter opts)-       ; ehcioinfo <- newEHCIOInfo-       ; let searchPath     = [emptyFileLoc]-                              ++ ehcOptImportFileLocPath opts-                              {--                              ++ [ mkPkgFileLoc (p, Nothing) $ filePathUnPrefix-                                   $ Cfg.mkDirbasedLibVariantTargetPkgPrefix (filelocDir d) "" (show (ehcOptTarget opts)) p-                                 | d <- ehcOptLibFileLocPath opts-                                 , p <- ehcOptLibPackages opts-                                 ]-                              ++ [ mkPkgFileLoc p $ filePathUnPrefix-                                   $ Cfg.mkDirbasedTargetVariantPkgPrefix installRoot installVariant (show (ehcOptTarget opts)) p-                                 | p <- (   ehcOptLibPackages opts-                                         ++ (if ehcOptHideAllPackages opts then [] else Cfg.ehcAssumedPackages)-                                        )-                                 ]-                              -}-                              ++ [fileLocPkgDb]-             opts3          = opts { ehcOptImportFileLocPath = searchPath-                                    , ehcOptPkgDb = pkgDb3-                                    }-{- this does not work in ghc 6.8.2-             crsi           = emptyEHCompileRunStateInfo-                                { crsiOpts       =   opts3-                                , crsiHSInh      =   initialHSSem opts3-                                , crsiEHInh      =   initialEHSem opts3 fp-                                , crsiCoreInh    =   initialCore2GrSem opts3-                                -- , crsiHIInh      =   initialHISem opts3-                                , crsiHSModInh   =   initialHSSemMod opts3-                                }--}-             crsi           =   (EHCompileRunStateInfo opts3-                                                       uidStart uidStart-                                                       (initialHSSem opts3)-                                                       (initialEHSem opts3 fp)-                                                       (initialCore2GrSem opts3)-                                                       Nothing-                                                       -- (initialHISem opts3)-                                                       (initialHSSemMod opts3)-                                                       Map.empty Map.empty defaultOptim-                                                       Map.empty-                                                       ehcioinfo []-                                )-             initialState   = mkEmptyCompileRun topModNm crsi-       ; return $ Just (opts3,fpL,topModNmL,initialState)-       }--doCompileRun :: [String] -> EHCOpts -> IO ()-doCompileRun fnL@(fn:_) opts-  = do { mbPrep <- doCompilePrepare fnL opts-       ; if isJust mbPrep-         then do { let ( opts-                        , fpL@(fp:_)-                        , topModNmL@(topModNm:_)-                        , initialState-                        ) = fromJust mbPrep-                       searchPath = ehcOptImportFileLocPath opts-                       fileSuffMpHs = mkFileSuffMpHs opts-                 ; when (ehcOptVerbosity opts >= VerboseDebug)-                        (putStrLn $ "search path: " ++ show searchPath)-                 ; _ <- if False -- ehcOptPriv opts-                        then runStateT (compile2 opts fileSuffMpHs searchPath fpL topModNmL) initialState-                        else runStateT (compile  opts fileSuffMpHs searchPath fpL topModNmL) initialState-                 ; return ()-                 }-         else exitFailure-       }-  where compile2 :: EHCOpts -> FileSuffMp -> FileLocPath -> [FPath] -> [HsName] -> EHCompilePhase ()-        compile2 opts fileSuffMpHs searchPath fpL topModNmL-          = do {-               -- start with directly importing top modules, providing the filepath directly-                 topModNmL' <- toplayer fpL topModNmL-               ; cpPP "topModNmL'"-               ; oneModNmL <- onelayer-               ; cpPP "oneModNmL"-               ; return ()-               }-          where toplayer fpL topModNmL-                  = zipWithM (\fp topModNm -> imp1 opts fileSuffMpHs searchPath (ECUS_Haskell HSOnlyImports) (Just fp) Nothing topModNm) fpL topModNmL-                onelayer-                  = do { cr <- get-                       ; let modNmS = Map.keysSet $ crCUCache cr-                             ms = Set.unions-                                    [ case cuState e of-                                        -- ECUS_Haskell HIOnlyImports -> ecuTransClosedOrphanModS ecu-                                        _                         -> ecuImpNmS e-                                    | m <- Set.toList modNmS, let e = crCU m cr-                                    ]-                                  `Set.difference` modNmS-                       ; sequence -- or: cpSeq + return ()-                           [ do { i@(m',_) <- imp1 opts fileSuffMpHs searchPath (ECUS_Haskell HSOnlyImports) Nothing Nothing m-                                -- ; cpEhcFullProgModuleDetermineNeedsCompile m'-                                ; return i-                                }-                           | m <- Set.toList ms-                           ]-                       }--                -- dbg-                {--                showCompileOrder-                  = do { cr <- get-                       ; lift $ putStrLn $ "compile order: " ++ show (crCompileOrder cr)-                       }-                -}--        compile :: EHCOpts -> FileSuffMp -> FileLocPath -> [FPath] -> [HsName] -> EHCompilePhase ()-        compile opts fileSuffMpHs searchPath fpL topModNmL@(modNm:_)-          = do { cpMsg modNm VerboseDebug $ "doCompileRun.compile topModNmL: " ++ show topModNmL--               -- check module import relationship for builtin module-               ; cpCheckModsModWith (const emptyModMpInfo) [modBuiltin]--               -- start with directly importing top modules, providing the filepath directly-               ; topModNmL' <- zipWithM (\fp topModNm -> imp (ECUS_Haskell HSOnlyImports) (Just fp) Nothing topModNm) fpL topModNmL--               -- follow the import relation to chase modules which have to be analysed-               ; cpImportGatherFromModsWithImp-                   (if ehcOptPriv opts-                    then \ecu -> case ecuState ecu of-                                   -- ECUS_Haskell HIStart -> Set.toList $ ecuTransClosedOrphanModS ecu-                                   ECUS_Haskell HIOnlyImports -> [] -- Set.toList $ ecuTransClosedOrphanModS ecu-                                   _ -> ecuImpNmL ecu-                    else ecuImpNmL-                   )-                   (imp (ECUS_Haskell HSOnlyImports) Nothing) (map fst topModNmL')--               -- import orphans-               ; when (ehcOptPriv opts)-                      (do {-                          -- import orphans-                            importAlso (ECUS_Haskell HSOnlyImports) ecuTransClosedOrphanModS--                          -- import used remaining modules, but just minimally-                          ; importAlso (ECUS_Haskell HMOnlyMinimal) (Set.unions . Map.elems . ecuTransClosedUsedModMp)-                          })--               -- inhibit mutual recursiveness-               ; cpEhcCheckAbsenceOfMutRecModules--               -- and compile it all-               ; cpEhcFullProgCompileAllModules-               -- cleanup-               ; unless (ehcOptKeepIntermediateFiles opts) cpRmFilesToRm-               }-          where -- abbrev for imp1-                imp = imp1 opts fileSuffMpHs searchPath--                -- import others, but then in a (slightly) different way-                importAlso :: EHCompileUnitState -> (EHCompileUnit -> Set.Set HsName) -> EHCompilePhase ()-                importAlso how getNms-                  = do { cr <- get-                       ; let allAnalysedModS = Map.keysSet $ crCUCache cr-                             allNewS         = Set.unions [ getNms $ crCU m cr | m <- Set.toList allAnalysedModS ] `Set.difference` allAnalysedModS-                       ; cpImportGatherFromModsWithImp-                           (const [])-                           (imp how Nothing) (Set.toList allNewS)-                       }--        imp1 :: EHCOpts -> FileSuffMp -> FileLocPath -> EHCompileUnitState -> Maybe FPath -> Maybe (HsName,(FPath,FileLoc)) -> HsName -> EHCompilePhase (HsName,Maybe (HsName,(FPath,FileLoc)))-        imp1 opts fileSuffMpHs searchPath desiredState mbFp mbPrev nm-          = do { let isTopModule = isJust mbFp-                     fileSuffMpHs' = map tup123to12 $ (if isTopModule then fileSuffMpHsNoSuff else []) ++ fileSuffMpHs-               ; let searchPath' = adaptedSearchPath mbPrev-               ; fpsFound <- cpFindFilesForFPathInLocations (fileLocSearch opts) (\(x,_,_) -> x) False fileSuffMpHs' searchPath' (Just nm) mbFp-               ; when (ehcOptVerbosity opts >= VerboseDebug)-                      (do { lift $ putStrLn $ show nm ++ ": " ++ show (fmap fpathToStr mbFp) ++ ": " ++ show (map fpathToStr fpsFound)-                          ; lift $ putStrLn $ "searchPath: " ++ show searchPath'-                          })-               ; when isTopModule-                      (cpUpdCU nm (ecuSetIsTopMod True))-               ; cpUpdCU nm (ecuSetTarget (ehcOptTarget opts))-               ; case fpsFound of-                   (fp:_)-                     -> do { nm' <- cpEhcModuleCompile1 (Just desiredState) nm-                           ; cr <- get-                           ; let (ecu,_,_,_) = crBaseInfo nm' cr-                           ; return (nm',Just (nm',(fp, ecuFileLocation ecu)))-                           }-                   _ -> return (nm,Nothing)-               }-          where -- strip tail part corresponding to module name, and use it to search as well-                adaptedSearchPath (Just (prevNm,(prevFp,prevLoc)))-                  = case (fpathMbDir (mkFPath prevNm), fpathMbDir prevFp, prevLoc) of-                      (_, _, p) | filelocIsPkg p-                        -> p : searchPath-                      (Just n, Just p, _)-                        -> mkDirFileLoc (filePathUnPrefix prefix) : searchPath-                        where (prefix,_) = splitAt (length p - length n) p-                      _ -> searchPath-                adaptedSearchPath _ = searchPath+main = mainEHC 
+ src/Run.hs view
@@ -0,0 +1,38 @@+module Main+where+import UHC.Light.Compiler.Base.API+import UHC.Light.Compiler.CoreRun.API+import UHC.Util.Pretty+import System.Console.GetOpt+import System.IO+import Control.Monad+import System.Environment+import qualified Data.ByteString.Char8 as B++{-# LINE 22 "src/ehc/Run.chs" #-}+-- | Top level main. TBD: hooks & customization+main :: IO ()+main = do+    args <- getArgs+    progName <- getProgName+    -- putStrLn $ show args++    case args of+      [fname] -> {- withFile fname ReadMode $ \hInp -> -} do+        -- putStrLn "Hi1"+        -- inp <- B.hGetContents hInp+        inp <- B.readFile fname+        -- putStrLn $ show $ B.length inp+        -- putStrLn "Hi2"+        case parseModFromString $ B.unpack inp of+          Left  es  -> forM_ es putStrLn+          Right mod -> do+            res <- runCoreRunIO defaultEHCOpts mod+            case res of+              Left  e   -> putStrLn $ show e+              Right val -> putStrLn $ show $ pp val++      _       ->+        putStrLn $ "Usage: " ++ progName ++ " file.rcr"++
src/UHC/Light/Compiler/AbstractCore.hs view
@@ -240,6 +240,12 @@         -> expr     -- ^ The value of this alternative.         -> alt +  ------------------------- constructing: top level -------------------------+  -- | Wraps main expr into a form which can be directly run by evaluating+  acoreRunMain :: expr     -- ^ main+        -> expr+  acoreRunMain e = acore1App e (acoreTup [])+   ------------------------- type related -------------------------   -- | construct ty from Ty, usable in Core context   acoreTy2ty :: EHCOpts -> Ty -> ty@@ -357,10 +363,10 @@   acoreExprIsCoeArg :: expr -> Bool  -{-# LINE 311 "src/ehc/AbstractCore.chs" #-}+{-# LINE 321 "src/ehc/AbstractCore.chs" #-} type ACoreAppLikeMetaBound = (ACoreBindAspectKeyS,MetaLev,CLbl) -{-# LINE 315 "src/ehc/AbstractCore.chs" #-}+{-# LINE 325 "src/ehc/AbstractCore.chs" #-} instance AbstractCore e m b bound boundmeta bcat mbind t p pr pf a => AppLike e boundmeta {- () () -} where   app1App       = acore1App   appTop        = id@@ -377,22 +383,22 @@                      (_,a) <- acoreBoundMbVal b                      return (f,a) -{-# LINE 346 "src/ehc/AbstractCore.chs" #-}+{-# LINE 356 "src/ehc/AbstractCore.chs" #-} instance AbstractCore e m b bound boundmeta bcat mbind t p pr pf a => RecLike e boundmeta {- () () -} where   recRow _ fs   = acoreTagTyTupBound CTagRec (acoreTyErr "AbstractCore.RecLike.recRow") [ acoreBound1MetaVal (acoreBoundmeta acbaspkeyDefault 0 (CLbl_Nm n)) e | (n,e) <- fs ]    recMbRecRow  _= Nothing -- tyMbRecRowWithLkup (const Nothing)   recUnRowExts e= (e,[]) -{-# LINE 358 "src/ehc/AbstractCore.chs" #-}+{-# LINE 368 "src/ehc/AbstractCore.chs" #-} acoreMetaLift :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Functor f) => f x -> f (x,m) acoreMetaLift = fmap2Tuple acoreMetavalDflt -{-# LINE 363 "src/ehc/AbstractCore.chs" #-}+{-# LINE 373 "src/ehc/AbstractCore.chs" #-} acoreMetaLiftDict :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Functor f) => f x -> f (x,m) acoreMetaLiftDict = fmap2Tuple acoreMetavalDfltDict -{-# LINE 373 "src/ehc/AbstractCore.chs" #-}+{-# LINE 383 "src/ehc/AbstractCore.chs" #-} -- | A ACoreBindAspectKeyS formed out of multiple ACoreBindAspectKey identifies a particular binding aspect data ACoreBindAspectKey   = ACoreBindAspectKey_Default              -- identifies the default binding, if omitted in a reference this aspect is the one chosen.@@ -422,11 +428,11 @@ acbaspkeyMk :: [ACoreBindAspectKey] -> ACoreBindAspectKeyS acbaspkeyMk = Set.fromList -{-# LINE 414 "src/ehc/AbstractCore.chs" #-}+{-# LINE 424 "src/ehc/AbstractCore.chs" #-} acbaspkeyMetaLev :: MetaLev -> ACoreBindAspectKeyS -> MetaLev acbaspkeyMetaLev mlev _ = mlev -{-# LINE 425 "src/ehc/AbstractCore.chs" #-}+{-# LINE 435 "src/ehc/AbstractCore.chs" #-} -- | predefined: acbaspkeyNone :: ACoreBindAspectKeyS acbaspkeyNone = acbaspkeyMk@@ -467,17 +473,17 @@ acbaspkeyDebug = acbaspkeyMk   [ ACoreBindAspectKey_Debug ] -{-# LINE 484 "src/ehc/AbstractCore.chs" #-}+{-# LINE 494 "src/ehc/AbstractCore.chs" #-} -- | predefined: acbaspkeyFusionRole :: ACoreBindAspectKeyS acbaspkeyFusionRole = acbaspkeyMk   [ ACoreBindAspectKey_FusionRole ] -{-# LINE 491 "src/ehc/AbstractCore.chs" #-}+{-# LINE 501 "src/ehc/AbstractCore.chs" #-} ppACBaspKeyS :: ACoreBindAspectKeyS -> PP_Doc ppACBaspKeyS = ppCurlysCommas . Set.toList -{-# LINE 496 "src/ehc/AbstractCore.chs" #-}+{-# LINE 506 "src/ehc/AbstractCore.chs" #-} -- | uniqify with ACoreBindAspectKeyS, omitting the default hsnUniqifyACoreBindAspectKeyS :: ACoreBindAspectKeyS -> HsName -> HsName hsnUniqifyACoreBindAspectKeyS as n@@ -485,11 +491,11 @@   where mk ACoreBindAspectKey_Strict = hsnUniqify    HsNameUniqifier_Strict         mk a                         = hsnUniqifyStr HsNameUniqifier_BindAspect (show a) -{-# LINE 505 "src/ehc/AbstractCore.chs" #-}+{-# LINE 515 "src/ehc/AbstractCore.chs" #-} deriving instance Typeable ACoreBindAspectKey deriving instance Data ACoreBindAspectKey -{-# LINE 514 "src/ehc/AbstractCore.chs" #-}+{-# LINE 524 "src/ehc/AbstractCore.chs" #-} -- | reference to binding aspect: name + aspect keys data ACoreBindRef   = ACoreBindRef@@ -510,28 +516,28 @@ instance Show ACoreBindRef where   show = show . mkHNm -{-# LINE 536 "src/ehc/AbstractCore.chs" #-}+{-# LINE 546 "src/ehc/AbstractCore.chs" #-} acbrefAspKey :: ACoreBindRef -> ACoreBindAspectKeyS acbrefAspKey = maybe acbaspkeyNone id . acbrefMbAspKey {-# INLINE acbrefAspKey #-} -{-# LINE 542 "src/ehc/AbstractCore.chs" #-}+{-# LINE 552 "src/ehc/AbstractCore.chs" #-} -- | narrow down aspects by adding more to ref; assume extra aspects non empty acbrefAspAnd :: ACoreBindAspectKeyS -> ACoreBindRef -> ACoreBindRef acbrefAspAnd a r = r {acbrefMbAspKey = Just $ a `Set.union` acbrefAspKey r } -{-# LINE 548 "src/ehc/AbstractCore.chs" #-}+{-# LINE 558 "src/ehc/AbstractCore.chs" #-} ppACoreBindRef :: (HsName -> PP_Doc) -> ACoreBindRef -> PP_Doc ppACoreBindRef ppN r = ppN (acbrefNm r) >|< (maybe empty (ppCurlysCommas . Set.toList) $ acbrefMbAspKey r)  instance PP ACoreBindRef where   pp = ppACoreBindRef pp -{-# LINE 556 "src/ehc/AbstractCore.chs" #-}+{-# LINE 566 "src/ehc/AbstractCore.chs" #-} deriving instance Typeable ACoreBindRef deriving instance Data ACoreBindRef -{-# LINE 565 "src/ehc/AbstractCore.chs" #-}+{-# LINE 575 "src/ehc/AbstractCore.chs" #-} acore1App :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> e -> e acore1App f a = acore1AppBound f (acoreBound1Val a) {-# INLINE acore1App #-}@@ -546,7 +552,7 @@ acoreAppBound :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> [bound] -> e acoreAppBound f as = foldl (\f a -> acore1AppBound f a) f as -{-# LINE 585 "src/ehc/AbstractCore.chs" #-}+{-# LINE 595 "src/ehc/AbstractCore.chs" #-} acoreLamBind :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [b] -> e -> e acoreLamBind = flip (foldr acoreLam1Bind) {-# INLINE acoreLamBind #-}@@ -567,7 +573,7 @@ acoreLam :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [HsName] -> e -> e acoreLam as e = foldr (\(n) e -> acoreLam1 n e) e as -{-# LINE 607 "src/ehc/AbstractCore.chs" #-}+{-# LINE 617 "src/ehc/AbstractCore.chs" #-} acoreTagTupTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => CTag -> t -> [e] -> e acoreTagTupTy tg t es = acoreTagTyTupBound tg t $ map acoreBound1Val es @@ -588,7 +594,7 @@ acoreTag tg = acoreTagTup tg [] {-# INLINE acoreTag #-} -{-# LINE 640 "src/ehc/AbstractCore.chs" #-}+{-# LINE 650 "src/ehc/AbstractCore.chs" #-} acoreBind1CatLevMetaTyWith :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => (t->t) -> (e->e) -> bcat -> HsName -> MetaLev -> m -> t -> e -> b acoreBind1CatLevMetaTyWith mkT mkE cat n l m t e = acoreBind1CatLevMetasTy cat n l (acoreMetabindDflt,m) (mkT t) (mkE e) {-# INLINE acoreBind1CatLevMetaTyWith #-}@@ -625,7 +631,7 @@ acoreBind1 n e = acoreBind1Cat (acoreBindcategDflt e) n e {-# INLINE acoreBind1 #-} -{-# LINE 678 "src/ehc/AbstractCore.chs" #-}+{-# LINE 688 "src/ehc/AbstractCore.chs" #-} acoreBind1MetasTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> (mbind,m) -> t -> e -> b acoreBind1MetasTy n m t e = acoreBind1CatLevMetasTy (acoreBindcategDflt e) n metaLevVal m t e {-# INLINE acoreBind1MetasTy #-}@@ -651,7 +657,7 @@ -}  -{-# LINE 705 "src/ehc/AbstractCore.chs" #-}+{-# LINE 715 "src/ehc/AbstractCore.chs" #-} acoreBind1Asp1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> bound -> b acoreBind1Asp1 n ba = acoreBind1Asp n [ba] {-# INLINE acoreBind1Asp1 #-}@@ -668,7 +674,7 @@ acoreBind1Nm1 n = acoreBind1Asp n [] {-# INLINE acoreBind1Nm1 #-} -{-# LINE 727 "src/ehc/AbstractCore.chs" #-}+{-# LINE 737 "src/ehc/AbstractCore.chs" #-} acoreBoundVal1CatLevMetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> MetaLev -> m -> t -> e -> bound acoreBoundVal1CatLevMetaTy bcat n mlev m t e = acoreBoundVal1CatLevMetasTy bcat n mlev (acoreMetabindDflt,m) t e {-# INLINE acoreBoundVal1CatLevMetaTy #-}@@ -689,7 +695,7 @@ acoreBoundVal1Cat cat n e = acoreBoundVal1CatTy cat n (acoreTyErr "acoreBoundVal1Cat") e {-# INLINE acoreBoundVal1Cat #-} -{-# LINE 749 "src/ehc/AbstractCore.chs" #-}+{-# LINE 759 "src/ehc/AbstractCore.chs" #-} acoreBoundVal1Metas :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> (mbind,m) -> e -> bound acoreBoundVal1Metas n m e = acoreBoundVal1CatLevMetasTy (acoreBindcategDflt e) n metaLevVal m (acoreTyErr "acoreBoundVal1Metas") e {-# INLINE acoreBoundVal1Metas #-}@@ -699,7 +705,7 @@ {-# INLINE acoreBoundVal1Meta #-}  -{-# LINE 760 "src/ehc/AbstractCore.chs" #-}+{-# LINE 770 "src/ehc/AbstractCore.chs" #-} acoreBound1AspkeyVal :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => ACoreBindAspectKeyS -> e -> bound acoreBound1AspkeyVal a e = acoreBound1MetaVal (acoreBoundmeta a 0 CLbl_None) e {-# INLINE acoreBound1AspkeyVal #-}@@ -708,12 +714,12 @@ acoreBound1Val e = acoreBound1AspkeyVal acbaspkeyDefault e {-# INLINE acoreBound1Val #-} -{-# LINE 780 "src/ehc/AbstractCore.chs" #-}+{-# LINE 790 "src/ehc/AbstractCore.chs" #-} acoreTyErrLift :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Functor f) => String -> f x -> f (x,t) acoreTyErrLift msg = fmap (\n -> (n,acoreTyErr msg)) {-# INLINE acoreTyErrLift #-} -{-# LINE 790 "src/ehc/AbstractCore.chs" #-}+{-# LINE 800 "src/ehc/AbstractCore.chs" #-} -- | Construct let, possibly merging bindings acoreLetMerge :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Bool -> bcat -> [b] -> e -> e acoreLetMerge merge c bs e@@ -745,11 +751,11 @@ acoreLetRec bs e = acoreLet (acoreBindcategRec) bs e {-# INLINE acoreLetRec #-} -{-# LINE 823 "src/ehc/AbstractCore.chs" #-}+{-# LINE 833 "src/ehc/AbstractCore.chs" #-} acoreLetN :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [(bcat,[b])] -> e -> e acoreLetN cbs e = foldr (\(c,bs) e -> acoreLet c bs e) e cbs -{-# LINE 828 "src/ehc/AbstractCore.chs" #-}+{-# LINE 838 "src/ehc/AbstractCore.chs" #-} acoreLet1PlainTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> e -> e acoreLet1PlainTy nm t e   = acoreLet cat [acoreBind1CatTy cat nm t e]@@ -764,7 +770,7 @@ acoreLet1Plain nm e = acoreLet1PlainTy nm (acoreTyErr "acoreLet1Plain") e {-# INLINE acoreLet1Plain #-} -{-# LINE 844 "src/ehc/AbstractCore.chs" #-}+{-# LINE 854 "src/ehc/AbstractCore.chs" #-} acoreLet1StrictTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> e -> e acoreLet1StrictTy nm t e   = acoreLet cat [acoreBind1CatTy cat nm t e]@@ -779,7 +785,7 @@ acoreLet1Strict nm e = acoreLet1StrictTy nm (acoreTyErr "acoreLet1Strict") e {-# INLINE acoreLet1Strict #-} -{-# LINE 860 "src/ehc/AbstractCore.chs" #-}+{-# LINE 870 "src/ehc/AbstractCore.chs" #-} -- | evaluate an expr, with a continuation for the evaluated expr acoreLet1StrictInMetaTyWith :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => (t->t) -> (e->e) -> HsName -> m -> t -> e -> (e -> e) -> e acoreLet1StrictInMetaTyWith mkT mkE nm m t e mkC@@ -806,20 +812,20 @@ acoreLet1StrictIn nm e mkC = acoreLet1StrictInMeta nm acoreMetavalDflt e mkC {-# INLINE acoreLet1StrictIn #-} -{-# LINE 892 "src/ehc/AbstractCore.chs" #-}+{-# LINE 902 "src/ehc/AbstractCore.chs" #-} acoreNmHole :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => UID -> e acoreNmHole = acoreVar . mkHNm  acoreNmHolePred :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => PredOccId -> e acoreNmHolePred = acoreNmHole . poiId -{-# LINE 904 "src/ehc/AbstractCore.chs" #-}+{-# LINE 914 "src/ehc/AbstractCore.chs" #-} -- | get default for bindcateg acoreBindcategDflt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> bcat acoreBindcategDflt _ = acoreBindcategPlain {-# INLINE acoreBindcategDflt #-} -{-# LINE 915 "src/ehc/AbstractCore.chs" #-}+{-# LINE 925 "src/ehc/AbstractCore.chs" #-} acoreChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Char -> e acoreChar opts i = let x = acoreCharTy (acoreTyChar opts) i in x @@ -830,11 +836,11 @@ acoreInt2 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Integer -> e acoreInt2 opts i = let x = acoreIntTy2 (acoreTyInt opts) i in x -{-# LINE 931 "src/ehc/AbstractCore.chs" #-}+{-# LINE 941 "src/ehc/AbstractCore.chs" #-} acoreBuiltinApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> (EHBuiltinNames -> HsName) -> [e] -> e acoreBuiltinApp opts bnmOf args = acoreVar (ehcOptBuiltin opts bnmOf) `acoreApp` args -{-# LINE 936 "src/ehc/AbstractCore.chs" #-}+{-# LINE 946 "src/ehc/AbstractCore.chs" #-} acoreBuiltinAddInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> Int -> e acoreBuiltinAddInt opts e i   = if i == 0@@ -843,15 +849,15 @@            Just (t,i') -> acoreIntTy2 t (toInteger i + i')            _           -> acoreBuiltinApp opts ehbnPrimAddInt [e,acoreInt opts i] -{-# LINE 946 "src/ehc/AbstractCore.chs" #-}+{-# LINE 956 "src/ehc/AbstractCore.chs" #-} acoreBuiltinGtInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> Int -> e acoreBuiltinGtInt opts e i = acoreBuiltinApp opts ehbnPrimGtInt [e,acoreInt opts i] -{-# LINE 951 "src/ehc/AbstractCore.chs" #-}+{-# LINE 961 "src/ehc/AbstractCore.chs" #-} acoreBuiltinEqChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Char -> e -> e acoreBuiltinEqChar opts c e = acoreBuiltinApp opts ehbnPrimEqChar [e,acoreChar opts c] -{-# LINE 956 "src/ehc/AbstractCore.chs" #-}+{-# LINE 966 "src/ehc/AbstractCore.chs" #-} -- | Creates a string expression. -- The expression represents a packed String, which can be passed to Haskell generated Core functions. acoreBuiltinString :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)@@ -860,7 +866,7 @@     -> e acoreBuiltinString opts m = let x = acoreBuiltinApp opts ehbnPackedStringToString [acoreStringTy (acoreTyString opts) m] in x -{-# LINE 966 "src/ehc/AbstractCore.chs" #-}+{-# LINE 976 "src/ehc/AbstractCore.chs" #-} -- | Generates an error expression, failing with the given string when evaluated. ('error' in haskell) acoreBuiltinError :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)     => EHCOpts@@ -872,7 +878,7 @@ acoreBuiltinUndefined :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e acoreBuiltinUndefined opts = acoreBuiltinApp opts ehbnUndefined [] -{-# LINE 979 "src/ehc/AbstractCore.chs" #-}+{-# LINE 989 "src/ehc/AbstractCore.chs" #-} -- | Creates a Core 'Integer' constant. acoreBuiltinInteger :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)     => EHCOpts@@ -880,13 +886,13 @@     -> e acoreBuiltinInteger opts i = acoreBuiltinApp opts ehbnPackedStringToInteger [acoreStringTy (acoreTyString opts) (show i)] -{-# LINE 988 "src/ehc/AbstractCore.chs" #-}+{-# LINE 998 "src/ehc/AbstractCore.chs" #-} -- | Builtin list singleton (note: hardcoded of tags) acoreBuiltinListSingleton :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> e acoreBuiltinListSingleton opts e   = acoreTagTupTy (ctagCons opts) (acoreTyErr "acoreBuiltinListSingleton.Cons") [e, acoreTagTupTy (ctagNil opts) (acoreTyErr "acoreBuiltinListSingleton.Nil") []] -{-# LINE 999 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1009 "src/ehc/AbstractCore.chs" #-} -- | when pat is con get tag acorePatConMbTag :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => p -> Maybe CTag acorePatConMbTag = fmap (\(tg,_,_) -> tg) . acorePatMbCon@@ -898,25 +904,25 @@                        -- <|> (const ctagChar)  <$> acorePatMbChar p                 ) . fst . acoreUnAlt -{-# LINE 1016 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1026 "src/ehc/AbstractCore.chs" #-} -- | bound name of binding acoreBindNm :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => b -> HsName acoreBindNm = fst . acoreUnBind {-# INLINE acoreBindNm #-} -{-# LINE 1027 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1037 "src/ehc/AbstractCore.chs" #-} -- | bound name of binding acorePatFldTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => t -> (HsName,e) -> HsName -> pf acorePatFldTy t lbloff n = acorePatFldBind lbloff (acoreBind1NmTy1 n t) {-# INLINE acorePatFldTy #-} -{-# LINE 1038 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1048 "src/ehc/AbstractCore.chs" #-} -- | possible expr of bound (may panic) acoreUnBoundVal :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bound -> e acoreUnBoundVal = maybe (panic "acoreBoundMbVal") (\(_,a) -> a) . acoreBoundMbVal {-# INLINE acoreUnBoundVal #-} -{-# LINE 1049 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1059 "src/ehc/AbstractCore.chs" #-} -- | Construct 'if' expression. Hardcoded: tag nr, ordered alts (by tag) acoreIf :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Maybe HsName -> e -> e -> e -> e acoreIf opts cn c t f@@ -928,12 +934,12 @@                Nothing {-(tcUndefined opts)-}       ) -{-# LINE 1062 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1072 "src/ehc/AbstractCore.chs" #-} acoreMatchChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Maybe HsName -> Char -> e -> e -> e -> e acoreMatchChar opts cn cchar cexpr t f   = acoreIf opts cn (acoreBuiltinEqChar opts cchar cexpr) t f -{-# LINE 1092 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1102 "src/ehc/AbstractCore.chs" #-} data Coe' expr metaval bind bindasp ty   = Coe_Map             !(expr -> expr)                 -- normal, expression as function   | Coe_C               !expr                           -- constant@@ -952,7 +958,7 @@ instance Show (Coe' expr metaval bind bindasp ty) where   show _ = "COE" -{-# LINE 1129 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1139 "src/ehc/AbstractCore.chs" #-} -- | Coercions may either be applied or not on type arguments. --   In particular, due to lack of proper analysis (and generics code like generation), --   it is only known for arrow and product types how to construct a coercion from its type args, as they directly@@ -965,7 +971,7 @@   | CoeCtx_DontAllow   deriving (Eq,Show) -{-# LINE 1147 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1157 "src/ehc/AbstractCore.chs" #-} -- | Non inspectable, most general, coercion acoreCoeMap :: (e -> e) -> Coe' e m b ba t acoreCoeMap = Coe_Map@@ -976,7 +982,7 @@ acoreCoeId = Coe_C acoreCoeArg {-# INLINE acoreCoeId #-} -{-# LINE 1159 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1169 "src/ehc/AbstractCore.chs" #-} acoreCoeLamLetTy :: HsName -> t -> UID -> Coe' e m b ba t acoreCoeLamLetTy = Coe_LamLet {-# INLINE acoreCoeLamLetTy #-}@@ -990,7 +996,7 @@ acoreCoeLetRec [] = acoreCoeId acoreCoeLetRec bs = Coe_LetRec bs -{-# LINE 1174 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1184 "src/ehc/AbstractCore.chs" #-} -- | Application still requiring a function acoreCoeApp1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> Coe' e m b ba t acoreCoeApp1 = Coe_App1 -- a acoreMetavalDflt@@ -1007,7 +1013,7 @@ acoreCoeAppN as = acoreCoeMap (\e -> acoreApp e as) {-# INLINE acoreCoeAppN #-} -{-# LINE 1192 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1202 "src/ehc/AbstractCore.chs" #-} -- | Lambda still requiring a body acoreCoeLam1Ty :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> Coe' e m b ba t acoreCoeLam1Ty = Coe_Lam@@ -1017,7 +1023,7 @@ acoreCoeLam1 n = acoreCoeLam1Ty n (acoreTyErr "acoreCoeLam1") {-# INLINE acoreCoeLam1 #-} -{-# LINE 1203 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1213 "src/ehc/AbstractCore.chs" #-} -- | Composition of 2 Coe's acoreCoeCompose :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> Coe' e m b ba t -> Coe' e m b ba t acoreCoeCompose c1 c2@@ -1025,14 +1031,14 @@   | otherwise  = Coe_Compose c1 c2  -{-# LINE 1212 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1222 "src/ehc/AbstractCore.chs" #-} acoreCoePoiLApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [PredOccId] -> [Coe' e m b ba t] acoreCoePoiLApp = map (\i -> acoreCoeApp1 (acoreNmHolePred i))  acoreCoeImplsApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Impls -> [Coe' e m b ba t] acoreCoeImplsApp = acoreCoePoiLApp . implsPrIdL -{-# LINE 1220 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1230 "src/ehc/AbstractCore.chs" #-} acoreCoePoiLLamTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> [(PredOccId,t)] -> [Coe' e m b ba t] acoreCoePoiLLamTy onLast poiL   =  case map mk poiL of@@ -1045,19 +1051,19 @@ acoreCoeImplsLam :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> Impls -> [Coe' e m b ba t] acoreCoeImplsLam onLast is = acoreCoePoiLLamTy onLast (acoreTyErrLift "acoreCoeImplsLam" (implsPrIdL is)) -{-# LINE 1238 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1248 "src/ehc/AbstractCore.chs" #-} acoreCoeIsId :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> Bool acoreCoeIsId (Coe_C e) = acoreExprIsCoeArg e acoreCoeIsId _         = False -{-# LINE 1248 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1258 "src/ehc/AbstractCore.chs" #-} data CSubstKey   = CSKey_UID   UID   | CSKey_Nm    HsName   | CSKey_Ref   ACoreBindRef   deriving (Show,Eq,Ord) -{-# LINE 1256 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1266 "src/ehc/AbstractCore.chs" #-} data CSubstInfo' expr metaval bind bindasp ty   =  CSITy        { csiTy      :: !ty                   }@@ -1072,37 +1078,37 @@ instance Show (CSubstInfo' e m b ba t) where   show _ = "CSubstInfo'" -{-# LINE 1274 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1284 "src/ehc/AbstractCore.chs" #-} type CSubst' e m b ba t = Map.Map CSubstKey (CSubstInfo' e m b ba t)  emptyCSubst :: CSubst' e m b ba t emptyCSubst = Map.empty -{-# LINE 1285 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1295 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromNmTyL :: AssocL HsName t -> CSubst' e m b ba t acoreCSubstFromNmTyL l = Map.fromList [ (CSKey_Nm k,CSITy v) | (k,v) <- l ] -{-# LINE 1290 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1300 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromRefExprL :: AssocL ACoreBindRef e -> CSubst' e m b ba t acoreCSubstFromRefExprL l = Map.fromList [ (CSKey_Ref k,CSIExpr v) | (k,v) <- l ] -{-# LINE 1295 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1305 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromUidExprL :: AssocL UID e -> CSubst' e m b ba t acoreCSubstFromUidExprL l = Map.fromList [ (CSKey_UID k,CSIExpr v) | (k,v) <- l ] -{-# LINE 1300 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1310 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromUidBindLL :: AssocL UID [b] -> CSubst' e m b ba t acoreCSubstFromUidBindLL l = Map.fromList [ (CSKey_UID k,CSIBinds v) | (k,v) <- l ]  acoreCSubstFromUidImplsL :: AssocL UID ([Coe' e m b ba t],[Coe' e m b ba t]) -> CSubst' e m b ba t acoreCSubstFromUidImplsL l = Map.fromList [ (CSKey_UID k,uncurry CSIImpls v) | (k,v) <- l ] -{-# LINE 1312 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1322 "src/ehc/AbstractCore.chs" #-} -- | Combine CSubst: union only, application is postponed cSubstAppSubst :: CSubst' e m b ba t -> CSubst' e m b ba t -> CSubst' e m b ba t cSubstAppSubst = Map.union -{-# LINE 1322 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1332 "src/ehc/AbstractCore.chs" #-} infixr `cSubstApp`  class CSubstitutable       e m b ba t a@@ -1113,7 +1119,7 @@ instance CSubstitutable e m b ba t (CSubst' e m b ba t) where   cSubstApp cs s = cs `cSubstAppSubst` s -{-# LINE 1338 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1348 "src/ehc/AbstractCore.chs" #-} data RAlt' e t b pr   = RAlt_Alt            { rcaPats :: ![RPat' e t b pr], raaExpr :: !e, raaFailS :: UIDS } @@ -1134,14 +1140,14 @@  type RCEAltL' e t b pr = [RAlt' e t b pr] -{-# LINE 1362 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1372 "src/ehc/AbstractCore.chs" #-} rcaPat :: RAlt' e t b pr -> RPat' e t b pr rcaPat = head . rcaPats  raltLPatNms :: [RAlt' e t b pr] -> [RPatNm] raltLPatNms = nub . sort . map (rcpPNm . rcaPat) -{-# LINE 1370 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1380 "src/ehc/AbstractCore.chs" #-} rpatConTag :: RPat' e t b pr -> CTag rpatConTag (RPat_Int  _ _ _ )  = ctagInt rpatConTag (RPat_Char _ _ _ )  = ctagChar@@ -1150,7 +1156,7 @@ rcaTag :: RAlt' e t b pr -> CTag rcaTag = rpatConTag . head . rcaPats -{-# LINE 1380 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1390 "src/ehc/AbstractCore.chs" #-} raltIsVar :: RAlt' e t b pr -> Bool raltIsVar (RAlt_Alt (RPat_Var _ _ _ : _) _ _)  = True raltIsVar _                                    = False@@ -1162,17 +1168,17 @@         c (RPat_Char  _ _ _) = True         c _                  = False -{-# LINE 1393 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1403 "src/ehc/AbstractCore.chs" #-} raltIsConMany :: RAlt' e t b pr -> Bool raltIsConMany (RAlt_Alt (RPat_Con _ _ _ (RPatConBind_Many _) : _) _ _) = True raltIsConMany _                                                        = False -{-# LINE 1399 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1409 "src/ehc/AbstractCore.chs" #-} raltIsIrrefutable :: RAlt' e t b pr -> Bool raltIsIrrefutable (RAlt_Alt (RPat_Irrefutable _ _ _ : _) _ _) = True raltIsIrrefutable _                                           = False -{-# LINE 1405 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1415 "src/ehc/AbstractCore.chs" #-} raltMbBoolExpr :: RAlt' e t b pr -> Maybe (Maybe SrcConst) raltMbBoolExpr (RAlt_Alt (RPat_BoolExpr _ _ _ e : _) _ _)  = Just e raltMbBoolExpr _                                           = Nothing@@ -1180,13 +1186,13 @@ raltIsBoolExpr :: RAlt' e t b pr -> Bool raltIsBoolExpr = isJust . raltMbBoolExpr -{-# LINE 1416 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1426 "src/ehc/AbstractCore.chs" #-} rpatConBindUnFlatten :: RPatConBind' e t b pr -> [RPatConBind' e t b pr] -> RPatConBind' e t b pr rpatConBindUnFlatten z []  = z rpatConBindUnFlatten _ [b] = b rpatConBindUnFlatten _ bs  = RPatConBind_Many bs -{-# LINE 1427 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1437 "src/ehc/AbstractCore.chs" #-} acoreRPat2Pat :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPat' e t b pr -> p acoreRPat2Pat p   = case p of@@ -1197,7 +1203,7 @@       RPat_Char     n ty v    -> acorePatCharTy ty v       RPat_BoolExpr n _  v _  -> acorePatBoolExpr  v -{-# LINE 1441 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1451 "src/ehc/AbstractCore.chs" #-} acoreRPatConBind2PatConBind :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPatConBind' e t b pr -> (pr,[pf]) acoreRPatConBind2PatConBind b   = case b of@@ -1207,17 +1213,17 @@ acoreRPatBind2PatFld :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPatFld' e t b pr -> pf acoreRPatBind2PatFld (RPatFld_Fld l o _ p@(RPat_Var n _ _)) = acorePatFldTy (rcpTy p) (l,o) (rpatNmNm n) -{-# LINE 1458 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1468 "src/ehc/AbstractCore.chs" #-} ctagTrue, ctagFalse :: EHCOpts -> CTag ctagTrue  opts = CTag (ehcOptBuiltin opts ehbnDataBool) (ehcOptBuiltin opts ehbnBoolTrue)  tagBoolTrue  0 0        -- this makes it hardcoded, ideally dependent on datatype def itself !! ctagFalse opts = CTag (ehcOptBuiltin opts ehbnDataBool) (ehcOptBuiltin opts ehbnBoolFalse) tagBoolFalse 0 0        -- this makes it hardcoded, ideally dependent on datatype def itself !! -{-# LINE 1470 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1480 "src/ehc/AbstractCore.chs" #-} ctagCons, ctagNil :: EHCOpts -> CTag ctagCons opts = CTag (ehcOptBuiltin opts ehbnDataList) (ehcOptBuiltin opts ehbnDataListAltCons) tagListCons 2 2       -- this makes it hardcoded, ideally dependent on datatype def itself !! ctagNil  opts = CTag (ehcOptBuiltin opts ehbnDataList) (ehcOptBuiltin opts ehbnDataListAltNil ) tagListNil  0 2       -- this makes it hardcoded, ideally dependent on datatype def itself !! -{-# LINE 1480 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1490 "src/ehc/AbstractCore.chs" #-} -- | Reason to fail a case alternative data CaseAltFailReason   = CaseAltFailReason_Absence                   -- failed because of absence@@ -1230,23 +1236,23 @@   pp (CaseAltFailReason_Continue i) = pp i   pp (CaseAltFailReason_Absence   ) = pp "absent" -{-# LINE 1494 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1504 "src/ehc/AbstractCore.chs" #-} cafailHasId :: CaseAltFailReason -> (Bool,UID) cafailHasId (CaseAltFailReason_Absence   ) = (False,uidUnused) cafailHasId (CaseAltFailReason_Continue i) = (True ,i) -{-# LINE 1500 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1510 "src/ehc/AbstractCore.chs" #-} deriving instance Typeable CaseAltFailReason deriving instance Data CaseAltFailReason -{-# LINE 1509 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1519 "src/ehc/AbstractCore.chs" #-} data AppFunKind   = AppFunKind_NoApp                    -- inlined Nothing   | AppFunKind_Fun  ACoreBindRef   | AppFunKind_Tag  CTag   | AppFunKind_FFI -{-# LINE 1521 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1531 "src/ehc/AbstractCore.chs" #-}  -- | What kind of Expr? data WhatExpr@@ -1263,7 +1269,7 @@   | ExprIsBind 	HsName   deriving Eq -{-# LINE 1539 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1549 "src/ehc/AbstractCore.chs" #-} -- | is an var? whatExprMbVar :: WhatExpr -> Maybe HsName whatExprMbVar (ExprIsVar a) = Just a@@ -1294,7 +1300,7 @@ whatExprAppArity (ExprIsApp a _) = a whatExprAppArity _               = 0 -{-# LINE 1571 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1581 "src/ehc/AbstractCore.chs" #-} whatExprIsWHNF :: WhatExpr -> Bool whatExprIsWHNF (ExprIsLam _ _) 	= True whatExprIsWHNF (ExprIsVar _) 	= True@@ -1303,7 +1309,7 @@ whatExprIsWHNF ExprIsOtherWHNF 	= True whatExprIsWHNF _ 				= False -{-# LINE 1581 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1591 "src/ehc/AbstractCore.chs" #-} whatExprIsBind :: WhatExpr -> Bool whatExprIsBind = isJust . whatExprMbBind {-# INLINE whatExprIsBind #-}@@ -1318,14 +1324,14 @@ whatExprIsTup _             = False  -{-# LINE 1597 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1607 "src/ehc/AbstractCore.chs" #-} -- | Is Expr a FFI? whatExprIsFFI :: WhatExpr -> Bool whatExprIsFFI (ExprIsFFI  ) = True whatExprIsFFI _             = False  -{-# LINE 1615 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1625 "src/ehc/AbstractCore.chs" #-} instance Serialize ACoreBindAspectKey where   sput (ACoreBindAspectKey_Default       ) = sputWord8 0   sput (ACoreBindAspectKey_Strict        ) = sputWord8 1@@ -1345,12 +1351,12 @@         5 -> return ACoreBindAspectKey_Core         7 -> return ACoreBindAspectKey_FusionRole -{-# LINE 1646 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1656 "src/ehc/AbstractCore.chs" #-} instance Serialize ACoreBindRef where   sput (ACoreBindRef a b) = sput a >> sput b   sget = liftM2 ACoreBindRef sget sget -{-# LINE 1652 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1662 "src/ehc/AbstractCore.chs" #-} instance Serialize CaseAltFailReason where   sput (CaseAltFailReason_Continue a) = sputWord8 0 >> sput a   sput (CaseAltFailReason_Absence   ) = sputWord8 1@@ -1360,13 +1366,13 @@       0 -> liftM  CaseAltFailReason_Continue sget       1 -> return CaseAltFailReason_Absence -{-# LINE 1667 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1677 "src/ehc/AbstractCore.chs" #-} instance PP CSubstKey where   pp (CSKey_UID i)  = pp i   pp (CSKey_Nm  n)  = pp n   pp (CSKey_Ref r)  = pp r -{-# LINE 1674 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1684 "src/ehc/AbstractCore.chs" #-} instance (PP expr, PP ty) => PP (CSubstInfo' expr metaval bind bindasp ty) where   pp (CSITy         t    )  = pp t   pp (CSIExpr       e    )  = pp e
src/UHC/Light/Compiler/Base/API.hs view
@@ -25,6 +25,9 @@   -- * Names   , HsName +  -- * Error+  , Err+   -- * Misc   , hsnEhcRunMain   , hsnMain@@ -35,6 +38,8 @@ import UHC.Light.Compiler.Base.HsName import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Opts+import UHC.Light.Compiler.Error+ import qualified Data.Map as M  -- **************************************
src/UHC/Light/Compiler/Base/Common.hs view
@@ -34,6 +34,7 @@ , module UHC.Light.Compiler.CodeGen.Tag , module UHC.Light.Compiler.Base.Strictness , ppHsnNonAlpha, ppHsnEscaped, hsnEscapeeChars, ppHsnEscapeWith, hsnOkChars, hsnNotOkStrs+, ppSemi , ppPair , showPP , ppFM@@ -209,12 +210,16 @@ ppCmt p = "{-" >#< p >#< "-}"  {-# LINE 208 "src/ehc/Base/Common.chs" #-}+ppSemi :: PP x => x -> PP_Doc+ppSemi = (>|< ";") +{-# LINE 213 "src/ehc/Base/Common.chs" #-}+ ppSpaced :: PP a => [a] -> PP_Doc ppSpaced = ppListSep "" "" " "  -{-# LINE 215 "src/ehc/Base/Common.chs" #-}+{-# LINE 220 "src/ehc/Base/Common.chs" #-} ppFld :: String -> Maybe HsName -> HsName -> PP_Doc -> PP_Doc -> PP_Doc ppFld sep positionalNm nm nmPP f   = case positionalNm of@@ -227,7 +232,7 @@ mkPPAppFun :: HsName -> PP_Doc -> PP_Doc mkPPAppFun = mkPPAppFun' "|" -{-# LINE 229 "src/ehc/Base/Common.chs" #-}+{-# LINE 234 "src/ehc/Base/Common.chs" #-} mkExtAppPP' :: String -> (HsName,PP_Doc,[PP_Doc]) -> (HsName,PP_Doc,[PP_Doc],PP_Doc) -> (PP_Doc,[PP_Doc]) mkExtAppPP' sep (funNm,funNmPP,funPPL) (argNm,argNmPP,argPPL,argPP)   =  if hsnIsRec funNm || hsnIsSum funNm@@ -237,23 +242,23 @@ mkExtAppPP :: (HsName,PP_Doc,[PP_Doc]) -> (HsName,PP_Doc,[PP_Doc],PP_Doc) -> (PP_Doc,[PP_Doc]) mkExtAppPP = mkExtAppPP' "|" -{-# LINE 245 "src/ehc/Base/Common.chs" #-}+{-# LINE 250 "src/ehc/Base/Common.chs" #-} ppPair :: (PP a, PP b) => (a,b) -> PP_Doc ppPair (x,y) = ppParens (pp x >|< "," >|< pp y) -{-# LINE 250 "src/ehc/Base/Common.chs" #-}+{-# LINE 255 "src/ehc/Base/Common.chs" #-} showPP :: PP a => a -> String showPP x = disp (pp x) 100 "" -{-# LINE 255 "src/ehc/Base/Common.chs" #-}+{-# LINE 260 "src/ehc/Base/Common.chs" #-} ppFM :: (PP k,PP v) => Map.Map k v -> PP_Doc ppFM = ppAssocL . Map.toList -{-# LINE 260 "src/ehc/Base/Common.chs" #-}+{-# LINE 265 "src/ehc/Base/Common.chs" #-} ppListV :: PP a => [a] -> PP_Doc ppListV = vlist . map pp -{-# LINE 269 "src/ehc/Base/Common.chs" #-}+{-# LINE 274 "src/ehc/Base/Common.chs" #-} putCompileMsg :: Verbosity -> Verbosity -> String -> Maybe String -> HsName -> FPath -> IO () putCompileMsg v optsVerbosity msg mbMsg2 modNm fNm   = if optsVerbosity >= v@@ -262,7 +267,7 @@             }     else return () -{-# LINE 279 "src/ehc/Base/Common.chs" #-}+{-# LINE 284 "src/ehc/Base/Common.chs" #-} writePP ::  (a -> PP_Doc) -> a -> FPath -> IO () writePP f text fp = writeToFile (show.f $ text) fp @@ -277,7 +282,7 @@ writeToFile = writeToFile' False  -{-# LINE 304 "src/ehc/Base/Common.chs" #-}+{-# LINE 309 "src/ehc/Base/Common.chs" #-} data ParNeed =  ParNotNeeded | ParNeededLow | ParNeeded | ParNeededHigh | ParOverrideNeeded                 deriving (Eq,Ord) @@ -294,13 +299,13 @@               | otherwise           =  (ParNeeded,repeat ParNeededHigh)      in   pr -{-# LINE 326 "src/ehc/Base/Common.chs" #-}+{-# LINE 331 "src/ehc/Base/Common.chs" #-} ppParNeed :: PP p => ParNeed -> ParNeed -> p -> PP_Doc ppParNeed locNeed globNeed p   = par (pp p)   where par = if globNeed > locNeed then ppParens else id -{-# LINE 352 "src/ehc/Base/Common.chs" #-}+{-# LINE 357 "src/ehc/Base/Common.chs" #-} -- | Expressions in a CBound position optionally may be labelled data CLbl   = CLbl_None@@ -317,53 +322,53 @@ clbl _ f _ (CLbl_Nm  n) = f n clbl _ _ f (CLbl_Tag t) = f t -{-# LINE 370 "src/ehc/Base/Common.chs" #-}+{-# LINE 375 "src/ehc/Base/Common.chs" #-} instance PP CLbl where   pp = clbl empty pp pp -{-# LINE 379 "src/ehc/Base/Common.chs" #-}+{-# LINE 384 "src/ehc/Base/Common.chs" #-} data Unbox   = Unbox_FirstField   | Unbox_Tag         !Int   | Unbox_None -{-# LINE 390 "src/ehc/Base/Common.chs" #-}+{-# LINE 395 "src/ehc/Base/Common.chs" #-} unions :: Eq a => [[a]] -> [a] unions = foldr union [] -{-# LINE 395 "src/ehc/Base/Common.chs" #-}+{-# LINE 400 "src/ehc/Base/Common.chs" #-} listCombineUniq :: Eq a => [[a]] -> [a] listCombineUniq = nub . concat -{-# LINE 415 "src/ehc/Base/Common.chs" #-}+{-# LINE 420 "src/ehc/Base/Common.chs" #-} replicateBy :: [a] -> b -> [b] replicateBy l e = replicate (length l) e -{-# LINE 424 "src/ehc/Base/Common.chs" #-}+{-# LINE 429 "src/ehc/Base/Common.chs" #-} strPadLeft :: Char -> Int -> String -> String strPadLeft c n s = replicate (n - length s) c ++ s  strBlankPad :: Int -> String -> String strBlankPad n s = s ++ replicate (n - length s) ' ' -{-# LINE 432 "src/ehc/Base/Common.chs" #-}+{-# LINE 437 "src/ehc/Base/Common.chs" #-} snd3 :: (a,b,c) -> b snd3 (a,b,c) = b  thd :: (a,b,c) -> c thd (a,b,c) = c -{-# LINE 444 "src/ehc/Base/Common.chs" #-}+{-# LINE 449 "src/ehc/Base/Common.chs" #-} data Verbosity   = VerboseQuiet | VerboseMinimal | VerboseNormal | VerboseALot | VerboseDebug   deriving (Eq,Ord,Enum) -{-# LINE 454 "src/ehc/Base/Common.chs" #-}+{-# LINE 459 "src/ehc/Base/Common.chs" #-} data CHRScoped   = CHRScopedInstOnly | CHRScopedMutualSuper | CHRScopedAll   deriving (Eq,Ord) -{-# LINE 464 "src/ehc/Base/Common.chs" #-}+{-# LINE 469 "src/ehc/Base/Common.chs" #-} data CompilePoint   = CompilePoint_Imports   | CompilePoint_Parse@@ -373,7 +378,7 @@   | CompilePoint_All   deriving (Eq,Ord,Show) -{-# LINE 481 "src/ehc/Base/Common.chs" #-}+{-# LINE 486 "src/ehc/Base/Common.chs" #-} data Fixity   = Fixity_Infix | Fixity_Infixr | Fixity_Infixl   deriving (Eq,Ord,Show,Enum)@@ -383,28 +388,28 @@   pp Fixity_Infixl = pp "infixl"   pp Fixity_Infixr = pp "infixr" -{-# LINE 492 "src/ehc/Base/Common.chs" #-}+{-# LINE 497 "src/ehc/Base/Common.chs" #-} fixityMaxPrio :: Int fixityMaxPrio = 9 -{-# LINE 497 "src/ehc/Base/Common.chs" #-}+{-# LINE 502 "src/ehc/Base/Common.chs" #-} fixityAppPrio :: Int fixityAppPrio = fixityMaxPrio + 1 -{-# LINE 506 "src/ehc/Base/Common.chs" #-}+{-# LINE 511 "src/ehc/Base/Common.chs" #-} data InstVariant   = InstNormal | InstDefault   | InstDeriving InstDerivingFrom   deriving (Eq,Ord,Show) -{-# LINE 515 "src/ehc/Base/Common.chs" #-}+{-# LINE 520 "src/ehc/Base/Common.chs" #-} -- | Either a deriving combined from a datatype directly or a standalone data InstDerivingFrom   = InstDerivingFrom_Datatype   | InstDerivingFrom_Standalone   deriving (Eq,Ord,Show) -{-# LINE 527 "src/ehc/Base/Common.chs" #-}+{-# LINE 532 "src/ehc/Base/Common.chs" #-} type NmLev = Int  nmLevAbsent, nmLevBuiltin, nmLevOutside, nmLevModule :: NmLev@@ -414,7 +419,7 @@ nmLevModule  =  0  -{-# LINE 548 "src/ehc/Base/Common.chs" #-}+{-# LINE 553 "src/ehc/Base/Common.chs" #-} -- Assumption: tokTpIsInt (genTokTp t) == True tokMkInt :: Token -> Int tokMkInt t@@ -426,28 +431,28 @@ tokMkStr :: Token -> String tokMkStr = tokenVal -{-# LINE 566 "src/ehc/Base/Common.chs" #-}+{-# LINE 571 "src/ehc/Base/Common.chs" #-} tokMkQName :: Token -> HsName tokMkQName t   = case genTokTp t of       Just tp | tokTpIsInt tp -> mkHNmPos $ tokMkInt t       _                       -> mkHNm $ map hsnFromString $ tokenVals t -{-# LINE 576 "src/ehc/Base/Common.chs" #-}+{-# LINE 581 "src/ehc/Base/Common.chs" #-} tokMkQNames :: [Token] -> [HsName] tokMkQNames = map tokMkQName  instance HSNM Token where   mkHNm = tokMkQName -{-# LINE 588 "src/ehc/Base/Common.chs" #-}+{-# LINE 593 "src/ehc/Base/Common.chs" #-} hsnLclSupplyWith :: HsName -> [HsName] hsnLclSupplyWith n = map (\i -> hsnSuffix n $ "_" ++ show i) [1..]  hsnLclSupply :: [HsName] hsnLclSupply = hsnLclSupplyWith (hsnFromString "") -{-# LINE 600 "src/ehc/Base/Common.chs" #-}+{-# LINE 605 "src/ehc/Base/Common.chs" #-} splitByRadix :: (Integral b) => Int -> Int -> b -> (Int,[Int]) splitByRadix len radix num   = ( fromIntegral $ signum num@@ -463,19 +468,19 @@                  (abs num)         difflen = len - length repr -{-# LINE 617 "src/ehc/Base/Common.chs" #-}+{-# LINE 622 "src/ehc/Base/Common.chs" #-} strHex :: (Show a, Integral a) => Int -> a -> String strHex prec x   = replicate (prec - length h) '0' ++ h   where h = showHex x [] -{-# LINE 628 "src/ehc/Base/Common.chs" #-}+{-# LINE 633 "src/ehc/Base/Common.chs" #-} data Backend   = BackendGrinByteCode   | BackendSilly   deriving (Eq, Ord) -{-# LINE 639 "src/ehc/Base/Common.chs" #-}+{-# LINE 644 "src/ehc/Base/Common.chs" #-} data VarUIDHsName   = VarUIDHs_Name       { vunmId :: !UID, vunmNm' :: !HsName }   | VarUIDHs_UID        { vunmId :: !UID }@@ -487,12 +492,12 @@ vunmNm (VarUIDHs_UID  i  ) = mkHNm i vunmNm _                   = panic "Common.assnmNm" -{-# LINE 652 "src/ehc/Base/Common.chs" #-}+{-# LINE 657 "src/ehc/Base/Common.chs" #-} vunmMbVar :: VarUIDHsName -> Maybe UID vunmMbVar (VarUIDHs_Var v) = Just v vunmMbVar _                = Nothing -{-# LINE 658 "src/ehc/Base/Common.chs" #-}+{-# LINE 663 "src/ehc/Base/Common.chs" #-} instance Show VarUIDHsName where   show (VarUIDHs_Name _ n) = show n   show (VarUIDHs_UID  i  ) = show i@@ -501,7 +506,7 @@ instance PP VarUIDHsName where   pp a = pp $ show a -{-# LINE 672 "src/ehc/Base/Common.chs" #-}+{-# LINE 677 "src/ehc/Base/Common.chs" #-} withLkupLiftCyc2 :: (t -> Maybe UID) -> (t -> UIDS) -> (UID -> Maybe t) -> x -> (UIDS -> t -> x) -> (t -> x) -> UIDS -> UID -> x withLkupLiftCyc2 get noVisit lookup dflt yes no vsVisited v   = case lookup v of@@ -509,7 +514,7 @@         -> yes (Set.insert v $ Set.union (noVisit t) vsVisited) t       _ -> dflt -{-# LINE 681 "src/ehc/Base/Common.chs" #-}+{-# LINE 686 "src/ehc/Base/Common.chs" #-} withLkupLiftCyc1 :: (t -> Maybe UID) -> (t -> UIDS) -> (UID -> Maybe t) -> (UIDS -> t -> x) -> (t -> x) -> UIDS -> t -> x withLkupLiftCyc1 get noVisit lookup yes no vsVisited t   = maybe dflt (withLkupLiftCyc2 get noVisit lookup dflt yes no vsVisited) $ get t@@ -523,7 +528,7 @@ withLkupLift get   = withLkupChkVisitLift get (const Set.empty) -{-# LINE 696 "src/ehc/Base/Common.chs" #-}+{-# LINE 701 "src/ehc/Base/Common.chs" #-} lookupLiftCyc1 :: (x -> Maybe UID) -> (UID -> Maybe x) -> x' -> (x->x') -> x -> x' lookupLiftCyc1 get lookup dflt found x   = lk Set.empty dflt found x@@ -533,17 +538,17 @@ lookupLiftCyc2 get lookup dflt found x   = maybe dflt (\x -> lookupLiftCyc1 get lookup (found x) found x) $ lookup x -{-# LINE 707 "src/ehc/Base/Common.chs" #-}+{-# LINE 712 "src/ehc/Base/Common.chs" #-} lookupLiftCycMb1 :: (x -> Maybe UID) -> (UID -> Maybe x) -> x -> Maybe x lookupLiftCycMb1 get lookup x = lookupLiftCyc1 get lookup Nothing Just x  lookupLiftCycMb2 :: (x -> Maybe UID) -> (UID -> Maybe x) -> UID -> Maybe x lookupLiftCycMb2 get lookup x = lookupLiftCyc2 get lookup Nothing Just x -{-# LINE 719 "src/ehc/Base/Common.chs" #-}+{-# LINE 724 "src/ehc/Base/Common.chs" #-} data Presence = Present | Absent deriving (Eq,Ord,Show) -{-# LINE 727 "src/ehc/Base/Common.chs" #-}+{-# LINE 732 "src/ehc/Base/Common.chs" #-} -- | Combine [[x1..xn],..,[y1..ym]] to [[x1..y1],[x2..y1],..,[xn..ym]]. --   Each element [xi..yi] is distinct based on the the key k in xi==(k,_) combineToDistinguishedElts :: Eq k => [AssocL k v] -> [AssocL k v]@@ -558,7 +563,7 @@                                      ls                       ) l -{-# LINE 750 "src/ehc/Base/Common.chs" #-}+{-# LINE 755 "src/ehc/Base/Common.chs" #-} data AlwaysEq a = AlwaysEq a  instance Eq (AlwaysEq a) where@@ -573,12 +578,12 @@ instance PP a => PP (AlwaysEq a) where   pp (AlwaysEq x) = pp x -{-# LINE 770 "src/ehc/Base/Common.chs" #-}+{-# LINE 775 "src/ehc/Base/Common.chs" #-} type PkgName = String  emptyPkgName = "" -{-# LINE 780 "src/ehc/Base/Common.chs" #-}+{-# LINE 785 "src/ehc/Base/Common.chs" #-} -- | How to do linking/packaging data LinkingStyle   = LinkingStyle_None			-- ^ no linking (e.g. indicated by --compile-only flag)@@ -587,40 +592,40 @@   deriving (Eq,Ord,Enum,Bounded)  -{-# LINE 820 "src/ehc/Base/Common.chs" #-}+{-# LINE 825 "src/ehc/Base/Common.chs" #-} metaLevTy, metaLevKi, metaLevSo :: MetaLev metaLevTy  = metaLevVal + 1 metaLevKi  = metaLevTy  + 1 metaLevSo  = metaLevKi  + 1 -{-# LINE 831 "src/ehc/Base/Common.chs" #-}+{-# LINE 836 "src/ehc/Base/Common.chs" #-} -- | Use as variable id type VarId    = UID type VarIdS   = Set.Set UID -{-# LINE 841 "src/ehc/Base/Common.chs" #-}+{-# LINE 846 "src/ehc/Base/Common.chs" #-} uidHNm :: UID -> HsName uidHNm = mkHNm -- hsnFromString . show -{-# LINE 846 "src/ehc/Base/Common.chs" #-}+{-# LINE 851 "src/ehc/Base/Common.chs" #-} uidQualHNm :: HsName -> UID -> HsName uidQualHNm modnm uid =                         hsnPrefixQual modnm $                         uidHNm uid  -{-# LINE 864 "src/ehc/Base/Common.chs" #-}+{-# LINE 869 "src/ehc/Base/Common.chs" #-} data SrcConst   = SrcConst_Int    Integer   | SrcConst_Char   Char   | SrcConst_Ratio  Integer Integer   deriving (Eq,Show,Ord) -{-# LINE 876 "src/ehc/Base/Common.chs" #-}+{-# LINE 881 "src/ehc/Base/Common.chs" #-} fmap2Tuple :: Functor f => snd -> f x -> f (x,snd) fmap2Tuple snd = fmap (\x -> (x,snd)) -{-# LINE 885 "src/ehc/Base/Common.chs" #-}+{-# LINE 890 "src/ehc/Base/Common.chs" #-} -- | Variation of `when` where Boolean condition is computed in a monad whenM :: Monad m => m Bool -> m () -> m () whenM c m = do@@ -635,7 +640,7 @@   unless c' m {-# INLINE unlessM #-} -{-# LINE 905 "src/ehc/Base/Common.chs" #-}+{-# LINE 910 "src/ehc/Base/Common.chs" #-} genNmMap :: Ord x => (String->s) -> [x] -> Map.Map x s -> (Map.Map x s, [s]) genNmMap mk xs m   = (m',reverse ns)@@ -650,7 +655,7 @@         ch x | x < 26    = [chr $ ord 'a' + x]              | otherwise = let (q,r) = x `quotRem` 26 in ch q ++ ch r -{-# LINE 925 "src/ehc/Base/Common.chs" #-}+{-# LINE 930 "src/ehc/Base/Common.chs" #-} data MaybeOk a   = JustOk  a   | NotOk   String@@ -672,7 +677,7 @@ maybeOk _ j (JustOk x) = j x maybeOk n _ (NotOk  x) = n x -{-# LINE 952 "src/ehc/Base/Common.chs" #-}+{-# LINE 957 "src/ehc/Base/Common.chs" #-} -- | Abstract graph visit, over arbitrary structures graphVisit   :: (Ord node)@@ -692,7 +697,7 @@                                      unvisited3          = unionUnvisited (newUnvisited `Set.difference` visited') unvisited2                                  in  v ((visited',unvisited3),thr') -{-# LINE 977 "src/ehc/Base/Common.chs" #-}+{-# LINE 982 "src/ehc/Base/Common.chs" #-} data KnownPrim   =     -- platform Int@@ -731,17 +736,17 @@   | KnownPrim_Mul64   deriving (Show,Eq,Enum,Bounded) -{-# LINE 1023 "src/ehc/Base/Common.chs" #-}+{-# LINE 1028 "src/ehc/Base/Common.chs" #-} instance PP KnownPrim where   pp = pp . show -{-# LINE 1028 "src/ehc/Base/Common.chs" #-}+{-# LINE 1033 "src/ehc/Base/Common.chs" #-} allKnownPrimMp :: Map.Map String KnownPrim allKnownPrimMp   = Map.fromList [ (drop prefixLen $ show t, t) | t <- [ minBound .. maxBound ] ]   where prefixLen = length "KnownPrim_" -{-# LINE 1043 "src/ehc/Base/Common.chs" #-}+{-# LINE 1048 "src/ehc/Base/Common.chs" #-} str2stMpWithOmit :: (Show opt, Enum opt, Bounded opt, Eq opt) => [opt] -> Map.Map String opt str2stMpWithOmit omits = Map.fromList [ (show o, o) | o <- [minBound .. maxBound] \\ omits ] @@ -751,11 +756,11 @@ showStr2stMp :: Map.Map String opt -> String showStr2stMp = concat . intersperse " " . Map.keys -{-# LINE 1058 "src/ehc/Base/Common.chs" #-}+{-# LINE 1063 "src/ehc/Base/Common.chs" #-} deriving instance Data KnownPrim deriving instance Typeable KnownPrim -{-# LINE 1063 "src/ehc/Base/Common.chs" #-}+{-# LINE 1068 "src/ehc/Base/Common.chs" #-} deriving instance Typeable VarUIDHsName deriving instance Data VarUIDHsName @@ -775,7 +780,7 @@ deriving instance Data CLbl  -{-# LINE 1088 "src/ehc/Base/Common.chs" #-}+{-# LINE 1093 "src/ehc/Base/Common.chs" #-} instance Binary KnownPrim where   put = putEnum8   get = getEnum8
src/UHC/Light/Compiler/Config.hs view
@@ -63,13 +63,13 @@       { verSvnRevision      = ehcSvnRevision       , verMajor            = "1"       , verMinor            = "1"-      , verMinorMinor       = "7"-      , verMinorMinorMinor  = "4"+      , verMinorMinor       = "8"+      , verMinorMinorMinor  = "0"       , verQuality          = "alpha"       , verShort            = "1.1"-      , verMedium           = "1.1.7"-      , verFull             = "1.1.7.4"-      , verAsNumber         = "1174"+      , verMedium           = "1.1.8"+      , verFull             = "1.1.8.0"+      , verAsNumber         = "1180"       , verProg             = "ehc"       } 
src/UHC/Light/Compiler/ConfigInstall.hs view
@@ -11,7 +11,7 @@ cppOpts  = fst $ parseCmdLineOpts Cmd_CPP "-Wno-invalid-pp-token" -- cppOpts  = showCmdLineOpts cppOpts' -ehcSvnRevision = "master@b0046838b1"+ehcSvnRevision = "master@8f029a6258"  ehcDefaultInplaceInstallDir = "/Volumes/Work/Programming/uhc/EHC/install" 
src/UHC/Light/Compiler/ConfigInternalVersions.hs view
@@ -18,5 +18,5 @@ internalVersionHI = mkInternalVersion 1  -- | For binary/serialized Core .cr/.bcr etc files-internalVersionCore = mkInternalVersion 3+internalVersionCore = mkInternalVersion 11 
src/UHC/Light/Compiler/Core/API.hs view
@@ -382,7 +382,7 @@     -> EC.CExpr mkMain main = mainEhc   where mainEhc = AC.acoreLet1Plain mainNm-            (mainWrap $ AC.acoreVar main)+            (AC.acoreRunMain $ mainWrap $ AC.acoreVar main)             (AC.acoreVar mainNm)         mainNm = hsnMain         mainWrap = \m -> AC.acoreApp (AC.acoreVar hsnEhcRunMain) [m]
src/UHC/Light/Compiler/Core/BindExtract.hs view
@@ -2,21 +2,35 @@  -- UUAGC 0.9.50.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/BindExtra) module UHC.Light.Compiler.Core.BindExtract(BoundSel (..), noBoundSel, emptyBoundSel-, boundSelVal, boundSelMetaLev0, boundSelMetaLev01+, boundSelVal, boundSelExpr, boundSelMetaLev0, boundSelMetaLev01 , SelVal-, cbindExtract, cboundExtract+, cbindExtractMk, cbindExtract, cboundExtract+, cbindExtractExprMk , cbindExtractVal', cbindExtractVal, cboundExtractVal', cboundExtractVal) where  import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Core import UHC.Light.Compiler.Ty+import Control.Monad.State   +type StateSel = State ([SelVal],[SelVal]) () +-- | Return the selected, the not selected, and a function taking selected merging it back with the not selected+mkSel :: Bool -> SelVal -> ([SelVal], [SelVal], [StateSel])+mkSel isSelected boundval+  | isSelected = ([boundval], []        , [modify (\(s:sel, acc) -> (sel, s       :acc))])+  | otherwise  = ([]        , [boundval], [modify (\(  sel, acc) -> (sel, boundval:acc))])   ++++++ -- | Selection predicates, an algebra for CBound fixed to yield Bool data BoundSel   = BoundSel@@ -52,6 +66,13 @@       { selVal 			= \_ _ _ -> True       } +-- | Predefined selection: Expr occurring in either Val or Bind or FFE+boundSelExpr :: BoundSel+boundSelExpr+  = boundSelMetaLev0+      { selBind			= True+      }+ -- | Predefined selection: same MetaLev (i.e. 0) boundSelMetaLev0 :: BoundSel boundSelMetaLev0@@ -75,15 +96,24 @@   --- | Extract CBounds for a binding, partitioned according to selection-cbindExtract :: BoundSel -> CBind -> ([SelVal],[SelVal])-cbindExtract sel b-  = (selvalYesL_Syn_CBind t, selvalNoL_Syn_CBind t)+-- | Extract CBounds for a binding, partitioned according to selection, returning a reconstruction function taking mapped CBounds+cbindExtractMk :: BoundSel -> CBind -> ([SelVal],[SelVal],[SelVal] -> CBind)+cbindExtractMk sel b+  = ( selvalYesL_Syn_CBind t+    , selvalNoL_Syn_CBind t+    , \yessel -> b {bindAspects_CBind_Bind = selvalInsertYes_Syn_CBind t yessel}+    )   where t = wrap_CBind (sem_CBind b)               (Inh_CBind                 { boundsel_Inh_CBind = sel                 }) +-- | Extract CBounds for a binding, partitioned according to selection+cbindExtract :: BoundSel -> CBind -> ([SelVal],[SelVal])+cbindExtract sel b+  = (yessel,nosel)+  where (yessel,nosel,_) = cbindExtractMk sel b+ -- | Extract CBounds for a bound, partitioned according to selection cboundExtract :: BoundSel -> CBound -> ([SelVal],[SelVal]) cboundExtract sel b@@ -95,6 +125,18 @@   +-- | Extract (first) bound CExpr and reconstruction+cbindExtractExprMk :: CBind -> (CExpr, CExpr -> CBind)+cbindExtractExprMk bi+  = case bo of+      CBound_Val  {expr_CBound_Val =e} -> (e, mkbi $ \e' -> bo {expr_CBound_Val =e'})+      CBound_Bind {expr_CBound_Bind=e} -> (e, mkbi $ \e' -> bo {expr_CBound_Bind=e'})+      CBound_FFE  {expr_CBound_FFE =e} -> (e, mkbi $ \e' -> bo {expr_CBound_FFE =e'})+  where mkbi mke = \e' -> mks (mke e' : bos)+        (bo : bos, _, mks) = cbindExtractMk boundSelExpr bi+++ extractVal' :: (BoundSel -> b -> ([SelVal],[SelVal])) -> b -> (ACoreBindAspectKeyS,MetaLev,CExpr) extractVal' extr b   = (a,ml,e)@@ -198,6 +240,7 @@          boundsel             : BoundSel       synthesized attributes:          boundval             : CBind +         selvalInsertYes      : [SelVal] -> [SelVal]          selvalNoL            : [SelVal]          selvalYesL           : [SelVal]    alternatives:@@ -214,15 +257,15 @@     (sem_CBind_Bind _nm (sem_CBoundL _bindAspects)) -- semantic domain type T_CBind = BoundSel ->-               ( CBind,([SelVal]),([SelVal]))+               ( CBind,([SelVal] -> [SelVal]),([SelVal]),([SelVal])) data Inh_CBind = Inh_CBind {boundsel_Inh_CBind :: !(BoundSel)}-data Syn_CBind = Syn_CBind {boundval_Syn_CBind :: !(CBind),selvalNoL_Syn_CBind :: !(([SelVal])),selvalYesL_Syn_CBind :: !(([SelVal]))}+data Syn_CBind = Syn_CBind {boundval_Syn_CBind :: !(CBind),selvalInsertYes_Syn_CBind :: !(([SelVal] -> [SelVal])),selvalNoL_Syn_CBind :: !(([SelVal])),selvalYesL_Syn_CBind :: !(([SelVal]))} wrap_CBind :: T_CBind ->               Inh_CBind ->               Syn_CBind wrap_CBind sem (Inh_CBind _lhsIboundsel) =-    (let ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) = sem _lhsIboundsel-     in  (Syn_CBind _lhsOboundval _lhsOselvalNoL _lhsOselvalYesL))+    (let ( _lhsOboundval,_lhsOselvalInsertYes,_lhsOselvalNoL,_lhsOselvalYesL) = sem _lhsIboundsel+     in  (Syn_CBind _lhsOboundval _lhsOselvalInsertYes _lhsOselvalNoL _lhsOselvalYesL)) sem_CBind_Bind :: HsName ->                   T_CBoundL ->                   T_CBind@@ -231,16 +274,18 @@          (case (_lhsIboundsel) of           { _bindAspectsOboundsel ->           (case (bindAspects_ _bindAspectsOboundsel) of-           { ( _bindAspectsIboundval,_bindAspectsIselvalNoL,_bindAspectsIselvalYesL) ->+           { ( _bindAspectsIboundval,_bindAspectsIselvalInsertYesM,_bindAspectsIselvalNoL,_bindAspectsIselvalYesL) ->                (case (CBind_Bind nm_ _bindAspectsIboundval) of                 { _boundval ->                 (case (_boundval) of                  { _lhsOboundval ->-                 (case (_bindAspectsIselvalNoL) of-                  { _lhsOselvalNoL ->-                  (case (_bindAspectsIselvalYesL) of-                   { _lhsOselvalYesL ->-                   ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }))+                 (case (\sel -> reverse $ snd $ execState (sequence_ _bindAspectsIselvalInsertYesM) (sel,[])) of+                  { _lhsOselvalInsertYes ->+                  (case (_bindAspectsIselvalNoL) of+                   { _lhsOselvalNoL ->+                   (case (_bindAspectsIselvalYesL) of+                    { _lhsOselvalYesL ->+                    ( _lhsOboundval,_lhsOselvalInsertYes,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) })) -- CBindAnn ---------------------------------------------------- {-    visit 0:@@ -346,7 +391,7 @@                (case (_lhsIboundsel) of                 { _hdOboundsel ->                 (case (hd_ _hdOboundsel) of-                 { ( _hdIboundval,_hdIselvalNoL,_hdIselvalYesL) ->+                 { ( _hdIboundval,_hdIselvalInsertYes,_hdIselvalNoL,_hdIselvalYesL) ->                      (case ((:) _hdIboundval _tlIboundval) of                       { _boundval ->                       (case (_boundval) of@@ -367,6 +412,7 @@          boundsel             : BoundSel       synthesized attributes:          boundval             : CBound +         selvalInsertYesM     : [StateSel]          selvalNoL            : [SelVal]          selvalYesL           : [SelVal]    alternatives:@@ -434,15 +480,15 @@     (sem_CBound_FFE _callconv _expEnt (sem_CExpr _expr) _ty) -- semantic domain type T_CBound = BoundSel ->-                ( CBound,([SelVal]),([SelVal]))+                ( CBound,([StateSel]),([SelVal]),([SelVal])) data Inh_CBound = Inh_CBound {boundsel_Inh_CBound :: !(BoundSel)}-data Syn_CBound = Syn_CBound {boundval_Syn_CBound :: !(CBound),selvalNoL_Syn_CBound :: !(([SelVal])),selvalYesL_Syn_CBound :: !(([SelVal]))}+data Syn_CBound = Syn_CBound {boundval_Syn_CBound :: !(CBound),selvalInsertYesM_Syn_CBound :: !(([StateSel])),selvalNoL_Syn_CBound :: !(([SelVal])),selvalYesL_Syn_CBound :: !(([SelVal]))} wrap_CBound :: T_CBound ->                Inh_CBound ->                Syn_CBound wrap_CBound sem (Inh_CBound _lhsIboundsel) =-    (let ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) = sem _lhsIboundsel-     in  (Syn_CBound _lhsOboundval _lhsOselvalNoL _lhsOselvalYesL))+    (let ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) = sem _lhsIboundsel+     in  (Syn_CBound _lhsOboundval _lhsOselvalInsertYesM _lhsOselvalNoL _lhsOselvalYesL)) sem_CBound_Bind :: T_CMetas ->                    T_CExpr ->                    T_CBound@@ -458,15 +504,15 @@                      { _lhsOboundval ->                      (case (selBind    _lhsIboundsel) of                       { _isSelected ->-                      (case (if _isSelected-                             then ([_boundval],[])-                             else ([],[_boundval])) of+                      (case (mkSel _isSelected _boundval) of                        { __tup1 ->                        (case (__tup1) of-                        { (_,_lhsOselvalNoL) ->+                        { (_,_,_lhsOselvalInsertYesM) ->                         (case (__tup1) of-                         { (_lhsOselvalYesL,_) ->-                         ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }))+                         { (_,_lhsOselvalNoL,_) ->+                         (case (__tup1) of+                          { (_lhsOselvalYesL,_,_) ->+                          ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) })) sem_CBound_Meta :: ACoreBindAspectKeyS ->                    T_CMetas ->                    T_CBound@@ -480,15 +526,15 @@                 { _lhsOboundval ->                 (case (selMeta    _lhsIboundsel aspectKeyS_) of                  { _isSelected ->-                 (case (if _isSelected-                        then ([_boundval],[])-                        else ([],[_boundval])) of+                 (case (mkSel _isSelected _boundval) of                   { __tup2 ->                   (case (__tup2) of-                   { (_,_lhsOselvalNoL) ->+                   { (_,_,_lhsOselvalInsertYesM) ->                    (case (__tup2) of-                    { (_lhsOselvalYesL,_) ->-                    ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }))+                    { (_,_lhsOselvalNoL,_) ->+                    (case (__tup2) of+                     { (_lhsOselvalYesL,_,_) ->+                     ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) })) sem_CBound_RelevTy :: ACoreBindAspectKeyS ->                       RelevTy ->                       T_CBound@@ -500,15 +546,15 @@            { _lhsOboundval ->            (case (selRelevTy _lhsIboundsel aspectKeyS_ relevTy_) of             { _isSelected ->-            (case (if _isSelected-                   then ([_boundval],[])-                   else ([],[_boundval])) of+            (case (mkSel _isSelected _boundval) of              { __tup3 ->              (case (__tup3) of-              { (_,_lhsOselvalNoL) ->+              { (_,_,_lhsOselvalInsertYesM) ->               (case (__tup3) of-               { (_lhsOselvalYesL,_) ->-               ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }))+               { (_,_lhsOselvalNoL,_) ->+               (case (__tup3) of+                { (_lhsOselvalYesL,_,_) ->+                ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) })) sem_CBound_Val :: ACoreBindAspectKeyS ->                   MetaLev ->                   CLbl ->@@ -524,15 +570,15 @@                 { _lhsOboundval ->                 (case (selVal     _lhsIboundsel aspectKeyS_ mlev_ lbl_) of                  { _isSelected ->-                 (case (if _isSelected-                        then ([_boundval],[])-                        else ([],[_boundval])) of+                 (case (mkSel _isSelected _boundval) of                   { __tup4 ->                   (case (__tup4) of-                   { (_,_lhsOselvalNoL) ->+                   { (_,_,_lhsOselvalInsertYesM) ->                    (case (__tup4) of-                    { (_lhsOselvalYesL,_) ->-                    ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }))+                    { (_,_lhsOselvalNoL,_) ->+                    (case (__tup4) of+                     { (_lhsOselvalYesL,_,_) ->+                     ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) })) sem_CBound_Ty :: ACoreBindAspectKeyS ->                  Ty ->                  T_CBound@@ -544,15 +590,15 @@            { _lhsOboundval ->            (case (selTy      _lhsIboundsel aspectKeyS_) of             { _isSelected ->-            (case (if _isSelected-                   then ([_boundval],[])-                   else ([],[_boundval])) of+            (case (mkSel _isSelected _boundval) of              { __tup5 ->              (case (__tup5) of-              { (_,_lhsOselvalNoL) ->+              { (_,_,_lhsOselvalInsertYesM) ->               (case (__tup5) of-               { (_lhsOselvalYesL,_) ->-               ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }))+               { (_,_lhsOselvalNoL,_) ->+               (case (__tup5) of+                { (_lhsOselvalYesL,_,_) ->+                ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) })) sem_CBound_FFE :: FFIWay ->                   ForeignEnt ->                   T_CExpr ->@@ -568,15 +614,15 @@                 { _lhsOboundval ->                 (case (selFFE     _lhsIboundsel) of                  { _isSelected ->-                 (case (if _isSelected-                        then ([_boundval],[])-                        else ([],[_boundval])) of+                 (case (mkSel _isSelected _boundval) of                   { __tup6 ->                   (case (__tup6) of-                   { (_,_lhsOselvalNoL) ->+                   { (_,_,_lhsOselvalInsertYesM) ->                    (case (__tup6) of-                    { (_lhsOselvalYesL,_) ->-                    ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }))+                    { (_,_lhsOselvalNoL,_) ->+                    (case (__tup6) of+                     { (_lhsOselvalYesL,_,_) ->+                     ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) })) -- CBoundL ----------------------------------------------------- {-    visit 0:@@ -584,6 +630,7 @@          boundsel             : BoundSel       synthesized attributes:          boundval             : CBoundL +         selvalInsertYesM     : [StateSel]          selvalNoL            : [SelVal]          selvalYesL           : [SelVal]    alternatives:@@ -603,7 +650,7 @@     (Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list)) -- semantic domain type T_CBoundL = BoundSel ->-                 ( CBoundL,([SelVal]),([SelVal]))+                 ( CBoundL,([StateSel]),([SelVal]),([SelVal])) sem_CBoundL_Cons :: T_CBound ->                     T_CBoundL ->                     T_CBoundL@@ -612,20 +659,22 @@          (case (_lhsIboundsel) of           { _tlOboundsel ->           (case (tl_ _tlOboundsel) of-           { ( _tlIboundval,_tlIselvalNoL,_tlIselvalYesL) ->+           { ( _tlIboundval,_tlIselvalInsertYesM,_tlIselvalNoL,_tlIselvalYesL) ->                (case (_lhsIboundsel) of                 { _hdOboundsel ->                 (case (hd_ _hdOboundsel) of-                 { ( _hdIboundval,_hdIselvalNoL,_hdIselvalYesL) ->+                 { ( _hdIboundval,_hdIselvalInsertYesM,_hdIselvalNoL,_hdIselvalYesL) ->                      (case ((:) _hdIboundval _tlIboundval) of                       { _boundval ->                       (case (_boundval) of                        { _lhsOboundval ->-                       (case (_hdIselvalNoL ++ _tlIselvalNoL) of-                        { _lhsOselvalNoL ->-                        (case (_hdIselvalYesL ++ _tlIselvalYesL) of-                         { _lhsOselvalYesL ->-                         ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }))+                       (case (_hdIselvalInsertYesM ++ _tlIselvalInsertYesM) of+                        { _lhsOselvalInsertYesM ->+                        (case (_hdIselvalNoL ++ _tlIselvalNoL) of+                         { _lhsOselvalNoL ->+                         (case (_hdIselvalYesL ++ _tlIselvalYesL) of+                          { _lhsOselvalYesL ->+                          ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) })) sem_CBoundL_Nil :: T_CBoundL sem_CBoundL_Nil =     (\ _lhsIboundsel ->@@ -634,10 +683,12 @@           (case (_boundval) of            { _lhsOboundval ->            (case ([]) of-            { _lhsOselvalNoL ->+            { _lhsOselvalInsertYesM ->             (case ([]) of-             { _lhsOselvalYesL ->-             ( _lhsOboundval,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }))+             { _lhsOselvalNoL ->+             (case ([]) of+              { _lhsOselvalYesL ->+              ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) })) -- CDataCon ---------------------------------------------------- {-    alternatives:@@ -1010,7 +1061,7 @@      (case (_boundsel) of       { _argOboundsel ->       (case (arg_ _argOboundsel) of-       { ( _argIboundval,_argIselvalNoL,_argIselvalYesL) ->+       { ( _argIboundval,_argIselvalInsertYesM,_argIselvalNoL,_argIselvalYesL) ->            (case (func_) of             { ( _funcIboundval) ->                 (case (CExpr_App _funcIboundval _argIboundval) of@@ -1029,7 +1080,7 @@           (case (_boundsel) of            { _bindOboundsel ->            (case (bind_ _bindOboundsel) of-            { ( _bindIboundval,_bindIselvalNoL,_bindIselvalYesL) ->+            { ( _bindIboundval,_bindIselvalInsertYes,_bindIselvalNoL,_bindIselvalYesL) ->                 (case (CExpr_Lam _bindIboundval _bodyIboundval) of                  { _boundval ->                  (case (_boundval) of@@ -1607,7 +1658,7 @@           (case (_boundsel) of            { _bindOboundsel ->            (case (bind_ _bindOboundsel) of-            { ( _bindIboundval,_bindIselvalNoL,_bindIselvalYesL) ->+            { ( _bindIboundval,_bindIselvalInsertYes,_bindIselvalNoL,_bindIselvalYesL) ->                 (case (offset_) of                  { ( _offsetIboundval) ->                      (case (CPatFld_Fld lbl_ _offsetIboundval _bindIboundval _fldAnnsIboundval) of
src/UHC/Light/Compiler/Core/Pretty.hs view
@@ -85,11 +85,6 @@   -ppSemi :: PP x => x -> PP_Doc-ppSemi = (>|< ";")--- ppOptCMetas :: CMetas -> PP_Doc ppOptCMetas x   =  let  t = wrap_CMetas (sem_CMetas x)
src/UHC/Light/Compiler/Core/ToCoreRun.hs view
@@ -18,6 +18,7 @@ import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.CodeGen.BasicAnnot import qualified UHC.Light.Compiler.CoreRun as CR+import qualified UHC.Light.Compiler.CoreRun.API as CR import qualified UHC.Light.Compiler.CoreRun.Prim as CR import UHC.Light.Compiler.Foreign.Extract @@ -37,6 +38,8 @@   ++ cmod2CoreRun'   :: EHCOpts      -> Int             -- sequence nr of module (offset), used to create global per module references@@ -62,11 +65,6 @@   --- | Debug info is embedded in Exp-dbg = CR.Exp_Dbg--- -- | What to do with binding in terms of thunking/forcing? data ToBe   = ToBe_Thunked@@ -88,14 +86,14 @@  -- | Wrap according to tail context cseCtxWrap :: TailCtx -> CR.Exp -> CR.Exp-cseCtxWrap TailCtx_TailCall = CR.Exp_Tail+cseCtxWrap TailCtx_TailCall = CR.mkTail cseCtxWrap _                = id    -- | Construct application-mkApp :: CR.Exp -> CR.CRArray CR.Exp -> CR.Exp-mkApp f as = CR.Exp_App ({- CR.Exp_Ret $ -} CR.Exp_Force f) as+mkApp :: CR.Exp -> CR.CRArray CR.SExp -> CR.Exp+mkApp f as = CR.mkApp' (CR.mkEval f) as   @@ -105,7 +103,7 @@  -- | Wrap forcing if at tail recursive position taileval :: TailCtx -> CR.Exp -> CR.Exp-taileval tailCtx = if tailCtxIsTailRec tailCtx then CR.Exp_Force else id+taileval tailCtx = if tailCtxIsTailRec tailCtx then CR.mkEval else id  -- CAlt -------------------------------------------------------- {-@@ -214,8 +212,8 @@                                                                 (case (True) of                                                                  { _exprOisTopApp ->                                                                  (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                                  { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->-                                                                      (case ([CR.Alt_Alt (CR.nm2RefMpInverse _nm2refNew) _patIcrp _exprIcre]) of+                                                                  { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->+                                                                      (case ([CR.Alt_Alt (CR.nm2RefMpInverse _nm2refNew)                _exprIcre]) of                                                                        { _lhsOcra ->                                                                        (case (max _exprIrefOffset _exprIrefOffsetMax) of                                                                         { _lhsOrefOffsetMax ->@@ -811,7 +809,6 @@             local crb         : _             local stackDepthExpr : _             intra isToBeThunked : _-            intra lev         : _             intra toBe        : _       alternative Meta:          child aspectKeyS     : {ACoreBindAspectKeyS}@@ -840,7 +837,6 @@             local crb         : _             local stackDepthExpr : _             intra isToBeThunked : _-            intra lev         : _             intra toBe        : _       alternative Ty:          child aspectKeyS     : {ACoreBindAspectKeyS}@@ -966,12 +962,12 @@                                                             (case (True) of                                                              { _exprOisTopApp ->                                                              (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                              { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                              { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                                   (case (max _exprIstackDepth _exprIstackDepthMax) of                                                                    { _stackDepthMaxThunked ->                                                                    (case (case _toBe of-                                                                              ToBe_Forced   -> tailrec _tailCtx . CR.Exp_Force-                                                                              ToBe_Thunked  -> CR.Exp_Lam (Just _lhsInm) _lev 0 (_exprIrefOffsetMax) (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)+                                                                              ToBe_Forced   -> tailrec _tailCtx . CR.mkEval+                                                                              ToBe_Thunked  -> CR.Exp_Lam (Just _lhsInm)            0                          (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)                                                                               ToBe_LeftAsIs -> id) of                                                                     { _creMkForce ->                                                                     (case (_creMkForce _exprIcre) of@@ -1159,12 +1155,12 @@                                                             (case (_lhsIevalCtx) of                                                              { _exprOevalCtx ->                                                              (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                              { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                              { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                                   (case (max _exprIstackDepth _exprIstackDepthMax) of                                                                    { _stackDepthMaxThunked ->                                                                    (case (case _toBe of-                                                                              ToBe_Forced   -> tailrec _tailCtx . CR.Exp_Force-                                                                              ToBe_Thunked  -> CR.Exp_Lam (Just _lhsInm) _lev 0 (_exprIrefOffsetMax) (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)+                                                                              ToBe_Forced   -> tailrec _tailCtx . CR.mkEval+                                                                              ToBe_Thunked  -> CR.Exp_Lam (Just _lhsInm)            0                          (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)                                                                               ToBe_LeftAsIs -> id) of                                                                     { _creMkForce ->                                                                     (case (_creMkForce _exprIcre) of@@ -1274,7 +1270,7 @@                                                       (case (True) of                                                        { _exprOisTopApp ->                                                        (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                        { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                        { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                             (case (_exprIcrb) of                                                              { _lhsOcrb ->                                                              (case (_exprIrefOffsetMax) of@@ -1586,8 +1582,8 @@          appFunKind           : AppFunKind          crb                  : [(HsName, CR.Bind)]          cre                  : CR.Exp-         creAppArgL           : [CR.Exp]-         creAppFun            : TailCtx -> CR.CRArray CR.Exp -> CR.Exp+         creAppArgL           : [CR.SExp]+         creAppFun            : TailCtx -> CR.CRArray CR.SExp -> CR.Exp          creLamArgL           : [HsName]          creLamBody           : CR.Exp          crse                 : CR.SExp@@ -1601,6 +1597,7 @@          mbVar                : Maybe HsName          refOffsetMax         : Int          stackDepthMax        : Int+         vref                 : CR.RRef    alternatives:       alternative Var:          child ref            : {ACoreBindRef}@@ -1610,6 +1607,7 @@          visit 1:             intra nm          : {HsName}          visit 2:+            local vref        : _             local crse        : _             local creBase     : _             local cre         : _@@ -1633,6 +1631,7 @@             local creLamArgL  : _             local creLamBody  : _             local stackDepthHere : _+            local vref        : _       alternative Char:          child char           : {Char}          visit 0:@@ -1646,6 +1645,7 @@             local creLamArgL  : _             local creLamBody  : _             local stackDepthHere : _+            local vref        : _       alternative String:          child str            : {String}          visit 0:@@ -1659,6 +1659,7 @@             local creLamArgL  : _             local creLamBody  : _             local stackDepthHere : _+            local vref        : _       alternative Integer:          child integer        : {Integer}          visit 0:@@ -1672,6 +1673,7 @@             local creLamArgL  : _             local creLamBody  : _             local stackDepthHere : _+            local vref        : _       alternative Tup:          child tag            : {CTag}          visit 0:@@ -1685,6 +1687,7 @@             local creLamBody  : _             local crse        : _             local stackDepthHere : _+            local vref        : _       alternative Let:          child categ          : {CBindCateg}          child binds          : CBindL @@ -1711,6 +1714,7 @@             local crse        : _             local refOffsetMax : _             local stackDepthMax : _+            local vref        : _             intra isGlobal    : _             intra _tup1       : _       alternative App:@@ -1735,6 +1739,7 @@             local creLamBody  : _             local crse        : _             local stackDepthMax : _+            local vref        : _       alternative Lam:          child bind           : CBind           child body           : CExpr @@ -1755,7 +1760,6 @@             local isTopApp    : {Bool}             local creLamArgL  : _             local stackDepthMax : _-            local refOffsetMax : _             local creBase     : _             local cre         : _             local creAppArgL  : _@@ -1763,10 +1767,11 @@             local creLamBody  : _             local crse        : _             local argNm       : _+            local refOffsetMax : _+            local vref        : _             intra nm2refNew   : _             intra isTopLam    : _             intra refOffsetBody : _-            intra lev         : _       alternative Case:          child expr           : CExpr           child alts           : CAltL @@ -1787,6 +1792,7 @@             local crse        : _             local stackDepthHere : _             local stackDepthMax : _+            local vref        : _       alternative CaseAltFail:          child failReason     : {CaseAltFailReason}          child errorExpr      : CExpr @@ -1803,6 +1809,7 @@             local creLamBody  : _             local crse        : _             local stackDepthHere : _+            local vref        : _       alternative TupDel:          child expr           : CExpr           child tag            : {CTag}@@ -1823,6 +1830,7 @@             local isTopApp    : {Bool}             local isTopTup    : _             local stackDepthHere : _+            local vref        : _       alternative TupIns:          child expr           : CExpr           child tag            : {CTag}@@ -1844,6 +1852,7 @@             local isTopApp    : {Bool}             local isTopTup    : _             local stackDepthHere : _+            local vref        : _       alternative TupUpd:          child expr           : CExpr           child tag            : {CTag}@@ -1865,6 +1874,7 @@             local isTopApp    : {Bool}             local isTopTup    : _             local stackDepthHere : _+            local vref        : _       alternative FFI:          child callconv       : {FFIWay}          child safety         : {String}@@ -1889,6 +1899,7 @@             local resTy       : _             local argTyL      : {TyL}             local stackDepthHere : _+            local vref        : _       alternative Dbg:          child info           : {String}          visit 0:@@ -1902,6 +1913,7 @@             local creLamBody  : _             local crse        : _             local stackDepthHere : _+            local vref        : _       alternative Hole:          child uid            : {UID}          visit 0:@@ -1915,6 +1927,7 @@             local creLamBody  : _             local crse        : _             local stackDepthHere : _+            local vref        : _       alternative HoleLet:          child bindsUid       : {UID}          child body           : CExpr @@ -1933,6 +1946,7 @@             local isTopTup    : _             local isTopApp    : {Bool}             local stackDepthHere : _+            local vref        : _       alternative CoeArg:          visit 0:             local whatBelow   : _@@ -1945,6 +1959,7 @@             local creLamBody  : _             local crse        : _             local stackDepthHere : _+            local vref        : _       alternative ImplsApp:          child func           : CExpr           child uid            : {ImplsVarId}@@ -1963,6 +1978,7 @@             local isTopTup    : _             local isTopApp    : {Bool}             local stackDepthHere : _+            local vref        : _       alternative ImplsLam:          child uid            : {ImplsVarId}          child body           : CExpr @@ -1981,11 +1997,13 @@             local isTopTup    : _             local isTopApp    : {Bool}             local stackDepthHere : _+            local vref        : _       alternative Ann:          child ann            : CExprAnn           child expr           : CExpr           visit 2:             local crse        : _+            local vref        : _ -} -- cata sem_CExpr :: CExpr ->@@ -2048,12 +2066,12 @@                  EHCOpts ->                  Int ->                  TailCtx ->-                 ( AppFunKind,([(HsName, CR.Bind)]),(CR.Exp),([CR.Exp]),(TailCtx -> CR.CRArray CR.Exp -> CR.Exp),([HsName]),(CR.Exp),(CR.SExp),(Maybe ( Ty-                                                                                                                                                                                  , Bool-                                                                                                                                                                                  , FFIWay-                                                                                                                                                                                  , ForeignEnt-                                                                                                                                                                                  , [Ty]-                                                                                                                                                                                  )),(Maybe [HsName]),(Maybe HsName),Int,Int,Int)+                 ( AppFunKind,([(HsName, CR.Bind)]),(CR.Exp),([CR.SExp]),(TailCtx -> CR.CRArray CR.SExp -> CR.Exp),([HsName]),(CR.Exp),(CR.SExp),(Maybe ( Ty+                                                                                                                                                                                    , Bool+                                                                                                                                                                                    , FFIWay+                                                                                                                                                                                    , ForeignEnt+                                                                                                                                                                                    , [Ty]+                                                                                                                                                                                    )),(Maybe [HsName]),(Maybe HsName),Int,Int,Int,(CR.RRef)) sem_CExpr_Var :: ACoreBindRef ->                  T_CExpr sem_CExpr_Var ref_ =@@ -2086,49 +2104,53 @@                                                     { _lhsOappFunKind ->                                                     (case ([]) of                                                      { _lhsOcrb ->-                                                     (case (CR.SExp_Var $ fromMaybe (CR.RRef_Dbg _nm) $ Map.lookup _nm _lhsInm2ref) of-                                                      { _crse ->-                                                      (case (taileval _lhsItailCtx $ CR.Exp_SExp _crse) of-                                                       { _creBase ->-                                                       (case (cseCtxWrap _lhsItailCtx _creBase) of-                                                        { _cre ->-                                                        (case (_cre) of-                                                         { _lhsOcre ->-                                                         (case ([]) of-                                                          { _creAppArgL ->-                                                          (case (_creAppArgL) of-                                                           { _lhsOcreAppArgL ->-                                                           (case (\tailCtx -> cseCtxWrap tailCtx . tailrec tailCtx . mkApp _cre) of-                                                            { _creAppFun ->-                                                            (case (_creAppFun) of-                                                             { _lhsOcreAppFun ->-                                                             (case ([]) of-                                                              { _creLamArgL ->-                                                              (case (_creLamArgL) of-                                                               { _lhsOcreLamArgL ->-                                                               (case (_cre) of-                                                                { _creLamBody ->-                                                                (case (_creLamBody) of-                                                                 { _lhsOcreLamBody ->-                                                                 (case (_crse) of-                                                                  { _lhsOcrse ->-                                                                  (case (Nothing) of-                                                                   { _lhsOmbFFIApp ->+                                                     (case (maybe (CR.RRef_Dbg _nm) (CR.rrefToDis _lhsIlev) $ Map.lookup _nm _lhsInm2ref) of+                                                      { _vref ->+                                                      (case (CR.mkVar' _vref) of+                                                       { _crse ->+                                                       (case (taileval _lhsItailCtx $ CR.mkExp _crse) of+                                                        { _creBase ->+                                                        (case (cseCtxWrap _lhsItailCtx _creBase) of+                                                         { _cre ->+                                                         (case (_cre) of+                                                          { _lhsOcre ->+                                                          (case ([]) of+                                                           { _creAppArgL ->+                                                           (case (_creAppArgL) of+                                                            { _lhsOcreAppArgL ->+                                                            (case (\tailCtx -> cseCtxWrap tailCtx . tailrec tailCtx . mkApp _cre) of+                                                             { _creAppFun ->+                                                             (case (_creAppFun) of+                                                              { _lhsOcreAppFun ->+                                                              (case ([]) of+                                                               { _creLamArgL ->+                                                               (case (_creLamArgL) of+                                                                { _lhsOcreLamArgL ->+                                                                (case (_cre) of+                                                                 { _creLamBody ->+                                                                 (case (_creLamBody) of+                                                                  { _lhsOcreLamBody ->+                                                                  (case (_crse) of+                                                                   { _lhsOcrse ->                                                                    (case (Nothing) of-                                                                    { _lhsOmbLam ->-                                                                    (case (Just _nm) of-                                                                     { _mbVar ->-                                                                     (case (_mbVar) of-                                                                      { _lhsOmbVar ->-                                                                      (case (0) of-                                                                       { _lhsOrefOffsetMax ->-                                                                       (case (_lhsIstackDepth + 1) of-                                                                        { _stackDepthHere ->-                                                                        (case (_stackDepthHere) of-                                                                         { _lhsOstackDepth ->+                                                                    { _lhsOmbFFIApp ->+                                                                    (case (Nothing) of+                                                                     { _lhsOmbLam ->+                                                                     (case (Just _nm) of+                                                                      { _mbVar ->+                                                                      (case (_mbVar) of+                                                                       { _lhsOmbVar ->+                                                                       (case (0) of+                                                                        { _lhsOrefOffsetMax ->+                                                                        (case (_lhsIstackDepth + 1) of+                                                                         { _stackDepthHere ->                                                                          (case (_stackDepthHere) of-                                                                          { _lhsOstackDepthMax ->-                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                          { _lhsOstackDepth ->+                                                                          (case (_stackDepthHere) of+                                                                           { _lhsOstackDepthMax ->+                                                                           (case (_vref) of+                                                                            { _lhsOvref ->+                                                                            ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                       in  sem_CExpr_Var_2)) of                                { ( sem_CExpr_2) ->                                ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -2165,9 +2187,9 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (CR.SExp_Int int_) of+                                                    (case (CR.mkInt' int_) of                                                      { _crse ->-                                                     (case (CR.Exp_SExp _crse) of+                                                     (case (CR.mkExp _crse) of                                                       { _creBase ->                                                       (case (cseCtxWrap _lhsItailCtx _creBase) of                                                        { _cre ->@@ -2205,7 +2227,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_Int_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -2242,9 +2268,9 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (CR.SExp_Char char_) of+                                                    (case (CR.mkChar' char_) of                                                      { _crse ->-                                                     (case (CR.Exp_SExp _crse) of+                                                     (case (CR.mkExp _crse) of                                                       { _creBase ->                                                       (case (cseCtxWrap _lhsItailCtx _creBase) of                                                        { _cre ->@@ -2282,7 +2308,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_Char_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -2319,9 +2349,9 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (CR.SExp_String str_) of+                                                    (case (CR.mkString' str_) of                                                      { _crse ->-                                                     (case (CR.Exp_SExp _crse) of+                                                     (case (CR.mkExp _crse) of                                                       { _creBase ->                                                       (case (cseCtxWrap _lhsItailCtx _creBase) of                                                        { _cre ->@@ -2359,7 +2389,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_String_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -2398,7 +2432,7 @@                                                     { _lhsOcrb ->                                                     (case (CR.SExp_Integer integer_) of                                                      { _crse ->-                                                     (case (CR.Exp_SExp _crse) of+                                                     (case (CR.mkExp _crse) of                                                       { _creBase ->                                                       (case (cseCtxWrap _lhsItailCtx _creBase) of                                                        { _cre ->@@ -2436,7 +2470,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_Integer_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -2473,7 +2511,7 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (CR.Exp_Tup tag_ CR.emptyCRArray) of+                                                    (case (CR.mkTup (ctagTag tag_) []) of                                                      { _creBase ->                                                      (case (_creBase) of                                                       { _cre ->@@ -2483,7 +2521,7 @@                                                         { _creAppArgL ->                                                         (case (_creAppArgL) of                                                          { _lhsOcreAppArgL ->-                                                         (case (\_ -> cseCtxWrap TailCtx_Plain . CR.Exp_Tup tag_) of+                                                         (case (\_ -> cseCtxWrap TailCtx_Plain . CR.mkTup' (ctagTag tag_)) of                                                           { _creAppFun ->                                                           (case (_creAppFun) of                                                            { _lhsOcreAppFun ->@@ -2513,7 +2551,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_Tup_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -2625,7 +2667,7 @@                                                                                                   (case (_evalCtx) of                                                                                                    { _bodyOevalCtx ->                                                                                                    (case (body_2 _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOnm2ref _bodyOopts _bodyOstackDepth _bodyOtailCtx) of-                                                                                                    { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax) ->+                                                                                                    { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax,_bodyIvref) ->                                                                                                         (case (if _isGlobal                                                                                                                then _bindsIcrb ++ _bodyIcrb                                                                                                                else []) of@@ -2634,7 +2676,7 @@                                                                                                           { (_nm2refNew,_) ->                                                                                                           (case (if _isGlobal                                                                                                                  then _bodyIcre-                                                                                                                 else CR.Exp_Let _lhsIlev _lhsIrefOffset (CR.nm2RefMpInverse _nm2refNew) (CR.mkCRArray $ map snd _bindsIcrb) _bodyIcre) of+                                                                                                                 else CR.Exp_Let                _lhsIrefOffset (CR.nm2RefMpInverse _nm2refNew) (CR.mkCRArray $ map snd _bindsIcrb) _bodyIcre) of                                                                                                            { _creBase ->                                                                                                            (case (_creBase) of                                                                                                             { _cre ->@@ -2676,7 +2718,11 @@                                                                                                                               { _stackDepthMax ->                                                                                                                               (case (_stackDepthMax) of                                                                                                                                { _lhsOstackDepthMax ->-                                                                                                                               ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                               (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                                { _vref ->+                                                                                                                                (case (_vref) of+                                                                                                                                 { _lhsOvref ->+                                                                                                                                 ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                in  sem_CExpr_Let_2)) of                                                         { ( sem_CExpr_2) ->                                                         ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -2759,7 +2805,7 @@                                                                                      (case (False) of                                                                                       { _funcOisTopApp ->                                                                                       (case (func_2 _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOnm2ref _funcOopts _funcOstackDepth _funcOtailCtx) of-                                                                                       { ( _funcIappFunKind,_funcIcrb,_funcIcre,_funcIcreAppArgL,_funcIcreAppFun,_funcIcreLamArgL,_funcIcreLamBody,_funcIcrse,_funcImbFFIApp,_funcImbLam,_funcImbVar,_funcIrefOffsetMax,_funcIstackDepth,_funcIstackDepthMax) ->+                                                                                       { ( _funcIappFunKind,_funcIcrb,_funcIcre,_funcIcreAppArgL,_funcIcreAppFun,_funcIcreLamArgL,_funcIcreLamBody,_funcIcrse,_funcImbFFIApp,_funcImbLam,_funcImbVar,_funcIrefOffsetMax,_funcIstackDepth,_funcIstackDepthMax,_funcIvref) ->                                                                                            (case (_funcIappFunKind) of                                                                                             { _lhsOappFunKind ->                                                                                             (case ([]) of@@ -2784,13 +2830,13 @@                                                                                                       { _argOisTopApp ->                                                                                                       (case (arg_1 _argOisTopApp _argOisTopTup _argOletBindingsCateg _argOnm2ref _argOopts _argOstackDepth) of                                                                                                        { ( _argIcrb,_argIrefOffsetMax,_argIstackDepth,_argIstackDepthMax) ->-                                                                                                           (case ((snd $ head _argIcrb) : _funcIcreAppArgL) of+                                                                                                           (case ((CR.exp2sexp $ snd $ head _argIcrb) : _funcIcreAppArgL) of                                                                                                             { _creAppArgL ->                                                                                                             (case (isNothing $ whatExprMbApp _lhsIwhatAbove) of                                                                                                              { _isTopApp' ->                                                                                                              (case (if _isTopApp'                                                                                                                     then _creAppFun _lhsItailCtx $ CR.mkCRArray $ reverse _creAppArgL-                                                                                                                    else dbg "Core.ToCoreRun.CExpr.App.cre") of+                                                                                                                    else CR.dbg "Core.ToCoreRun.CExpr.App.cre") of                                                                                                               { _creBase ->                                                                                                               (case (_creBase) of                                                                                                                { _cre ->@@ -2826,7 +2872,11 @@                                                                                                                               { _stackDepthMax ->                                                                                                                               (case (_stackDepthMax) of                                                                                                                                { _lhsOstackDepthMax ->-                                                                                                                               ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                               (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                                { _vref ->+                                                                                                                                (case (_vref) of+                                                                                                                                 { _lhsOvref ->+                                                                                                                                 ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                 in  sem_CExpr_App_2)) of                                                          { ( sem_CExpr_2) ->                                                          ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -2932,54 +2982,58 @@                                                                                             (case (TailCtx_TailCall) of                                                                                              { _bodyOtailCtx ->                                                                                              (case (body_2 _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOnm2ref _bodyOopts _bodyOstackDepth _bodyOtailCtx) of-                                                                                              { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax) ->+                                                                                              { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax,_bodyIvref) ->                                                                                                   (case (_bindInm : _bodyIcreLamArgL) of                                                                                                    { _creLamArgL ->                                                                                                    (case (max _bodyIstackDepth _bodyIstackDepthMax) of                                                                                                     { _stackDepthMax ->-                                                                                                    (case (max _bodyIrefOffset _bodyIrefOffsetMax) of-                                                                                                     { _refOffsetMax ->-                                                                                                     (case (if _isTopLam-                                                                                                            then CR.Exp_Lam (whatExprMbBind _lhsIwhatAbove) _lev (length _creLamArgL) (_refOffsetMax) (_stackDepthMax) (CR.nm2RefMpInverse _nm2refNew) _bodyIcreLamBody-                                                                                                            else dbg "Core.ToCoreRun.CExpr.Lam.cre") of-                                                                                                      { _creBase ->-                                                                                                      (case (cseCtxWrap _lhsItailCtx _creBase) of-                                                                                                       { _cre ->-                                                                                                       (case (_cre) of-                                                                                                        { _lhsOcre ->-                                                                                                        (case ([]) of-                                                                                                         { _creAppArgL ->-                                                                                                         (case (_creAppArgL) of-                                                                                                          { _lhsOcreAppArgL ->-                                                                                                          (case (\tailCtx -> cseCtxWrap tailCtx . tailrec tailCtx . mkApp _cre) of-                                                                                                           { _creAppFun ->-                                                                                                           (case (_creAppFun) of-                                                                                                            { _lhsOcreAppFun ->-                                                                                                            (case (_creLamArgL) of-                                                                                                             { _lhsOcreLamArgL ->-                                                                                                             (case (_bodyIcreLamBody) of-                                                                                                              { _creLamBody ->-                                                                                                              (case (_creLamBody) of-                                                                                                               { _lhsOcreLamBody ->-                                                                                                               (case (panic "Core.ToCoreRun.CExpr.crse") of-                                                                                                                { _crse ->-                                                                                                                (case (_crse) of-                                                                                                                 { _lhsOcrse ->-                                                                                                                 (case (Nothing) of-                                                                                                                  { _lhsOmbFFIApp ->-                                                                                                                  (case (_bindInm) of-                                                                                                                   { _argNm ->-                                                                                                                   (case (Just $ maybe [_argNm] (_argNm:) _bodyImbLam) of-                                                                                                                    { _lhsOmbLam ->-                                                                                                                    (case (Nothing) of-                                                                                                                     { _lhsOmbVar ->+                                                                                                    (case (if _isTopLam+                                                                                                           then CR.Exp_Lam (whatExprMbBind _lhsIwhatAbove)            (length _creLamArgL)                     (_stackDepthMax) (CR.nm2RefMpInverse _nm2refNew) _bodyIcreLamBody+                                                                                                           else CR.dbg "Core.ToCoreRun.CExpr.Lam.cre") of+                                                                                                     { _creBase ->+                                                                                                     (case (cseCtxWrap _lhsItailCtx _creBase) of+                                                                                                      { _cre ->+                                                                                                      (case (_cre) of+                                                                                                       { _lhsOcre ->+                                                                                                       (case ([]) of+                                                                                                        { _creAppArgL ->+                                                                                                        (case (_creAppArgL) of+                                                                                                         { _lhsOcreAppArgL ->+                                                                                                         (case (\tailCtx -> cseCtxWrap tailCtx . tailrec tailCtx . mkApp _cre) of+                                                                                                          { _creAppFun ->+                                                                                                          (case (_creAppFun) of+                                                                                                           { _lhsOcreAppFun ->+                                                                                                           (case (_creLamArgL) of+                                                                                                            { _lhsOcreLamArgL ->+                                                                                                            (case (_bodyIcreLamBody) of+                                                                                                             { _creLamBody ->+                                                                                                             (case (_creLamBody) of+                                                                                                              { _lhsOcreLamBody ->+                                                                                                              (case (panic "Core.ToCoreRun.CExpr.crse") of+                                                                                                               { _crse ->+                                                                                                               (case (_crse) of+                                                                                                                { _lhsOcrse ->+                                                                                                                (case (Nothing) of+                                                                                                                 { _lhsOmbFFIApp ->+                                                                                                                 (case (_bindInm) of+                                                                                                                  { _argNm ->+                                                                                                                  (case (Just $ maybe [_argNm] (_argNm:) _bodyImbLam) of+                                                                                                                   { _lhsOmbLam ->+                                                                                                                   (case (Nothing) of+                                                                                                                    { _lhsOmbVar ->+                                                                                                                    (case (max _bodyIrefOffset _bodyIrefOffsetMax) of+                                                                                                                     { _refOffsetMax ->                                                                                                                      (case (_refOffsetMax) of                                                                                                                       { _lhsOrefOffsetMax ->                                                                                                                       (case (_bodyIstackDepth) of                                                                                                                        { _lhsOstackDepth ->                                                                                                                        (case (_stackDepthMax) of                                                                                                                         { _lhsOstackDepthMax ->-                                                                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                         { _vref ->+                                                                                                                         (case (_vref) of+                                                                                                                          { _lhsOvref ->+                                                                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                     in  sem_CExpr_Lam_2)) of                                                              { ( sem_CExpr_2) ->                                                              ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -3085,8 +3139,8 @@                                                                                                             (case (TailCtx_Plain) of                                                                                                              { _exprOtailCtx ->                                                                                                              (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                                                                              { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->-                                                                                                                  (case (CR.Exp_Case _exprIcrse $ CR.mkCRArray _altsIcra) of+                                                                                                              { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->+                                                                                                                  (case (CR.Exp_Case (CR.mkVar' $ CR.RRef_Tag _exprIvref) $ CR.mkCRArray _altsIcra) of                                                                                                                    { _creBase ->                                                                                                                    (case (_creBase) of                                                                                                                     { _cre ->@@ -3133,7 +3187,7 @@                                                                                                                                         (case (_lhsIevalCtx) of                                                                                                                                          { _dfltOevalCtx ->                                                                                                                                          (case (dflt_2 _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOnm2ref _dfltOopts _dfltOstackDepth _dfltOtailCtx) of-                                                                                                                                          { ( _dfltIappFunKind,_dfltIcrb,_dfltIcre,_dfltIcreAppArgL,_dfltIcreAppFun,_dfltIcreLamArgL,_dfltIcreLamBody,_dfltIcrse,_dfltImbFFIApp,_dfltImbLam,_dfltImbVar,_dfltIrefOffsetMax,_dfltIstackDepth,_dfltIstackDepthMax) ->+                                                                                                                                          { ( _dfltIappFunKind,_dfltIcrb,_dfltIcre,_dfltIcreAppArgL,_dfltIcreAppFun,_dfltIcreLamArgL,_dfltIcreLamBody,_dfltIcrse,_dfltImbFFIApp,_dfltImbLam,_dfltImbVar,_dfltIrefOffsetMax,_dfltIstackDepth,_dfltIstackDepthMax,_dfltIvref) ->                                                                                                                                               (case (_exprIrefOffsetMax `max` _altsIrefOffsetMax `max` _dfltIrefOffsetMax) of                                                                                                                                                { _lhsOrefOffsetMax ->                                                                                                                                                (case (_lhsIstackDepth + 1) of@@ -3144,7 +3198,11 @@                                                                                                                                                   { _stackDepthMax ->                                                                                                                                                   (case (_stackDepthMax) of                                                                                                                                                    { _lhsOstackDepthMax ->-                                                                                                                                                   ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                                                   (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                                                    { _vref ->+                                                                                                                                                    (case (_vref) of+                                                                                                                                                     { _lhsOvref ->+                                                                                                                                                     ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                         in  sem_CExpr_Case_2)) of                                                                  { ( sem_CExpr_2) ->                                                                  ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -3209,12 +3267,12 @@                                                                         (case (_lhsIevalCtx) of                                                                          { _errorExprOevalCtx ->                                                                          (case (errorExpr_2 _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOnm2ref _errorExprOopts _errorExprOstackDepth _errorExprOtailCtx) of-                                                                          { ( _errorExprIappFunKind,_errorExprIcrb,_errorExprIcre,_errorExprIcreAppArgL,_errorExprIcreAppFun,_errorExprIcreLamArgL,_errorExprIcreLamBody,_errorExprIcrse,_errorExprImbFFIApp,_errorExprImbLam,_errorExprImbVar,_errorExprIrefOffsetMax,_errorExprIstackDepth,_errorExprIstackDepthMax) ->+                                                                          { ( _errorExprIappFunKind,_errorExprIcrb,_errorExprIcre,_errorExprIcreAppArgL,_errorExprIcreAppFun,_errorExprIcreLamArgL,_errorExprIcreLamBody,_errorExprIcrse,_errorExprImbFFIApp,_errorExprImbLam,_errorExprImbVar,_errorExprIrefOffsetMax,_errorExprIstackDepth,_errorExprIstackDepthMax,_errorExprIvref) ->                                                                               (case (_errorExprIappFunKind) of                                                                                { _lhsOappFunKind ->                                                                                (case ([]) of                                                                                 { _lhsOcrb ->-                                                                                (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                                (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                                  { _creBase ->                                                                                  (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                                   { _cre ->@@ -3254,7 +3312,11 @@                                                                                                    { _lhsOstackDepth ->                                                                                                    (case (_stackDepthHere) of                                                                                                     { _lhsOstackDepthMax ->-                                                                                                    ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                    (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                     { _vref ->+                                                                                                     (case (_vref) of+                                                                                                      { _lhsOvref ->+                                                                                                      ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                    in  sem_CExpr_CaseAltFail_2)) of                                             { ( sem_CExpr_2) ->                                             ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }))@@ -3320,7 +3382,7 @@                                                                                 { _lhsOappFunKind ->                                                                                 (case ([]) of                                                                                  { _lhsOcrb ->-                                                                                 (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                                 (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                                   { _creBase ->                                                                                   (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                                    { _cre ->@@ -3371,7 +3433,7 @@                                                                                                          (case (False) of                                                                                                           { _exprOisTopTup ->                                                                                                           (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                                                                           { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                                                                           { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                                                                                (case (_exprIstackDepth) of                                                                                                                 { _offsetOstackDepth ->                                                                                                                 (case (_lhsIopts) of@@ -3387,7 +3449,7 @@                                                                                                                      (case (_lhsIevalCtx) of                                                                                                                       { _offsetOevalCtx ->                                                                                                                       (case (offset_2 _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOnm2ref _offsetOopts _offsetOstackDepth _offsetOtailCtx) of-                                                                                                                       { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax) ->+                                                                                                                       { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax,_offsetIvref) ->                                                                                                                            (case (_exprIrefOffsetMax `max` _offsetIrefOffsetMax) of                                                                                                                             { _lhsOrefOffsetMax ->                                                                                                                             (case (_lhsIstackDepth + 1) of@@ -3396,7 +3458,11 @@                                                                                                                               { _lhsOstackDepth ->                                                                                                                               (case (_stackDepthHere) of                                                                                                                                { _lhsOstackDepthMax ->-                                                                                                                               ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                               (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                                { _vref ->+                                                                                                                                (case (_vref) of+                                                                                                                                 { _lhsOvref ->+                                                                                                                                 ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                   in  sem_CExpr_TupDel_2)) of                                                            { ( sem_CExpr_2) ->                                                            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -3475,7 +3541,7 @@                                                                                               { _lhsOappFunKind ->                                                                                               (case ([]) of                                                                                                { _lhsOcrb ->-                                                                                               (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                                               (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                                                 { _creBase ->                                                                                                 (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                                                  { _cre ->@@ -3526,7 +3592,7 @@                                                                                                                        (case (False) of                                                                                                                         { _exprOisTopTup ->                                                                                                                         (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                                                                                         { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                                                                                         { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                                                                                              (case (_exprIstackDepth) of                                                                                                                               { _offsetOstackDepth ->                                                                                                                               (case (_lhsItailCtx) of@@ -3544,7 +3610,7 @@                                                                                                                                     (case (_lhsIevalCtx) of                                                                                                                                      { _offsetOevalCtx ->                                                                                                                                      (case (offset_2 _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOnm2ref _offsetOopts _offsetOstackDepth _offsetOtailCtx) of-                                                                                                                                      { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax) ->+                                                                                                                                      { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax,_offsetIvref) ->                                                                                                                                           (case (_offsetIstackDepth) of                                                                                                                                            { _fldExprOstackDepth ->                                                                                                                                            (case (_lhsIopts) of@@ -3558,7 +3624,7 @@                                                                                                                                                (case (_lhsIevalCtx) of                                                                                                                                                 { _fldExprOevalCtx ->                                                                                                                                                 (case (fldExpr_2 _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOnm2ref _fldExprOopts _fldExprOstackDepth _fldExprOtailCtx) of-                                                                                                                                                 { ( _fldExprIappFunKind,_fldExprIcrb,_fldExprIcre,_fldExprIcreAppArgL,_fldExprIcreAppFun,_fldExprIcreLamArgL,_fldExprIcreLamBody,_fldExprIcrse,_fldExprImbFFIApp,_fldExprImbLam,_fldExprImbVar,_fldExprIrefOffsetMax,_fldExprIstackDepth,_fldExprIstackDepthMax) ->+                                                                                                                                                 { ( _fldExprIappFunKind,_fldExprIcrb,_fldExprIcre,_fldExprIcreAppArgL,_fldExprIcreAppFun,_fldExprIcreLamArgL,_fldExprIcreLamBody,_fldExprIcrse,_fldExprImbFFIApp,_fldExprImbLam,_fldExprImbVar,_fldExprIrefOffsetMax,_fldExprIstackDepth,_fldExprIstackDepthMax,_fldExprIvref) ->                                                                                                                                                      (case (_exprIrefOffsetMax `max` _offsetIrefOffsetMax `max` _fldExprIrefOffsetMax) of                                                                                                                                                       { _lhsOrefOffsetMax ->                                                                                                                                                       (case (_lhsIstackDepth + 1) of@@ -3567,7 +3633,11 @@                                                                                                                                                         { _lhsOstackDepth ->                                                                                                                                                         (case (_stackDepthHere) of                                                                                                                                                          { _lhsOstackDepthMax ->-                                                                                                                                                         ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                                                         (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                                                          { _vref ->+                                                                                                                                                          (case (_vref) of+                                                                                                                                                           { _lhsOvref ->+                                                                                                                                                           ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                                 in  sem_CExpr_TupIns_2)) of                                                                          { ( sem_CExpr_2) ->                                                                          ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -3646,7 +3716,7 @@                                                                                               { _lhsOappFunKind ->                                                                                               (case ([]) of                                                                                                { _lhsOcrb ->-                                                                                               (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                                               (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                                                 { _creBase ->                                                                                                 (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                                                  { _cre ->@@ -3697,7 +3767,7 @@                                                                                                                        (case (False) of                                                                                                                         { _exprOisTopTup ->                                                                                                                         (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                                                                                         { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                                                                                         { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                                                                                              (case (_exprIstackDepth) of                                                                                                                               { _offsetOstackDepth ->                                                                                                                               (case (_lhsItailCtx) of@@ -3715,7 +3785,7 @@                                                                                                                                     (case (_lhsIevalCtx) of                                                                                                                                      { _offsetOevalCtx ->                                                                                                                                      (case (offset_2 _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOnm2ref _offsetOopts _offsetOstackDepth _offsetOtailCtx) of-                                                                                                                                      { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax) ->+                                                                                                                                      { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax,_offsetIvref) ->                                                                                                                                           (case (_offsetIstackDepth) of                                                                                                                                            { _fldExprOstackDepth ->                                                                                                                                            (case (_lhsIopts) of@@ -3729,7 +3799,7 @@                                                                                                                                                (case (_lhsIevalCtx) of                                                                                                                                                 { _fldExprOevalCtx ->                                                                                                                                                 (case (fldExpr_2 _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOnm2ref _fldExprOopts _fldExprOstackDepth _fldExprOtailCtx) of-                                                                                                                                                 { ( _fldExprIappFunKind,_fldExprIcrb,_fldExprIcre,_fldExprIcreAppArgL,_fldExprIcreAppFun,_fldExprIcreLamArgL,_fldExprIcreLamBody,_fldExprIcrse,_fldExprImbFFIApp,_fldExprImbLam,_fldExprImbVar,_fldExprIrefOffsetMax,_fldExprIstackDepth,_fldExprIstackDepthMax) ->+                                                                                                                                                 { ( _fldExprIappFunKind,_fldExprIcrb,_fldExprIcre,_fldExprIcreAppArgL,_fldExprIcreAppFun,_fldExprIcreLamArgL,_fldExprIcreLamBody,_fldExprIcrse,_fldExprImbFFIApp,_fldExprImbLam,_fldExprImbVar,_fldExprIrefOffsetMax,_fldExprIstackDepth,_fldExprIstackDepthMax,_fldExprIvref) ->                                                                                                                                                      (case (_exprIrefOffsetMax `max` _offsetIrefOffsetMax `max` _fldExprIrefOffsetMax) of                                                                                                                                                       { _lhsOrefOffsetMax ->                                                                                                                                                       (case (_lhsIstackDepth + 1) of@@ -3738,7 +3808,11 @@                                                                                                                                                         { _lhsOstackDepth ->                                                                                                                                                         (case (_stackDepthHere) of                                                                                                                                                          { _lhsOstackDepthMax ->-                                                                                                                                                         ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                                                                         (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                                                                          { _vref ->+                                                                                                                                                          (case (_vref) of+                                                                                                                                                           { _lhsOvref ->+                                                                                                                                                           ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                                                 in  sem_CExpr_TupUpd_2)) of                                                                          { ( sem_CExpr_2) ->                                                                          ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -3780,9 +3854,9 @@                                                     { _lhsOcrb ->                                                     (case (foreignEntExtract impEnt_) of                                                      { _foreignEntInfo ->-                                                     (case (forextractMbEnt _foreignEntInfo >>= flip Map.lookup CR.allRunPrimMp) of+                                                     (case (forextractMbEnt _foreignEntInfo) of                                                       { _creEntMb ->-                                                      (case (\as -> maybe (dbg $ "Core.ToCoreRun.CExpr.FFI.cre: " ++ show _foreignEntInfo) (\ent -> CR.Exp_FFI ent as) _creEntMb) of+                                                      (case (\as -> maybe (CR.dbg $ "Core.ToCoreRun.CExpr.FFI.cre: " ++ show _foreignEntInfo) (\ent -> CR.mkFFI' ent as) _creEntMb) of                                                        { _creMk ->                                                        (case (_creMk CR.emptyCRArray) of                                                         { _creBase ->@@ -3839,7 +3913,11 @@                                                                                { _lhsOstackDepth ->                                                                                (case (_stackDepthHere) of                                                                                 { _lhsOstackDepthMax ->-                                                                                ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                 { _vref ->+                                                                                 (case (_vref) of+                                                                                  { _lhsOvref ->+                                                                                  ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_FFI_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -3876,7 +3954,7 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                    (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                      { _creBase ->                                                      (case (cseCtxWrap _lhsItailCtx _creBase) of                                                       { _cre ->@@ -3916,7 +3994,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_Dbg_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -3953,7 +4035,7 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                    (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                      { _creBase ->                                                      (case (cseCtxWrap _lhsItailCtx _creBase) of                                                       { _cre ->@@ -3993,7 +4075,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_Hole_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -4045,7 +4131,7 @@                                                                   { _lhsOappFunKind ->                                                                   (case ([]) of                                                                    { _lhsOcrb ->-                                                                   (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                   (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                     { _creBase ->                                                                     (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                      { _cre ->@@ -4096,7 +4182,7 @@                                                                                            (case (_lhsIevalCtx) of                                                                                             { _bodyOevalCtx ->                                                                                             (case (body_2 _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOnm2ref _bodyOopts _bodyOstackDepth _bodyOtailCtx) of-                                                                                             { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax) ->+                                                                                             { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax,_bodyIvref) ->                                                                                                  (case (_bodyIrefOffsetMax) of                                                                                                   { _lhsOrefOffsetMax ->                                                                                                   (case (_lhsIstackDepth + 1) of@@ -4105,7 +4191,11 @@                                                                                                     { _lhsOstackDepth ->                                                                                                     (case (_stackDepthHere) of                                                                                                      { _lhsOstackDepthMax ->-                                                                                                     ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                     (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                      { _vref ->+                                                                                                      (case (_vref) of+                                                                                                       { _lhsOvref ->+                                                                                                       ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                     in  sem_CExpr_HoleLet_2)) of                                              { ( sem_CExpr_2) ->                                              ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }))@@ -4141,7 +4231,7 @@                                                    { _lhsOappFunKind ->                                                    (case ([]) of                                                     { _lhsOcrb ->-                                                    (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                    (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                      { _creBase ->                                                      (case (cseCtxWrap _lhsItailCtx _creBase) of                                                       { _cre ->@@ -4181,7 +4271,11 @@                                                                        { _lhsOstackDepth ->                                                                        (case (_stackDepthHere) of                                                                         { _lhsOstackDepthMax ->-                                                                        ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                        (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                         { _vref ->+                                                                         (case (_vref) of+                                                                          { _lhsOvref ->+                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                      in  sem_CExpr_CoeArg_2)) of                               { ( sem_CExpr_2) ->                               ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }))@@ -4233,7 +4327,7 @@                                                                   { _lhsOappFunKind ->                                                                   (case ([]) of                                                                    { _lhsOcrb ->-                                                                   (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                   (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                     { _creBase ->                                                                     (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                      { _cre ->@@ -4284,7 +4378,7 @@                                                                                            (case (_lhsIevalCtx) of                                                                                             { _funcOevalCtx ->                                                                                             (case (func_2 _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOnm2ref _funcOopts _funcOstackDepth _funcOtailCtx) of-                                                                                             { ( _funcIappFunKind,_funcIcrb,_funcIcre,_funcIcreAppArgL,_funcIcreAppFun,_funcIcreLamArgL,_funcIcreLamBody,_funcIcrse,_funcImbFFIApp,_funcImbLam,_funcImbVar,_funcIrefOffsetMax,_funcIstackDepth,_funcIstackDepthMax) ->+                                                                                             { ( _funcIappFunKind,_funcIcrb,_funcIcre,_funcIcreAppArgL,_funcIcreAppFun,_funcIcreLamArgL,_funcIcreLamBody,_funcIcrse,_funcImbFFIApp,_funcImbLam,_funcImbVar,_funcIrefOffsetMax,_funcIstackDepth,_funcIstackDepthMax,_funcIvref) ->                                                                                                  (case (_funcIrefOffsetMax) of                                                                                                   { _lhsOrefOffsetMax ->                                                                                                   (case (_lhsIstackDepth + 1) of@@ -4293,7 +4387,11 @@                                                                                                     { _lhsOstackDepth ->                                                                                                     (case (_stackDepthHere) of                                                                                                      { _lhsOstackDepthMax ->-                                                                                                     ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                     (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                      { _vref ->+                                                                                                      (case (_vref) of+                                                                                                       { _lhsOvref ->+                                                                                                       ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                     in  sem_CExpr_ImplsApp_2)) of                                              { ( sem_CExpr_2) ->                                              ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }))@@ -4345,7 +4443,7 @@                                                                   { _lhsOappFunKind ->                                                                   (case ([]) of                                                                    { _lhsOcrb ->-                                                                   (case (dbg "Core.ToCoreRun.CExpr.cre") of+                                                                   (case (CR.dbg "Core.ToCoreRun.CExpr.cre") of                                                                     { _creBase ->                                                                     (case (cseCtxWrap _lhsItailCtx _creBase) of                                                                      { _cre ->@@ -4396,7 +4494,7 @@                                                                                            (case (_lhsIevalCtx) of                                                                                             { _bodyOevalCtx ->                                                                                             (case (body_2 _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOnm2ref _bodyOopts _bodyOstackDepth _bodyOtailCtx) of-                                                                                             { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax) ->+                                                                                             { ( _bodyIappFunKind,_bodyIcrb,_bodyIcre,_bodyIcreAppArgL,_bodyIcreAppFun,_bodyIcreLamArgL,_bodyIcreLamBody,_bodyIcrse,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIrefOffsetMax,_bodyIstackDepth,_bodyIstackDepthMax,_bodyIvref) ->                                                                                                  (case (_bodyIrefOffsetMax) of                                                                                                   { _lhsOrefOffsetMax ->                                                                                                   (case (_lhsIstackDepth + 1) of@@ -4405,7 +4503,11 @@                                                                                                     { _lhsOstackDepth ->                                                                                                     (case (_stackDepthHere) of                                                                                                      { _lhsOstackDepthMax ->-                                                                                                     ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                     (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                      { _vref ->+                                                                                                      (case (_vref) of+                                                                                                       { _lhsOvref ->+                                                                                                       ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                     in  sem_CExpr_ImplsLam_2)) of                                              { ( sem_CExpr_2) ->                                              ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }))@@ -4480,7 +4582,7 @@                                                                                      (case (_lhsIevalCtx) of                                                                                       { _exprOevalCtx ->                                                                                       (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                                                                       { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                                                                       { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                                                                            (case (_exprIappFunKind) of                                                                                             { _lhsOappFunKind ->                                                                                             (case (_exprIcrb) of@@ -4511,7 +4613,11 @@                                                                                                          { _lhsOstackDepth ->                                                                                                          (case (_exprIstackDepthMax) of                                                                                                           { _lhsOstackDepthMax ->-                                                                                                          ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                                                                                          (case (panic "Core.ToCoreRun.CExpr.ref") of+                                                                                                           { _vref ->+                                                                                                           (case (_vref) of+                                                                                                            { _lhsOvref ->+                                                                                                            ( _lhsOappFunKind,_lhsOcrb,_lhsOcre,_lhsOcreAppArgL,_lhsOcreAppFun,_lhsOcreLamArgL,_lhsOcreLamBody,_lhsOcrse,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax,_lhsOvref) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))                                                         in  sem_CExpr_Ann_2)) of                                                  { ( sem_CExpr_2) ->                                                  ( _lhsOnm2refGath,_lhsOrefOffset,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }))@@ -5067,14 +5173,14 @@                                 (case (True) of                                  { _exprOisTopApp ->                                  (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of-                                  { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+                                  { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->                                       (case (CR.mkCRArray $ map snd _exprIcrb) of                                        { _crmBinds ->-                                       (case (mkApp _exprIcre $ CR.mkCRArray [CR.unit]) of+                                       (case (_exprIcre) of                                         { _creMod ->                                         (case (CR.Mod_Mod (CR.nm2RefMpInverse _nm2refNew)                                                  moduleNm_ _lhsImodNr (_exprIstackDepthMax + 2                               )-                                                 _crmBinds (CR.Exp_Force _creMod)) of+                                                 _crmBinds (CR.mkEval _creMod)) of                                          { _lhsOcrm ->                                          (case (_exprInm2refGath) of                                           { _lhsOnm2refGath ->@@ -5137,7 +5243,7 @@        _lhsIopts        _lhsIrefOffset        _lhsIstackDepth ->-         (case (CR.Pat_Con CTagRec) of+         (case (CR.Pat_Con 0) of           { _lhsOcrp ->           (case ([]) of            { _lhsOfldNmL ->@@ -5157,7 +5263,7 @@        _lhsIopts        _lhsIrefOffset        _lhsIstackDepth ->-         (case (CR.Pat_Con tag_) of+         (case (CR.Pat_Con (ctagTag tag_)) of           { _lhsOcrp ->           (case (_lhsIstackDepth) of            { _restOstackDepth ->@@ -5203,7 +5309,7 @@        _lhsIopts        _lhsIrefOffset        _lhsIstackDepth ->-         (case (CR.Pat_Con CTagRec) of+         (case (CR.Pat_Con 0) of           { _lhsOcrp ->           (case ([]) of            { _lhsOfldNmL ->@@ -5221,7 +5327,7 @@        _lhsIopts        _lhsIrefOffset        _lhsIstackDepth ->-         (case (CR.Pat_Con CTagRec) of+         (case (CR.Pat_Con 0) of           { _lhsOcrp ->           (case ([]) of            { _lhsOfldNmL ->@@ -5239,7 +5345,7 @@        _lhsIopts        _lhsIrefOffset        _lhsIstackDepth ->-         (case (CR.Pat_Con CTagRec) of+         (case (CR.Pat_Con 0) of           { _lhsOcrp ->           (case ([]) of            { _lhsOfldNmL ->@@ -5344,7 +5450,7 @@                                            (case (True) of                                             { _offsetOisTopApp ->                                             (case (offset_2 _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOnm2ref _offsetOopts _offsetOstackDepth _offsetOtailCtx) of-                                             { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax) ->+                                             { ( _offsetIappFunKind,_offsetIcrb,_offsetIcre,_offsetIcreAppArgL,_offsetIcreAppFun,_offsetIcreLamArgL,_offsetIcreLamBody,_offsetIcrse,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIrefOffsetMax,_offsetIstackDepth,_offsetIstackDepthMax,_offsetIvref) ->                                                  (case (_offsetIstackDepth) of                                                   { _bindOstackDepth ->                                                   (case (EvalCtx_None) of
src/UHC/Light/Compiler/Core/Trf/ANormal.hs view
@@ -165,7 +165,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)               _exprOintroCVarIntroMp =                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)               _lhsOlevOf =                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)@@ -183,25 +183,25 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevAlt.ag"(line 2, column 17)               _lev =                   _lhsIlev + 1-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 102, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 103, column 17)               __tup1 =                   (_exprIlevBindSq,Seq.empty)-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 102, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 103, column 17)               (_hereBindSq,_) =                   __tup1-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 102, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 103, column 17)               (_,_lhsOlevBindSq) =                   __tup1-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 133, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 134, column 17)               _exprOappTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 159, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 160, column 17)               _exprOlamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 185, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 186, column 17)               _exprOletTrfIsOk =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 222, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 223, column 17)               _lhsOcTrf =                   CAlt_Alt _patIcTrf (mkLetTrf _hereBindSq _exprIcTrf)               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -327,7 +327,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _hdIfvS `Set.union` _tlIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _hdIlevBindSq Seq.:++: _tlIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -399,7 +399,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -515,19 +515,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 12, column 17)               _lhsOnm =                   nm_-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   _bindAspectsIbindL               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _bindAspectsIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _bindAspectsIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _bindAspectsIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _bindAspectsIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -620,7 +620,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -717,7 +717,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _hdIfvS `Set.union` _tlIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _hdIlevBindSq Seq.:++: _tlIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -786,7 +786,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -912,13 +912,13 @@               _tlIlevBindSq :: LevBindSq               _tlIlevOf :: Int               _tlInmL :: ([HsName])-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   _hdIbindL ++ _tlIbindL               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -927,7 +927,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   _hdIfvSMp `Map.union` _tlIfvSMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _hdIlevBindSq Seq.:++: _tlIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1018,13 +1018,13 @@               _lhsOnmL :: ([HsName])               _lhsOcTrf :: CBindL               _lhsOgUniq :: UID-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   []               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1033,7 +1033,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1224,7 +1224,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)               _lhsObindsIntroCVarIntroMp =                   Map.singleton _lhsInm _cvi-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 75, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)               _lhsOcvarIntroExprMp =                   Map.singleton _lhsInm _cviExpr               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)@@ -1236,16 +1236,16 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 83, column 17)               _whatAbove =                   ExprIsBind _lhsInm-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 96, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 97, column 17)               _lhsObindL =                   [(_exprIlevOf,acoreBind1Asp1 _lhsInm _cTrf)]-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 118, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 119, column 33)               _exprOappTrfIsOk =                   AppNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 146, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 147, column 33)               _exprOlamTrfIsOk =                   LamNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 172, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 173, column 33)               _exprOletTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1254,7 +1254,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _bindMetaIlevBindSq Seq.:++: _exprIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1352,13 +1352,13 @@               _cmetasIlevBindSq :: LevBindSq               _cmetasIlevOf :: Int               _cmetasIself :: CMetas-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   []               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1367,7 +1367,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _cmetasIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1431,13 +1431,13 @@               _lhsOnmL :: ([HsName])               _lhsOcTrf :: CBound               _lhsOgUniq :: UID-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   []               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1446,7 +1446,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1517,13 +1517,13 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 83, column 17)               _whatAbove =                   ExprIsBind _lhsInm-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   []               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1532,7 +1532,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _exprIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1617,13 +1617,13 @@               _lhsOnmL :: ([HsName])               _lhsOcTrf :: CBound               _lhsOgUniq :: UID-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   []               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1632,7 +1632,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1709,22 +1709,22 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 84, column 17)               _whatAbove =                   ExprIsLam 0 Nothing-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 99, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 100, column 17)               _lhsObindL =                   [(cLevModule,acoreBind1Asp1 _lhsInm _cTrf)]-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 118, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 119, column 33)               _exprOappTrfIsOk =                   AppNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 146, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 147, column 33)               _exprOlamTrfIsOk =                   LamNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 172, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 173, column 33)               _exprOletTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1733,7 +1733,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _exprIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -1897,22 +1897,22 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)               _hdOisTopTup =                   True-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 136, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 137, column 17)               _hdOappTrfIsOk =                   AppNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 162, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 163, column 17)               _hdOlamTrfIsOk =                   LamNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 188, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 189, column 17)               _hdOletTrfIsOk =                   False-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   _hdIbindL ++ _tlIbindL               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1921,7 +1921,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   _hdIfvSMp `Map.union` _tlIfvSMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _hdIlevBindSq Seq.:++: _tlIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -2019,13 +2019,13 @@               _lhsOnmL :: ([HsName])               _lhsOcTrf :: CBoundL               _lhsOgUniq :: UID-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 26)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 73, column 26)               _lhsObindL =                   []               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -2034,7 +2034,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)               _lhsOfvSMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -2384,13 +2384,20 @@       alternative Tup:          child tag            : {CTag}          visit 0:+            local levOf       : _             local isTopApp    : {Bool}             local isTopTup    : _             local whatBelow   : _             local whatAbove   : {WhatExpr}+            local _tup2       : _+            local lUniq       : _             local appTrfIsOk  : _             local lamTrfIsOk  : _             local letTrfIsOk  : _+            local trNm        : _+            local trfIsOk     : _+            local _tup3       : _+            local levBindSq   : _             local cTrf        : _       alternative Let:          child categ          : {CBindCateg}@@ -2398,7 +2405,7 @@          child body           : CExpr           visit 0:             local maxBindLev  : _-            local _tup2       : _+            local _tup4       : _             local strLev      : _             local introCVarIntroMp : _             local levOf       : _@@ -2411,16 +2418,16 @@             local isTopLet    : _             local evalCtx     : _             local isGlobal    : _-            local _tup3       : _+            local _tup5       : _             local lUniq       : _-            local _tup4       : _+            local _tup6       : _             local hereBindSq  : _             local remBindSq   : _             local lamTrfIsOk  : _             local letTrfIsOk  : _             local trNm        : _             local trfIsOk     : _-            local _tup5       : _+            local _tup7       : _             local levBindSq   : _             local cTrf        : _       alternative App:@@ -2435,13 +2442,13 @@             local whatAbove   : {WhatExpr}             local isTopApp'   : _             local isGlobal    : _-            local _tup6       : _+            local _tup8       : _             local lUniq       : _             local lamTrfIsOk  : _             local letTrfIsOk  : _             local trNm        : _             local trfIsOk     : _-            local _tup7       : _+            local _tup9       : _             local levBindSq   : _             local cTrf        : _       alternative Lam:@@ -2460,17 +2467,17 @@             local isTopLam    : _             local lev         : _             local isGlobal    : _-            local _tup8       : _+            local _tup10      : _             local lUniq       : _             local lUniq2      : _-            local _tup9       : _+            local _tup11      : _             local hereBindSq  : _             local remBindSq   : _             local letTrfIsOk  : _             local trNm        : _             local trNm2       : _             local trfIsOk     : _-            local _tup10      : _+            local _tup12      : _             local levBindSq   : _             local cTrf        : _       alternative Case:@@ -2483,14 +2490,14 @@             local isTopTup    : _             local whatBelow   : _             local whatAbove   : {WhatExpr}-            local _tup11      : _+            local _tup13      : _             local lUniq       : _             local appTrfIsOk  : _             local lamTrfIsOk  : _             local letTrfIsOk  : _             local trNm        : _             local trfIsOk     : _-            local _tup12      : _+            local _tup14      : _             local levBindSq   : _             local cTrf        : _       alternative CaseAltFail:@@ -2512,14 +2519,14 @@             local isTopTup    : _             local whatBelow   : _             local whatAbove   : {WhatExpr}-            local _tup13      : _+            local _tup15      : _             local lUniq       : _             local appTrfIsOk  : _             local lamTrfIsOk  : _             local letTrfIsOk  : _             local trNm        : _             local trfIsOk     : _-            local _tup14      : _+            local _tup16      : _             local levBindSq   : _             local cTrf        : _       alternative TupIns:@@ -2534,12 +2541,12 @@             local isTopTup    : _             local whatBelow   : _             local whatAbove   : {WhatExpr}-            local _tup15      : _+            local _tup17      : _             local lUniq       : _             local appTrfIsOk  : _             local trNm        : _             local trfIsOk     : _-            local _tup16      : _+            local _tup18      : _             local levBindSq   : _             local cTrf        : _       alternative TupUpd:@@ -2554,12 +2561,12 @@             local isTopTup    : _             local whatBelow   : _             local whatAbove   : {WhatExpr}-            local _tup17      : _+            local _tup19      : _             local lUniq       : _             local appTrfIsOk  : _             local trNm        : _             local trfIsOk     : _-            local _tup18      : _+            local _tup20      : _             local levBindSq   : _             local cTrf        : _       alternative FFI:@@ -2760,16 +2767,16 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- self rule@@ -2820,19 +2827,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -2886,19 +2893,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -2940,7 +2947,7 @@               _lhsOcTrf :: CExpr               _lhsOgUniq :: UID               _lhsOwhatBelow :: WhatExpr-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)               _levOf =                   cLevIntern               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)@@ -2955,19 +2962,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -3021,19 +3028,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -3069,12 +3076,15 @@        _lhsIwhatAbove ->          (let _isTopApp :: Bool               _whatAbove :: WhatExpr+              _lhsOgUniq :: UID+              _lhsOcTrf :: CExpr               _lhsOfvS :: FvS               _lhsOlevBindSq :: LevBindSq               _lhsOlevOf :: Int-              _lhsOcTrf :: CExpr-              _lhsOgUniq :: UID               _lhsOwhatBelow :: WhatExpr+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              _levOf =+                  cLevModule               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)               _isTopApp =                   True@@ -3087,33 +3097,52 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 55, column 17)+              __tup2 =+                  mkNewUID _lhsIgUniq+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 55, column 17)+              (_lhsOgUniq,_) =+                  __tup2+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 55, column 17)+              (_,_lUniq) =+                  __tup2+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)+              _trNm =+                  hsnQualUniqify _lhsImodNm $+                  uidHNm _lUniq+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 229, column 33)+              _trfIsOk =+                  _lhsIappTrfIsOk == AppYesLet && _lhsIisTopApp+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)+              __tup3 =+                  mkTrf _trfIsOk _lhsIlev _levOf _trNm _cTrf+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)+              (_lhsOcTrf,_) =+                  __tup3+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)+              (_,_levBindSq) =+                  __tup3               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =-                  Seq.empty+                  _levBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)               _lhsOlevOf =-                  cLevModule+                  _levOf               -- self rule               _cTrf =                   CExpr_Tup tag_-              -- self rule-              _lhsOcTrf =-                  _cTrf-              -- copy rule (chain)-              _lhsOgUniq =-                  _lhsIgUniq               -- copy rule (from local)               _lhsOwhatBelow =                   _whatBelow@@ -3183,7 +3212,7 @@               _maxBindLev =                   fvsLev _lhsIcvarIntroMp cLevModule _bindsIfvS               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)-              __tup2 =+              __tup4 =                   case categ_ of                       CBindCateg_Strict -> (const _lhsIlev,_lhsIcvarIntroMp)                       CBindCateg_Rec    -> ( const _maxBindLev@@ -3193,10 +3222,10 @@                       _                 -> (id,_lhsIcvarIntroMp)               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)               (_strLev,_) =-                  __tup2+                  __tup4               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)               (_,_bindsOcvarIntroMp) =-                  __tup2+                  __tup4               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)               _bodyOcvarIntroMp =                   Map.map (\cvi -> cvi {cviLev = _strLev $ cviLev cvi}) _bindsIcvarIntroExprMp `Map.union` _lhsIcvarIntroMp@@ -3235,17 +3264,17 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 10, column 17)               _isGlobal =                   _lhsIlev == cLevModule-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 58, column 17)-              __tup3 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 59, column 17)+              __tup5 =                   mkNewUID _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 58, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 59, column 17)               (_bindsOgUniq,_) =-                  __tup3-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 58, column 17)+                  __tup5+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 59, column 17)               (_,_lUniq) =-                  __tup3-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 80, column 17)-              __tup4 =+                  __tup5+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 81, column 17)+              __tup6 =                   let ((hl,_):_) = _bindsIbindL                       b1  = _bindsIlevBindSq                       b2  = Seq.singleton (_strLev hl,(categ_,assocLElts _bindsIbindL))@@ -3255,40 +3284,40 @@                               CBindCateg_Rec -> b12 Seq.:++: b3                               _              -> b1  Seq.:++: b2 Seq.:++: b3                   in  (b,Seq.empty)-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 80, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 81, column 17)               (_hereBindSq,_) =-                  __tup4-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 80, column 17)+                  __tup6+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 81, column 17)               (_,_remBindSq) =-                  __tup4-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 90, column 17)+                  __tup6+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 91, column 17)               _lhsOlevBindSq =                   _remBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 128, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 129, column 17)               _bodyOappTrfIsOk =                   AppNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 229, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 231, column 17)               _trfIsOk =                   _lhsIletTrfIsOk-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 241, column 17)-              __tup5 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 244, column 17)+              __tup7 =                   mkTrf _trfIsOk _lhsIlev _levOf _trNm $ mkLetTrf _hereBindSq _bodyIcTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 241, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 244, column 17)               (_lhsOcTrf,_) =-                  __tup5-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 241, column 17)+                  __tup7+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 244, column 17)               (_,_levBindSq) =-                  __tup5+                  __tup7               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _fvS@@ -3458,46 +3487,46 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)               _isGlobal =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 55, column 17)-              __tup6 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)+              __tup8 =                   mkNewUID _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 55, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)               (_funcOgUniq,_) =-                  __tup6-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 55, column 17)+                  __tup8+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)               (_,_lUniq) =-                  __tup6-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 75, column 17)+                  __tup8+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 76, column 17)               _lhsOlevBindSq =                   _argIlevBindSq Seq.:++: _funcIlevBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 124, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 125, column 17)               _funcOappTrfIsOk =                   AppNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 125, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 126, column 17)               _argOappTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 180, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 181, column 17)               _letTrfIsOk =                   True-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 227, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 229, column 33)               _trfIsOk =                   _lhsIappTrfIsOk == AppYesLet && _lhsIisTopApp-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 234, column 17)-              __tup7 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)+              __tup9 =                   mkTrf _trfIsOk _lhsIlev _levOf _trNm _cTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 234, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)               (_lhsOcTrf,_) =-                  __tup7-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 234, column 17)+                  __tup9+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)               (_,_levBindSq) =-                  __tup7+                  __tup9               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _fvS@@ -3684,64 +3713,64 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)               _isGlobal =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)-              __tup8 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 57, column 17)+              __tup10 =                   mkNewLevUID2 _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 57, column 17)               (_bodyOgUniq,_,_) =-                  __tup8-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)+                  __tup10+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 57, column 17)               (_,_lUniq,_) =-                  __tup8-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 56, column 17)+                  __tup10+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 57, column 17)               (_,_,_lUniq2) =-                  __tup8-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 91, column 33)-              __tup9 =+                  __tup10+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 92, column 33)+              __tup11 =                   (_bodyIlevBindSq,Seq.empty)-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 91, column 33)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 92, column 33)               (_hereBindSq,_) =-                  __tup9-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 91, column 33)+                  __tup11+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 92, column 33)               (_,_remBindSq) =-                  __tup9-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 93, column 17)+                  __tup11+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 94, column 17)               _lhsOlevBindSq =                   _remBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 128, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 129, column 17)               _bodyOappTrfIsOk =                   AppNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 154, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 155, column 17)               _bodyOlamTrfIsOk =                   LamNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 195, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 196, column 17)               _trNm2 =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq2-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 228, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 230, column 17)               _trfIsOk =                   _lhsIlamTrfIsOk == LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)-              __tup10 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 238, column 17)+              __tup12 =                   let mkTLB = mkTrf _trfIsOk _lhsIlev _levOf _trNm                             . acoreLam1 _argNm                             . mkLetTrf _hereBindSq                   in  if cexprIsLam _bodyIcTrf && not (List.null (Seq.toList _hereBindSq))                       then mkTLB (CExpr_Let CBindCateg_Plain [acoreBind1Cat CBindCateg_Plain _trNm2 _bodyIcTrf] (acoreVar _trNm2))                       else mkTLB _bodyIcTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 238, column 17)               (_lhsOcTrf,_) =-                  __tup10-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)+                  __tup12+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 238, column 17)               (_,_levBindSq) =-                  __tup10+                  __tup12               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _fvS@@ -3894,43 +3923,43 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)-              __tup11 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)+              __tup13 =                   mkNewUID _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_exprOgUniq,_) =-                  __tup11-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+                  __tup13+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_,_lUniq) =-                  __tup11-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 76, column 17)+                  __tup13+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 77, column 17)               _lhsOlevBindSq =                   _exprIlevBindSq Seq.:++: _altsIlevBindSq Seq.:++: _dfltIlevBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 227, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 229, column 33)               _trfIsOk =                   _lhsIappTrfIsOk == AppYesLet && _lhsIisTopApp-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 234, column 17)-              __tup12 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)+              __tup14 =                   mkTrf _trfIsOk _lhsIlev _levOf _trNm _cTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 234, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)               (_lhsOcTrf,_) =-                  __tup12-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 234, column 17)+                  __tup14+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 237, column 17)               (_,_levBindSq) =-                  __tup12+                  __tup14               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS@@ -4094,7 +4123,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _errorExprIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _errorExprIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -4231,43 +4260,43 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)-              __tup13 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)+              __tup15 =                   mkNewUID _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_exprOgUniq,_) =-                  __tup13-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+                  __tup15+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_,_lUniq) =-                  __tup13-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 77, column 17)+                  __tup15+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 78, column 17)               _lhsOlevBindSq =                   _exprIlevBindSq Seq.:++: _offsetIlevBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 127, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 128, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 226, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 227, column 17)               _trfIsOk =                   _lhsIappTrfIsOk == AppYesLet && _lhsIisTopTup-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)-              __tup14 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)+              __tup16 =                   mkTrf _trfIsOk _lhsIlev _levOf _trNm _cTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)               (_lhsOcTrf,_) =-                  __tup14-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)+                  __tup16+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)               (_,_levBindSq) =-                  __tup14+                  __tup16               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _exprIfvS `Set.union` _offsetIfvS@@ -4453,43 +4482,43 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)-              __tup15 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)+              __tup17 =                   mkNewUID _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_exprOgUniq,_) =-                  __tup15-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+                  __tup17+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_,_lUniq) =-                  __tup15-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 79, column 17)+                  __tup17+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 80, column 17)               _lhsOlevBindSq =                   _exprIlevBindSq Seq.:++: _offsetIlevBindSq Seq.:++: _fldExprIlevBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 127, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 128, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 153, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 154, column 17)               _fldExprOlamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 179, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 180, column 17)               _fldExprOletTrfIsOk =                   True-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 226, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 227, column 17)               _trfIsOk =                   _lhsIappTrfIsOk == AppYesLet && _lhsIisTopTup-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)-              __tup16 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)+              __tup18 =                   mkTrf _trfIsOk _lhsIlev _levOf _trNm _cTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)               (_lhsOcTrf,_) =-                  __tup16-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)+                  __tup18+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)               (_,_levBindSq) =-                  __tup16+                  __tup18               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS@@ -4707,43 +4736,43 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)-              __tup17 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)+              __tup19 =                   mkNewUID _lhsIgUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_exprOgUniq,_) =-                  __tup17-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 60, column 17)+                  __tup19+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 61, column 17)               (_,_lUniq) =-                  __tup17-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 79, column 17)+                  __tup19+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 80, column 17)               _lhsOlevBindSq =                   _exprIlevBindSq Seq.:++: _offsetIlevBindSq Seq.:++: _fldExprIlevBindSq Seq.:++: _levBindSq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 127, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 128, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 153, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 154, column 17)               _fldExprOlamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 179, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 180, column 17)               _fldExprOletTrfIsOk =                   True-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 192, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 193, column 17)               _trNm =                   hsnQualUniqify _lhsImodNm $                   uidHNm _lUniq-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 226, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 227, column 17)               _trfIsOk =                   _lhsIappTrfIsOk == AppYesLet && _lhsIisTopTup-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)-              __tup18 =+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)+              __tup20 =                   mkTrf _trfIsOk _lhsIlev _levOf _trNm _cTrf-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)               (_lhsOcTrf,_) =-                  __tup18-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 233, column 17)+                  __tup20+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 235, column 17)               (_,_levBindSq) =-                  __tup18+                  __tup20               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS@@ -4900,19 +4929,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -4966,19 +4995,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5032,19 +5061,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5117,19 +5146,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _bodyIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _bodyIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5220,19 +5249,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5305,19 +5334,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _funcIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _funcIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5428,19 +5457,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)               _whatAbove =                   ExprIsOther-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 130, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 131, column 17)               _appTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 156, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 157, column 17)               _lamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 182, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 183, column 17)               _letTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _bodyIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _bodyIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5550,7 +5579,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _annIfvS `Set.union` _exprIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _annIlevBindSq Seq.:++: _exprIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5685,7 +5714,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5717,7 +5746,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5749,7 +5778,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5912,7 +5941,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5950,7 +5979,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -5988,7 +6017,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6026,7 +6055,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6125,7 +6154,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6163,7 +6192,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6202,7 +6231,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6241,7 +6270,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6280,7 +6309,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6378,7 +6407,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _x1IfvS `Set.union` _x2IfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _x1IlevBindSq Seq.:++: _x2IlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6523,19 +6552,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 102, column 17)               _exprOevalCtx =                   EvalCtx_Eval-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 113, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 114, column 17)               _exprOappTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 141, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 142, column 17)               _exprOlamTrfIsOk =                   LamYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 167, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 168, column 17)               _exprOletTrfIsOk =                   False               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _exprIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _exprIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6662,7 +6691,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6727,7 +6756,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _restIfvS `Set.union` _bindsIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _restIlevBindSq Seq.:++: _bindsIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6798,7 +6827,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6838,7 +6867,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -6878,7 +6907,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -7034,19 +7063,19 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 15, column 17)               _bindOisGlobal =                   False-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 121, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 122, column 17)               _offsetOappTrfIsOk =                   AppYesLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 149, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 150, column 17)               _offsetOlamTrfIsOk =                   LamNoLet-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 175, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 176, column 17)               _offsetOletTrfIsOk =                   True               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _offsetIlevBindSq Seq.:++: _bindIlevBindSq Seq.:++: _fldAnnsIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -7201,7 +7230,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   _hdIfvS `Set.union` _tlIfvS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   _hdIlevBindSq Seq.:++: _tlIlevBindSq               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -7274,7 +7303,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -7352,7 +7381,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)@@ -7384,7 +7413,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)               _lhsOfvS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 71, column 32)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 72, column 32)               _lhsOlevBindSq =                   Seq.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
src/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.hs view
@@ -149,7 +149,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)               _exprOintroCVarIntroMp =                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)               _lhsOlevOf =                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)@@ -548,7 +548,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _bindAspectsIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _bindAspectsIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1012,7 +1012,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1147,7 +1147,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1387,7 +1387,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)               _lhsObindsIntroCVarIntroMp =                   Map.singleton _lhsInm _cvi-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 75, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)               _lhsOcvarIntroExprMp =                   Map.singleton _lhsInm _cviExpr               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)@@ -1577,7 +1577,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1673,7 +1673,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1770,7 +1770,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1878,7 +1878,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1984,7 +1984,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -2195,7 +2195,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -2337,7 +2337,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -2688,6 +2688,7 @@       alternative Tup:          child tag            : {CTag}          visit 0:+            local levOf       : _             local isTopApp    : {Bool}             local isTopTup    : _             local whatBelow   : _@@ -3189,7 +3190,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)               _lhsOmbVar =                   Nothing-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)               _levOf =                   cLevIntern               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)@@ -3330,6 +3331,9 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)               _lhsOmbVar =                   Nothing+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              _levOf =+                  cLevModule               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)               _isTopApp =                   True@@ -3347,7 +3351,7 @@                   Set.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)               _lhsOlevOf =-                  cLevModule+                  _levOf               -- self rule               _cTrf =                   CExpr_Tup tag_
src/UHC/Light/Compiler/Core/Trf/EraseExtractTysigCore.hs view
@@ -14,10 +14,17 @@ import Data.Maybe import qualified Data.Map as Map import qualified Data.Set as Set+import Control.Monad.State   +type StateSel = State ([SelVal],[SelVal]) () +-- | Return the selected, the not selected, and a function taking selected merging it back with the not selected+mkSel :: Bool -> SelVal -> ([SelVal], [SelVal], [StateSel])+mkSel isSelected boundval+  | isSelected = ([boundval], []        , [modify (\(s:sel, acc) -> (sel, s       :acc))])+  | otherwise  = ([]        , [boundval], [modify (\(  sel, acc) -> (sel, boundval:acc))])   @@ -27,6 +34,12 @@   ++++++ cmodTrfEraseExtractTysigCore   :: EHCOpts      -> CModule@@ -169,6 +182,7 @@          cBindL               : [CBind]          cTrf                 : CBind           nm                   : HsName+         selvalInsertYes      : [SelVal] -> [SelVal]          selvalNoL            : [SelVal]          selvalYesL           : [SelVal]    alternatives:@@ -188,7 +202,7 @@ type T_CBind = BoundSel ->                LamMp ->                EHCOpts ->-               ( LamMp,([CBind]),CBind,HsName,([SelVal]),([SelVal]))+               ( LamMp,([CBind]),CBind,HsName,([SelVal] -> [SelVal]),([SelVal]),([SelVal])) sem_CBind_Bind :: HsName ->                   T_CBoundL ->                   T_CBind@@ -205,7 +219,7 @@             (case (nm_) of              { _bindAspectsOnm | _bindAspectsOnm `seq` (True) ->              (case (bindAspects_ _bindAspectsOboundsel _bindAspectsOlamMp _bindAspectsOnm _bindAspectsOopts) of-              { ( _bindAspectsIbindLamMp,_bindAspectsIcBindL,_bindAspectsIcTrf,_bindAspectsIselvalNoL,_bindAspectsIselvalYesL) | True ->+              { ( _bindAspectsIbindLamMp,_bindAspectsIcBindL,_bindAspectsIcTrf,_bindAspectsIselvalInsertYesM,_bindAspectsIselvalNoL,_bindAspectsIselvalYesL) | True ->                   (case (_bindAspectsIbindLamMp) of                    { _lhsObindLamMp | _lhsObindLamMp `seq` (True) ->                    (case (CBind_Bind nm_ _bindAspectsIselvalYesL) of@@ -218,11 +232,13 @@                        { _lhsOcTrf | _lhsOcTrf `seq` (True) ->                        (case (nm_) of                         { _lhsOnm | _lhsOnm `seq` (True) ->-                        (case (_bindAspectsIselvalNoL) of-                         { _lhsOselvalNoL | _lhsOselvalNoL `seq` (True) ->-                         (case (_bindAspectsIselvalYesL) of-                          { _lhsOselvalYesL | _lhsOselvalYesL `seq` (True) ->-                          ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOnm,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }))+                        (case (\sel -> reverse $ snd $ execState (sequence_ _bindAspectsIselvalInsertYesM) (sel,[])) of+                         { _lhsOselvalInsertYes | _lhsOselvalInsertYes `seq` (True) ->+                         (case (_bindAspectsIselvalNoL) of+                          { _lhsOselvalNoL | _lhsOselvalNoL `seq` (True) ->+                          (case (_bindAspectsIselvalYesL) of+                           { _lhsOselvalYesL | _lhsOselvalYesL `seq` (True) ->+                           ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOnm,_lhsOselvalInsertYes,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CBindAnn ---------------------------------------------------- {-    visit 0:@@ -368,7 +384,7 @@                    (case (_lhsIboundsel) of                     { _hdOboundsel | _hdOboundsel `seq` (True) ->                     (case (hd_ _hdOboundsel _hdOlamMp _hdOopts) of-                     { ( _hdIbindLamMp,_hdIcBindL,_hdIcTrf,_hdInm,_hdIselvalNoL,_hdIselvalYesL) | True ->+                     { ( _hdIbindLamMp,_hdIcBindL,_hdIcTrf,_hdInm,_hdIselvalInsertYes,_hdIselvalNoL,_hdIselvalYesL) | True ->                          (case (_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp) of                           { _lhsObindLamMp | _lhsObindLamMp `seq` (True) ->                           (case (_hdIcBindL ++ _tlIcBindL) of@@ -404,6 +420,7 @@          bindLamMp            : LamMp          cBindL               : [CBind]          cTrf                 : CBound +         selvalInsertYesM     : [StateSel]          selvalNoL            : [SelVal]          selvalYesL           : [SelVal]    alternatives:@@ -480,7 +497,7 @@                 LamMp ->                 HsName ->                 EHCOpts ->-                ( LamMp,([CBind]),CBound,([SelVal]),([SelVal]))+                ( LamMp,([CBind]),CBound,([StateSel]),([SelVal]),([SelVal])) sem_CBound_Bind :: T_CMetas ->                    T_CExpr ->                    T_CBound@@ -513,15 +530,15 @@                             { _boundval | _boundval `seq` (True) ->                             (case (selBind    _lhsIboundsel) of                              { _isSelected | _isSelected `seq` (True) ->-                             (case (if _isSelected-                                    then ([_boundval],[])-                                    else ([],[_boundval])) of+                             (case (mkSel _isSelected _boundval) of                               { __tup1 | __tup1 `seq` (True) ->                               (case (__tup1) of-                               { (_,_lhsOselvalNoL) | _lhsOselvalNoL `seq` (True) ->+                               { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->                                (case (__tup1) of-                                { (_lhsOselvalYesL,_) | _lhsOselvalYesL `seq` (True) ->-                                ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                                { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->+                                (case (__tup1) of+                                 { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->+                                 ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_Meta :: ACoreBindAspectKeyS ->                    T_CMetas ->                    T_CBound@@ -548,15 +565,15 @@                      { _boundval | _boundval `seq` (True) ->                      (case (selMeta    _lhsIboundsel aspectKeyS_) of                       { _isSelected | _isSelected `seq` (True) ->-                      (case (if _isSelected-                             then ([_boundval],[])-                             else ([],[_boundval])) of+                      (case (mkSel _isSelected _boundval) of                        { __tup2 | __tup2 `seq` (True) ->                        (case (__tup2) of-                        { (_,_lhsOselvalNoL) | _lhsOselvalNoL `seq` (True) ->+                        { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->                         (case (__tup2) of-                         { (_lhsOselvalYesL,_) | _lhsOselvalYesL `seq` (True) ->-                         ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }))+                         { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->+                         (case (__tup2) of+                          { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->+                          ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_RelevTy :: ACoreBindAspectKeyS ->                       RelevTy ->                       T_CBound@@ -577,15 +594,15 @@               { _boundval | _boundval `seq` (True) ->               (case (selRelevTy _lhsIboundsel aspectKeyS_ relevTy_) of                { _isSelected | _isSelected `seq` (True) ->-               (case (if _isSelected-                      then ([_boundval],[])-                      else ([],[_boundval])) of+               (case (mkSel _isSelected _boundval) of                 { __tup3 | __tup3 `seq` (True) ->                 (case (__tup3) of-                 { (_,_lhsOselvalNoL) | _lhsOselvalNoL `seq` (True) ->+                 { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->                  (case (__tup3) of-                  { (_lhsOselvalYesL,_) | _lhsOselvalYesL `seq` (True) ->-                  ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }))+                  { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->+                  (case (__tup3) of+                   { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->+                   ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) })) sem_CBound_Val :: ACoreBindAspectKeyS ->                   MetaLev ->                   CLbl ->@@ -614,15 +631,15 @@                      { _boundval | _boundval `seq` (True) ->                      (case (selVal     _lhsIboundsel aspectKeyS_ mlev_ lbl_) of                       { _isSelected | _isSelected `seq` (True) ->-                      (case (if _isSelected-                             then ([_boundval],[])-                             else ([],[_boundval])) of+                      (case (mkSel _isSelected _boundval) of                        { __tup4 | __tup4 `seq` (True) ->                        (case (__tup4) of-                        { (_,_lhsOselvalNoL) | _lhsOselvalNoL `seq` (True) ->+                        { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->                         (case (__tup4) of-                         { (_lhsOselvalYesL,_) | _lhsOselvalYesL `seq` (True) ->-                         ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }))+                         { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->+                         (case (__tup4) of+                          { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->+                          ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_Ty :: ACoreBindAspectKeyS ->                  Ty ->                  T_CBound@@ -643,15 +660,15 @@               { _boundval | _boundval `seq` (True) ->               (case (selTy      _lhsIboundsel aspectKeyS_) of                { _isSelected | _isSelected `seq` (True) ->-               (case (if _isSelected-                      then ([_boundval],[])-                      else ([],[_boundval])) of+               (case (mkSel _isSelected _boundval) of                 { __tup5 | __tup5 `seq` (True) ->                 (case (__tup5) of-                 { (_,_lhsOselvalNoL) | _lhsOselvalNoL `seq` (True) ->+                 { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->                  (case (__tup5) of-                  { (_lhsOselvalYesL,_) | _lhsOselvalYesL `seq` (True) ->-                  ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }))+                  { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->+                  (case (__tup5) of+                   { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->+                   ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) })) sem_CBound_FFE :: FFIWay ->                   ForeignEnt ->                   T_CExpr ->@@ -680,15 +697,15 @@                      { _boundval | _boundval `seq` (True) ->                      (case (selFFE     _lhsIboundsel) of                       { _isSelected | _isSelected `seq` (True) ->-                      (case (if _isSelected-                             then ([_boundval],[])-                             else ([],[_boundval])) of+                      (case (mkSel _isSelected _boundval) of                        { __tup6 | __tup6 `seq` (True) ->                        (case (__tup6) of-                        { (_,_lhsOselvalNoL) | _lhsOselvalNoL `seq` (True) ->+                        { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->                         (case (__tup6) of-                         { (_lhsOselvalYesL,_) | _lhsOselvalYesL `seq` (True) ->-                         ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }))+                         { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->+                         (case (__tup6) of+                          { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->+                          ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CBoundL ----------------------------------------------------- {-    visit 0:@@ -701,6 +718,7 @@          bindLamMp            : LamMp          cBindL               : [CBind]          cTrf                 : CBoundL +         selvalInsertYesM     : [StateSel]          selvalNoL            : [SelVal]          selvalYesL           : [SelVal]    alternatives:@@ -723,7 +741,7 @@                  LamMp ->                  HsName ->                  EHCOpts ->-                 ( LamMp,([CBind]),CBoundL,([SelVal]),([SelVal]))+                 ( LamMp,([CBind]),CBoundL,([StateSel]),([SelVal]),([SelVal])) sem_CBoundL_Cons :: T_CBound ->                     T_CBoundL ->                     T_CBoundL@@ -741,7 +759,7 @@             (case (_lhsIboundsel) of              { _tlOboundsel | _tlOboundsel `seq` (True) ->              (case (tl_ _tlOboundsel _tlOlamMp _tlOnm _tlOopts) of-              { ( _tlIbindLamMp,_tlIcBindL,_tlIcTrf,_tlIselvalNoL,_tlIselvalYesL) | True ->+              { ( _tlIbindLamMp,_tlIcBindL,_tlIcTrf,_tlIselvalInsertYesM,_tlIselvalNoL,_tlIselvalYesL) | True ->                   (case (_lhsIopts) of                    { _hdOopts | _hdOopts `seq` (True) ->                    (case (_lhsInm) of@@ -751,7 +769,7 @@                      (case (_lhsIboundsel) of                       { _hdOboundsel | _hdOboundsel `seq` (True) ->                       (case (hd_ _hdOboundsel _hdOlamMp _hdOnm _hdOopts) of-                       { ( _hdIbindLamMp,_hdIcBindL,_hdIcTrf,_hdIselvalNoL,_hdIselvalYesL) | True ->+                       { ( _hdIbindLamMp,_hdIcBindL,_hdIcTrf,_hdIselvalInsertYesM,_hdIselvalNoL,_hdIselvalYesL) | True ->                            (case (_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp) of                             { _lhsObindLamMp | _lhsObindLamMp `seq` (True) ->                             (case (_hdIcBindL ++ _tlIcBindL) of@@ -760,11 +778,13 @@                               { _cTrf | _cTrf `seq` (True) ->                               (case (_cTrf) of                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->-                               (case (_hdIselvalNoL ++ _tlIselvalNoL) of-                                { _lhsOselvalNoL | _lhsOselvalNoL `seq` (True) ->-                                (case (_hdIselvalYesL ++ _tlIselvalYesL) of-                                 { _lhsOselvalYesL | _lhsOselvalYesL `seq` (True) ->-                                 ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+                               (case (_hdIselvalInsertYesM ++ _tlIselvalInsertYesM) of+                                { _lhsOselvalInsertYesM | _lhsOselvalInsertYesM `seq` (True) ->+                                (case (_hdIselvalNoL ++ _tlIselvalNoL) of+                                 { _lhsOselvalNoL | _lhsOselvalNoL `seq` (True) ->+                                 (case (_hdIselvalYesL ++ _tlIselvalYesL) of+                                  { _lhsOselvalYesL | _lhsOselvalYesL `seq` (True) ->+                                  ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBoundL_Nil :: T_CBoundL sem_CBoundL_Nil =     (\ _lhsIboundsel@@ -780,10 +800,12 @@             (case (_cTrf) of              { _lhsOcTrf | _lhsOcTrf `seq` (True) ->              (case ([]) of-              { _lhsOselvalNoL | _lhsOselvalNoL `seq` (True) ->+              { _lhsOselvalInsertYesM | _lhsOselvalInsertYesM `seq` (True) ->               (case ([]) of-               { _lhsOselvalYesL | _lhsOselvalYesL `seq` (True) ->-               ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }))+               { _lhsOselvalNoL | _lhsOselvalNoL `seq` (True) ->+               (case ([]) of+                { _lhsOselvalYesL | _lhsOselvalYesL `seq` (True) ->+                ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) })) -- CDataCon ---------------------------------------------------- {-    visit 0:@@ -1282,7 +1304,7 @@             (case (hsnUnknown) of              { _argOnm | _argOnm `seq` (True) ->              (case (arg_ _argOboundsel _argOlamMp _argOnm _argOopts) of-              { ( _argIbindLamMp,_argIcBindL,_argIcTrf,_argIselvalNoL,_argIselvalYesL) | True ->+              { ( _argIbindLamMp,_argIcBindL,_argIcTrf,_argIselvalInsertYesM,_argIselvalNoL,_argIselvalYesL) | True ->                   (case (_lhsIopts) of                    { _funcOopts | _funcOopts `seq` (True) ->                    (case (_lhsIlamMp) of@@ -1311,7 +1333,7 @@             (case (_lhsIlamMp) of              { _bindOlamMp | _bindOlamMp `seq` (True) ->              (case (bind_ _bindOboundsel _bindOlamMp _bindOopts) of-              { ( _bindIbindLamMp,_bindIcBindL,_bindIcTrf,_bindInm,_bindIselvalNoL,_bindIselvalYesL) | True ->+              { ( _bindIbindLamMp,_bindIcBindL,_bindIcTrf,_bindInm,_bindIselvalInsertYes,_bindIselvalNoL,_bindIselvalYesL) | True ->                   (case (_bindInm) of                    { _argNm | _argNm `seq` (True) ->                    (case (Map.delete _argNm _lhsIlamMp) of@@ -2185,7 +2207,7 @@                    (case (_lhsIlamMp) of                     { _bindOlamMp | _bindOlamMp `seq` (True) ->                     (case (bind_ _bindOboundsel _bindOlamMp _bindOopts) of-                     { ( _bindIbindLamMp,_bindIcBindL,_bindIcTrf,_bindInm,_bindIselvalNoL,_bindIselvalYesL) | True ->+                     { ( _bindIbindLamMp,_bindIcBindL,_bindIcTrf,_bindInm,_bindIselvalInsertYes,_bindIselvalNoL,_bindIselvalYesL) | True ->                          (case (_lhsIopts) of                           { _offsetOopts | _offsetOopts `seq` (True) ->                           (case (_lhsIlamMp) of
src/UHC/Light/Compiler/Core/Trf/InlineLetAlias.hs view
@@ -126,7 +126,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)               _exprOintroCVarIntroMp =                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)               _lhsOlevOf =                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)@@ -442,7 +442,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   _bindAspectsIbindsNoTrfNmS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _bindAspectsIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -795,7 +795,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   _hdIbindsNoTrfNmS `Set.union` _tlIbindsNoTrfNmS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -901,7 +901,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1076,7 +1076,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)               _lhsObindsIntroCVarIntroMp =                   Map.singleton _lhsInm _cvi-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 75, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)               _lhsOcvarIntroExprMp =                   Map.singleton _lhsInm _cviExpr               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 111, column 33)@@ -1207,7 +1207,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1283,7 +1283,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1359,7 +1359,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1444,7 +1444,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1523,7 +1523,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   _bindsNoTrfNmS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1703,7 +1703,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   _hdIbindsNoTrfNmS `Set.union` _tlIbindsNoTrfNmS-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -1827,7 +1827,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)               _lhsObindsNoTrfNmS =                   Set.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)@@ -2142,6 +2142,7 @@       alternative Tup:          child tag            : {CTag}          visit 0:+            local levOf       : _             local cTrf        : _       alternative Let:          child categ          : {CBindCateg}@@ -2441,7 +2442,7 @@               _lhsOfvS :: FvS               _lhsOlevOf :: Int               _lhsOcTrf :: CExpr-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)               _levOf =                   cLevIntern               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)@@ -2512,6 +2513,9 @@               _lhsOfvS :: FvS               _lhsOlevOf :: Int               _lhsOcTrf :: CExpr+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              _levOf =+                  cLevModule               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)               _lhsOmbRepl =                   Nothing@@ -2523,7 +2527,7 @@                   Set.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)               _lhsOlevOf =-                  cLevModule+                  _levOf               -- self rule               _cTrf =                   CExpr_Tup tag_
src/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.hs view
@@ -177,7 +177,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)               _exprOintroCVarIntroMp =                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)               _lhsOlevOf =                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)@@ -613,7 +613,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _bindAspectsIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _bindAspectsIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -1103,7 +1103,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -1245,7 +1245,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -1496,7 +1496,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)               _lhsObindsIntroCVarIntroMp =                   Map.singleton _lhsInm _cvi-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 75, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)               _lhsOcvarIntroExprMp =                   Map.singleton _lhsInm _cviExpr               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)@@ -1714,7 +1714,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -1821,7 +1821,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -1936,7 +1936,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -2055,7 +2055,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -2176,7 +2176,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -2418,7 +2418,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -2578,7 +2578,7 @@               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)               _lhsObindsIntroCVarIntroMp =                   Map.empty-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 72, column 36)+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)               _lhsOcvarIntroExprMp =                   Map.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 233, column 32)@@ -2933,6 +2933,7 @@       alternative Tup:          child tag            : {CTag}          visit 0:+            local levOf       : _             local isTopApp    : {Bool}             local isTopTup    : _             local whatBelow   : _@@ -3464,7 +3465,7 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)               _lhsOmbVar =                   Nothing-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)               _levOf =                   cLevIntern               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)@@ -3619,6 +3620,9 @@               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)               _lhsOmbVar =                   Nothing+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)+              _levOf =+                  cLevModule               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)               _isTopApp =                   True@@ -3642,7 +3646,7 @@                   Set.empty               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)               _lhsOlevOf =-                  cLevModule+                  _levOf               -- self rule               _cTrf =                   CExpr_Tup tag_
src/UHC/Light/Compiler/CoreRun.hs view
@@ -5,10 +5,18 @@ , Mod (..), SExp (..), Exp (..), Alt (..), Pat (..) , CRArray, CRMArray, emptyCRArray, mkCRArray, craLength, craAssocs, craAssocs', craReverseAssocs' , Bind-, unit+, dbgs, dbg+, mbSExpr+, exp2sexp , RRef (..), noRRef+, rrefToDis , Ref2Nm-, Nm2RefMp, nm2RefMpInverse, ref2nmEmpty, ref2nmUnion) where+, Nm2RefMp, nm2RefMpInverse, ref2nmEmpty, ref2nmUnion+, mkExp, mkVar, mkVar', mkInt, mkInt', mkChar, mkChar', mkString, mkString'+, mkDbg, mkDbg'+, mkApp, mkApp', mkTup, mkTup', mkEval, mkTail, mkCase, mkLam, mkLam', mkLet, mkLet', mkFFI, mkFFI'+, mkMod, mkMod'+, mkInteger, mkInteger') where  import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Base.Target@@ -21,7 +29,7 @@ import qualified Data.Vector as V import qualified Data.Vector.Mutable as MV import Control.Applicative-import UHC.Light.Compiler.CoreRun.Prim (RunPrim)+import UHC.Light.Compiler.CoreRun.Prim import UHC.Light.Compiler.Foreign  @@ -45,6 +53,7 @@   + -- | Fast access sequence type CRArray x = V.Vector x type CRMArray x = MV.IOVector x@@ -95,10 +104,29 @@  -- | Equivalent of '()' unit :: Exp-unit = Exp_Tup CTagRec emptyCRArray+unit = Exp_Tup 0 emptyCRArray   +-- | Debug info is embedded in SExp+dbgs = SExp_Dbg+dbg  = Exp_SExp . dbgs++++-- | Is exp a SExp?+mbSExpr :: Exp -> Maybe SExp+mbSExpr (Exp_SExp s) = Just s+mbSExpr _            = Nothing++++-- | Convert to SExp+exp2sexp :: Exp -> SExp+exp2sexp = maybe (dbgs "CoreRun.exp2sexp") id . mbSExpr+++ -- | Identifier references for use during running CoreRun data RRef   -- | global reference to module and its entry@@ -106,11 +134,16 @@       { rrefMod         :: !Int     -- ^ module       , rrefEntry       :: !Int     -- ^ entry inside module       }-  -- | local reference to on stack value+  -- | local reference to on stack value, not interpreted during running   | RRef_Loc-      { rrefLev         :: !Int     -- ^ level+      { rrefLev         :: !Int     -- ^ level when used statically       , rrefEntry       :: !Int     -- ^ entry inside level       }+  -- | local reference to on stack value, but measured relative to level of from where is referenced, used at runtime+  | RRef_LDf+      { rrefLevDiff		:: !Int     -- ^ offset/difference in levels when used at runtime+      , rrefEntry       :: !Int     -- ^ entry inside level+      }   -- | tag of memory/constructor node referred to by other ref (not yet used)   | RRef_Tag       { rrefRef         :: !RRef    -- ^ of what this is the tag@@ -133,6 +166,14 @@   +-- | Convert to RRef_Loc to RRef_LDf, i.e. absolute level to relative (to current) level+rrefToDis curlev r@(RRef_Loc l o         ) = RRef_LDf (curlev - l) o+rrefToDis curlev r@(RRef_Fld {rrefRef=r'}) = r {rrefRef = rrefToDis curlev r'}+rrefToDis curlev r@(RRef_Tag {rrefRef=r'}) = r {rrefRef = rrefToDis curlev r'}+rrefToDis _      r                         = r+++ -- | RRef to HsName mapping for use during running when a more informative name is required. -- The representation is lazily via function type Ref2Nm = RRef -> Maybe HsName@@ -157,24 +198,193 @@ ref2nmUnion :: Ref2Nm -> Ref2Nm -> Ref2Nm ref2nmUnion m1 m2 = \r -> m1 r <|> m2 r +++-- **************************************+-- Construction: constants as SExp or Exp+-- **************************************++-- | Lift 'SExp' into 'Exp'+mkExp :: SExp -> Exp+mkExp = Exp_SExp++-- | Var ref as 'SExp'+mkVar' :: RRef -> SExp+mkVar' = SExp_Var++-- | Var ref as 'Exp'+mkVar :: RRef -> Exp+mkVar = mkExp . mkVar'++-- | Int constant as 'SExp'+mkInt' :: Int -> SExp+mkInt' = SExp_Int++-- | Int constant as 'Exp'+mkInt :: Int -> Exp+mkInt = mkExp . mkInt'++-- | Char constant as 'SExp'+mkChar' :: Char -> SExp+mkChar' = SExp_Char++-- | Char constant as 'Exp'+mkChar :: Char -> Exp+mkChar = mkExp . mkChar'++-- | String constant as 'SExp'+mkString' :: String -> SExp+mkString' = SExp_String++-- | String constant as 'Exp'+mkString :: String -> Exp+mkString = mkExp . mkString'++++-- | Debug info as 'SExp', will make an interpreter stop with displaying the message+mkDbg' :: String -> SExp+mkDbg' = dbgs++-- | Debug info as 'Exp'+mkDbg :: String -> Exp+mkDbg = dbg++++-- | Integer constant as 'SExp'+mkInteger' :: Integer -> SExp+mkInteger' = SExp_Integer++-- | Integer constant as 'Exp'+mkInteger :: Integer -> Exp+mkInteger = mkExp . mkInteger'++++-- **************************************+-- Construction: Exp+-- **************************************++-- | Application+mkApp' :: Exp -> CRArray SExp -> Exp+mkApp' = Exp_App++-- | Application+mkApp :: Exp -> [SExp] -> Exp+mkApp f as = mkApp' f (mkCRArray as)++-- | Tuple, Node+mkTup' :: Int -> CRArray SExp -> Exp+mkTup' = Exp_Tup++-- | Tuple, Node+mkTup :: Int -> [SExp] -> Exp+mkTup t as = mkTup' t (mkCRArray as)++-- | Force evaluation+mkEval :: Exp -> Exp+mkEval = Exp_Force++-- | Set tail call context+mkTail :: Exp -> Exp+mkTail = Exp_Tail++-- | Case+mkCase :: SExp -> [Exp] -> Exp+mkCase scrut alts = Exp_Case scrut $ mkCRArray $ map (Alt_Alt ref2nmEmpty) alts++-- | Lambda+mkLam'+  :: Maybe HsName	-- ^ a name for this lambda, to be used for pretty printing+     -> Int			-- ^ nr of arguments, 0 encodes a thunk/CAF+     -> Int			-- ^ total stack size, including arguments, locals, expression calculation+     -> Exp 		-- ^ body+     -> Exp+mkLam' mbNm nrArgs stackDepth body = Exp_Lam mbNm nrArgs stackDepth ref2nmEmpty body++-- | Lambda+mkLam+  :: Int	-- ^ nr of arguments, 0 encodes a thunk/CAF+     -> Int	-- ^ total stack size, including arguments, locals, expression calculation+     -> Exp -- ^ body+     -> Exp+mkLam nrArgs stackDepth body = mkLam' Nothing nrArgs stackDepth body++-- | Let+mkLet'+  :: Int				-- ^ stackoffset to place bound value+     -> CRArray Exp		-- ^ bound terms+     -> Exp				-- ^ body+     -> Exp+mkLet' firstoff bs b = Exp_Let firstoff ref2nmEmpty bs b++-- | Let+mkLet+  :: Int				-- ^ stackoffset to place bound value+     -> [Exp]			-- ^ bound terms+     -> Exp				-- ^ body+     -> Exp+mkLet firstoff bs b = mkLet' firstoff (mkCRArray bs) b++-- | FFI+mkFFI'+  :: String				-- ^ name of foreign entity, if unknown results in debug expr+     -> CRArray SExp	-- ^ args+     -> Exp+mkFFI' fe as = case Map.lookup fe allRunPrimMp of+  Just p -> Exp_FFI p as+  _      -> dbg $ "CoreRun.mkFFI: " ++ fe++-- | FFI+mkFFI+  :: String				-- ^ name of foreign entity, if unknown results in debug expr+     -> [SExp]			-- ^ args+     -> Exp+mkFFI fe as = mkFFI' fe (mkCRArray as)++++-- **************************************+-- Construction: Top level module+-- **************************************++-- | Module+mkMod'+  :: HsName				-- ^ module name+     -> Int				-- ^ module number+     -> Int				-- ^ total stack size, including globals of module, their setup (see semantics), and the main startup part kicking of evaluation+     -> CRArray Bind	-- ^ bound expressions+     -> Exp				-- ^ body of main+     -> Mod+mkMod' modNm modNr stkDepth binds body = Mod_Mod ref2nmEmpty modNm modNr stkDepth binds body++-- | Module+mkMod+  :: HsName				-- ^ module name+     -> Int				-- ^ module number+     -> Int				-- ^ total stack size, including globals of module, their setup (see semantics), and the main startup part kicking of evaluation+     -> [Bind]			-- ^ bound expressions+     -> Exp				-- ^ body of main+     -> Mod+mkMod modNm modNr stkDepth binds body = mkMod' modNm modNr stkDepth (mkCRArray binds) body+ -- Alt ----------------------------------------------------------data Alt = Alt_Alt {ref2nm_Alt_Alt :: !(Ref2Nm),pat_Alt_Alt :: !(Pat),expr_Alt_Alt :: !(Exp)}+data Alt = Alt_Alt {ref2nm_Alt_Alt :: !(Ref2Nm),expr_Alt_Alt :: !(Exp)} -- Exp --------------------------------------------------------- data Exp = Exp_SExp {sexpr_Exp_SExp :: !(SExp)}-         | Exp_Tup {tag_Exp_Tup :: !(CTag),args_Exp_Tup :: !((CRArray Exp))}-         | Exp_Let {lev_Exp_Let :: !(Int),firstOff_Exp_Let :: !(Int),ref2nm_Exp_Let :: !(Ref2Nm),binds_Exp_Let :: !((CRArray Bind)),body_Exp_Let :: !(Exp)}-         | Exp_App {func_Exp_App :: !(Exp),args_Exp_App :: !((CRArray Exp))}-         | Exp_Lam {mbNm_Exp_Lam :: !((Maybe HsName)),lev_Exp_Lam :: !(Int),nrArgs_Exp_Lam :: !(Int),nrBinds_Exp_Lam :: !(Int),stkDepth_Exp_Lam :: !(Int),ref2nm_Exp_Lam :: !(Ref2Nm),body_Exp_Lam :: !(Exp)}+         | Exp_Tup {tag_Exp_Tup :: !(Int),args_Exp_Tup :: !((CRArray SExp))}+         | Exp_Let {firstOff_Exp_Let :: !(Int),ref2nm_Exp_Let :: !(Ref2Nm),binds_Exp_Let :: !((CRArray Bind)),body_Exp_Let :: !(Exp)}+         | Exp_App {func_Exp_App :: !(Exp),args_Exp_App :: !((CRArray SExp))}+         | Exp_Lam {mbNm_Exp_Lam :: !((Maybe HsName)),nrArgs_Exp_Lam :: !(Int),stkDepth_Exp_Lam :: !(Int),ref2nm_Exp_Lam :: !(Ref2Nm),body_Exp_Lam :: !(Exp)}          | Exp_Force {expr_Exp_Force :: !(Exp)}-         | Exp_RetCase {nrBinds_Exp_RetCase :: !(Int),expr_Exp_RetCase :: !(Exp)}          | Exp_Tail {expr_Exp_Tail :: !(Exp)}          | Exp_Case {expr_Exp_Case :: !(SExp),alts_Exp_Case :: !((CRArray Alt))}-         | Exp_FFI {prim_Exp_FFI :: !(RunPrim),args_Exp_FFI :: !((CRArray Exp))}-         | Exp_Dbg {msg_Exp_Dbg :: !(String)}+         | Exp_FFI {prim_Exp_FFI :: !(RunPrim),args_Exp_FFI :: !((CRArray SExp))} -- Mod --------------------------------------------------------- data Mod = Mod_Mod {ref2nm_Mod_Mod :: !(Ref2Nm),moduleNm_Mod_Mod :: !(HsName),moduleNr_Mod_Mod :: !(Int),stkDepth_Mod_Mod :: !(Int),binds_Mod_Mod :: !((CRArray Bind)),body_Mod_Mod :: !(Exp)} -- Pat ----------------------------------------------------------data Pat = Pat_Con {tag_Pat_Con :: !(CTag)}+data Pat = Pat_Con {tag_Pat_Con :: !(Int)}          | Pat_BoolExpr {expr_Pat_BoolExpr :: !(Exp)} -- SExp -------------------------------------------------------- data SExp = SExp_Var {ref_SExp_Var :: !(RRef)}@@ -182,3 +392,4 @@           | SExp_Char {char_SExp_Char :: !(Char)}           | SExp_String {str_SExp_String :: !(String)}           | SExp_Integer {integer_SExp_Integer :: !(Integer)}+          | SExp_Dbg {msg_SExp_Dbg :: !(String)}
+ src/UHC/Light/Compiler/CoreRun/API.hs view
@@ -0,0 +1,79 @@+{-# LINE 2 "src/ehc/CoreRun/API.chs" #-}++-- | CoreRun Public API+--+-- Intended for constructing basic CoreRun Programs.+--+-- CoreRun is a simplified Core intended to be used for direct interpretation/execution.+-- For semantics, see TBD+--++module UHC.Light.Compiler.CoreRun.API+  (+  -- * Core AST+  -- | The datatypes making up a CoreRun program.+    Mod+  , Exp+  , SExp+  , Alt+  -- , Pat+  , Bind++  -- * Utilities+  , CRArray+  , mkCRArray++  -- * Construction functions+  , mkExp++  , mkVar, mkVar'+  , mkInt, mkInt'+  , mkChar, mkChar'+  , mkInteger, mkInteger'+  , mkString, mkString'+  , mkDbg, mkDbg'++  , mkApp, mkApp'+  , mkTup, mkTup'+  , mkEval+  , mkTail+  , mkCase+  , mkLam, mkLam'+  , mkLet, mkLet'+  , mkFFI, mkFFI'++  , mkMod, mkMod'++  -- * Parsing+  , parseModFromString++  -- * Running+  , runCoreRunIO+  )+  where++import UHC.Light.Compiler.Base.API+import UHC.Light.Compiler.CoreRun as CR+import UHC.Light.Compiler.CoreRun.Parser as CR+import UHC.Light.Compiler.CoreRun.Run as CR+import UHC.Light.Compiler.CoreRun.Run.Val as CR+import UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk as CR++import System.IO+import Control.Exception++-- **************************************+-- Running+-- **************************************++-- | Run CoreRun in IO+-- TBD: fix dependence on whole program linked+runCoreRunIO+  :: EHCOpts		-- ^ options, e.g. for turning on tracing (if supported by runner)+     -> Mod			-- ^ the module to run+     -> IO (Either Err RVal)+runCoreRunIO opts mod = do+    catch+      (runCoreRun opts [] mod $ cmodRun opts mod)+      (\(e :: SomeException) -> hFlush stdout >> (return $ Left $ strMsg $ "cpRunCoreRun: " ++ show e))+
+ src/UHC/Light/Compiler/CoreRun/Parser.hs view
@@ -0,0 +1,70 @@+module UHC.Light.Compiler.CoreRun.Parser+( parseModFromString )+where+import UHC.Light.Compiler.Base.Common+import UHC.Light.Compiler.Base.HsName.Builtin+import UHC.Util.ScanUtils+import UHC.Light.Compiler.Scanner.Common+import UHC.Light.Compiler.Scanner.Scanner+import UU.Parsing as P+import UHC.Util.ParseUtils+import UHC.Light.Compiler.Base.Parser+import Data.Maybe+import UHC.Light.Compiler.CoreRun++{-# LINE 29 "src/ehc/CoreRun/Parser.chs" #-}+-- | Parses a module. TBD: integration with other parser utils from EHC driver...+parseModFromString :: String -> Either [String] Mod+parseModFromString str = case parseToResMsgs pMod $ scan corerunScanOpts (initPos $ take 80 str) str of+    (res, []) -> Right res+    (_, errs) -> Left $ map show errs++{-# LINE 41 "src/ehc/CoreRun/Parser.chs" #-}+type CRParser hp = PlainParser Token hp++{-# LINE 45 "src/ehc/CoreRun/Parser.chs" #-}+-- | Parse module 'Mod'+pMod :: CRParser Mod+pMod+  = (\nm nr sz main bs -> mkMod nm nr sz bs main)+    <$  pMODULE <*> pMaybe (mkHNm "Main") id pDollNm <*> pInt <* pCOMMA <*> pInt <* pRARROW <*> pExp <* pSEMI+    <*> pList (pExp <* pSEMI)++-- | Parse simple expression 'SExp'+pSExp :: CRParser SExp+pSExp+  =    mkInt' <$> pInt+  <|> (mkChar' . head) <$> pChar+  <|> mkString' <$> pString+  <|> mkVar' <$> pRRef++-- | Parse expression 'Exp'+pExp :: CRParser Exp+pExp = pE+  where pB =   mkExp <$> pSExp+           <|> pParens pE+           <|> mkEval <$ pKeyTk "eval" <*> pB+           <|> mkTail <$ pKeyTk "tail" <*> pB+        pE =   pB+           <|> (   mkApp <$ pKeyTk "app"   <*> pB+               <|> mkTup <$ pKeyTk "alloc" <*> pInt+               <|> mkFFI <$ pKeyTk "ffi"   <*> pString+               ) <*> pParens (pListSep pCOMMA pSExp)+           <|> dbg <$ pKeyTk "dbg" <*> pString+           <|> mkCase <$ pCASE <*> pSExp <* pOF <*> pList1 (pRARROW *> pE <* pSEMI)+           <|> mkLet  <$ pLET  <*> pInt  <* pRARROW <*> pList1 (pE <* pSEMI) <* pIN <*> pE+           <|> mkLam  <$ pLAM  <*> pInt  <* pCOMMA <*> pInt <* pRARROW <*> pE++-- | Parse reference RRef to something+pRRef :: CRParser RRef+pRRef+  = (\b sufs -> foldl (flip ($)) b sufs) <$> pB <*> pList_ng pS+  where pB = (   RRef_LDf <$ pKeyTk "d"+             <|> RRef_Glb <$ pKeyTk "g"+             <|> RRef_Loc <$ pKeyTk "l"+             ) <* pDOT <*> pInt <* pDOT <*> pInt+        pS = pDOT+              *> (   RRef_Tag <$ pKeyTk "tag"+                 <|> flip RRef_Fld <$> pInt+                 )+
src/UHC/Light/Compiler/CoreRun/Pretty.hs view
@@ -9,6 +9,7 @@ import UHC.Light.Compiler.Base.Target import UHC.Light.Compiler.Ty import UHC.Light.Compiler.CoreRun+import UHC.Light.Compiler.CoreRun.Prim import UHC.Light.Compiler.Ty.Pretty import qualified Data.Vector as V import UHC.Light.Compiler.Foreign@@ -26,12 +27,13 @@ -- | Not all AST datatypes are expressed as AG, inherited info therefore implemented manually data InhPP   = InhPP-      { r2nInhPP	:: Ref2Nm-      , optsInhPP	:: EHCOpts+      { r2nInhPP	:: Ref2Nm		-- ^ ref to name mapping+      , optsInhPP	:: EHCOpts		-- ^ global options+      , letoffInhPP	:: Int			-- ^ offset of first binding for next let       }  mkEmptyInhPP :: EHCOpts -> InhPP-mkEmptyInhPP opts = InhPP ref2nmEmpty opts+mkEmptyInhPP opts = InhPP ref2nmEmpty opts 0  -- | Add new r2nAdd :: Ref2Nm -> InhPP -> InhPP@@ -39,12 +41,28 @@   | CoreOpt_RunPPNames `elem` ehcOptCoreOpts opts = i {r2nInhPP = ref2nmUnion r2n r2n'}   | otherwise                                     = i +-- | Update let offset+letoffUpd :: (Int -> Int) -> InhPP -> InhPP+letoffUpd upd i@(InhPP {letoffInhPP=o}) = i {letoffInhPP = upd o}+ -- | PP using InhPP ppRRef :: InhPP -> RRef -> PP_Doc ppRRef inhpp r = ppMbPost ppCurly (r2nInhPP inhpp r) r   +-- | Print extra/verbose info in cmt+ppCmtExtra' :: (PP_Doc -> PP_Doc -> PP_Doc) -> InhPP -> PP_Doc -> (PP_Doc -> PP_Doc)+ppCmtExtra' align (InhPP {optsInhPP=opts}) x+  | CoreOpt_RunPPVerbose `elem` ehcOptCoreOpts opts = (ppCmt x `align`)+  | otherwise                                       = id++-- | Print extra/verbose info in cmt+ppCmtExtra :: InhPP -> PP_Doc -> (PP_Doc -> PP_Doc)+ppCmtExtra = ppCmtExtra' (>#<)+++ ppMod'' :: InhPP -> Mod -> PP_Doc ppMod'' inhpp x = pp_Syn_Mod $ wrap_Mod (sem_Mod x) (Inh_Mod {inhpp_Inh_Mod=inhpp}) @@ -102,16 +120,20 @@   instance PP RRef where-  pp (RRef_Glb m e) = "#g" >|< ppDots [m,e]-  pp (RRef_Loc l e) = "#l" >|< ppDots [l,e]-  pp (RRef_Tag r  ) = ppDots [pp r, pp "tg"]+  pp (RRef_Glb m e) = ppDots [pp "g", pp m, pp e]+  pp (RRef_Loc l e) = ppDots [pp "l", pp l, pp e]+  pp (RRef_LDf l e) = ppDots [pp "d", pp l, pp e]+  pp (RRef_Tag r  ) = ppDots [pp r, pp "tag"]   pp (RRef_Fld r e) = ppDots [pp r, pp e]-  pp (RRef_Dbg n  ) = "##" >|< n+  pp (RRef_Dbg n  ) = "dbg" >#< pp ("RRef_Dbg: " ++ show n)				-- intentionally the same PP as Exp_Dbg so it will parse to Exp_Dbg   +ppBinds''' :: InhPP -> (Int -> PP_Doc) -> Int -> AssocL Int PP_Doc -> PP_Doc+ppBinds''' inhpp mkr off bs = vlist [ ppSemi $ ppCmtExtra inhpp ((mkr $ off+i)) e | (i,e) <- bs ]+ ppBinds'' :: InhPP -> (Int -> RRef) -> Int -> CRArray Bind -> PP_Doc-ppBinds'' inhpp mkr off bs = vlist [ (ppRRef inhpp $ mkr $ off+i) >|< ":" >#< ppExp'' inhpp e | (i,e) <- craAssocs bs ]+ppBinds'' inhpp mkr off bs = ppBinds''' inhpp (ppRRef inhpp . mkr) off [ (i, ppExp'' inhpp e) | (i,e) <- craAssocs bs ]  -- Alt --------------------------------------------------------- {-@@ -123,7 +145,6 @@    alternatives:       alternative Alt:          child ref2nm         : {Ref2Nm}-         child pat            : Pat           child expr           : Exp           visit 0:             local inhpp       : _@@ -131,8 +152,8 @@ -- cata sem_Alt :: Alt ->            T_Alt-sem_Alt (Alt_Alt _ref2nm _pat _expr) =-    (sem_Alt_Alt _ref2nm (sem_Pat _pat) (sem_Exp _expr))+sem_Alt (Alt_Alt _ref2nm _expr) =+    (sem_Alt_Alt _ref2nm (sem_Exp _expr)) -- semantic domain type T_Alt = InhPP ->              ( PP_Doc)@@ -145,24 +166,19 @@     (let ( _lhsOpp) = sem _lhsIinhpp      in  (Syn_Alt _lhsOpp)) sem_Alt_Alt :: Ref2Nm ->-               T_Pat ->                T_Exp ->                T_Alt-sem_Alt_Alt ref2nm_ pat_ expr_ =+sem_Alt_Alt ref2nm_ expr_ =     (\ _lhsIinhpp ->          (case (r2nAdd ref2nm_ _lhsIinhpp) of           { _inhpp ->           (case (_inhpp) of            { _exprOinhpp ->-           (case (_inhpp) of-            { _patOinhpp ->-            (case (expr_ _exprOinhpp) of-             { ( _exprIpp) ->-                 (case (pat_ _patOinhpp) of-                  { ( _patIpp) ->-                      (case (_patIpp >#< "->" >#< _exprIpp) of-                       { _lhsOpp ->-                       ( _lhsOpp) }) }) }) }) }) }))+           (case (expr_ _exprOinhpp) of+            { ( _exprIpp) ->+                (case ("->" >#< _exprIpp) of+                 { _lhsOpp ->+                 ( _lhsOpp) }) }) }) })) -- Exp --------------------------------------------------------- {-    visit 0:@@ -174,10 +190,9 @@       alternative SExp:          child sexpr          : SExp        alternative Tup:-         child tag            : {CTag}-         child args           : {CRArray Exp}+         child tag            : {Int}+         child args           : {CRArray SExp}       alternative Let:-         child lev            : {Int}          child firstOff       : {Int}          child ref2nm         : {Ref2Nm}          child binds          : {CRArray Bind}@@ -186,12 +201,10 @@             local inhpp       : _       alternative App:          child func           : Exp -         child args           : {CRArray Exp}+         child args           : {CRArray SExp}       alternative Lam:          child mbNm           : {Maybe HsName}-         child lev            : {Int}          child nrArgs         : {Int}-         child nrBinds        : {Int}          child stkDepth       : {Int}          child ref2nm         : {Ref2Nm}          child body           : Exp @@ -199,9 +212,6 @@             local inhpp       : _       alternative Force:          child expr           : Exp -      alternative RetCase:-         child nrBinds        : {Int}-         child expr           : Exp        alternative Tail:          child expr           : Exp        alternative Case:@@ -209,9 +219,7 @@          child alts           : {CRArray Alt}       alternative FFI:          child prim           : {RunPrim}-         child args           : {CRArray Exp}-      alternative Dbg:-         child msg            : {String}+         child args           : {CRArray SExp} -} -- cata sem_Exp :: Exp ->@@ -220,24 +228,20 @@     (sem_Exp_SExp (sem_SExp _sexpr)) sem_Exp (Exp_Tup _tag _args) =     (sem_Exp_Tup _tag _args)-sem_Exp (Exp_Let _lev _firstOff _ref2nm _binds _body) =-    (sem_Exp_Let _lev _firstOff _ref2nm _binds (sem_Exp _body))+sem_Exp (Exp_Let _firstOff _ref2nm _binds _body) =+    (sem_Exp_Let _firstOff _ref2nm _binds (sem_Exp _body)) sem_Exp (Exp_App _func _args) =     (sem_Exp_App (sem_Exp _func) _args)-sem_Exp (Exp_Lam _mbNm _lev _nrArgs _nrBinds _stkDepth _ref2nm _body) =-    (sem_Exp_Lam _mbNm _lev _nrArgs _nrBinds _stkDepth _ref2nm (sem_Exp _body))+sem_Exp (Exp_Lam _mbNm _nrArgs _stkDepth _ref2nm _body) =+    (sem_Exp_Lam _mbNm _nrArgs _stkDepth _ref2nm (sem_Exp _body)) sem_Exp (Exp_Force _expr) =     (sem_Exp_Force (sem_Exp _expr))-sem_Exp (Exp_RetCase _nrBinds _expr) =-    (sem_Exp_RetCase _nrBinds (sem_Exp _expr)) sem_Exp (Exp_Tail _expr) =     (sem_Exp_Tail (sem_Exp _expr)) sem_Exp (Exp_Case _expr _alts) =     (sem_Exp_Case (sem_SExp _expr) _alts) sem_Exp (Exp_FFI _prim _args) =     (sem_Exp_FFI _prim _args)-sem_Exp (Exp_Dbg _msg) =-    (sem_Exp_Dbg _msg) -- semantic domain type T_Exp = InhPP ->              ( PP_Doc)@@ -260,33 +264,32 @@                (case (_sexprIpp) of                 { _lhsOpp ->                 ( _lhsOpp) }) }) }))-sem_Exp_Tup :: CTag ->-               (CRArray Exp) ->+sem_Exp_Tup :: Int ->+               (CRArray SExp) ->                T_Exp sem_Exp_Tup tag_ args_ =     (\ _lhsIinhpp ->-         (case ("alloc" >#< ctagTag tag_ >|< ppParensCommas (map (ppExp'' _lhsIinhpp) $ V.toList args_)) of+         (case ("alloc" >#< tag_ >|< ppParensCommas (map (ppSExp'' _lhsIinhpp) $ V.toList args_)) of           { _lhsOpp ->           ( _lhsOpp) })) sem_Exp_Let :: Int ->-               Int ->                Ref2Nm ->                (CRArray Bind) ->                T_Exp ->                T_Exp-sem_Exp_Let lev_ firstOff_ ref2nm_ binds_ body_ =+sem_Exp_Let firstOff_ ref2nm_ binds_ body_ =     (\ _lhsIinhpp ->-         (case (r2nAdd ref2nm_ _lhsIinhpp) of+         (case (letoffUpd (+ V.length binds_) $ r2nAdd ref2nm_ _lhsIinhpp) of           { _inhpp ->           (case (_inhpp) of            { _bodyOinhpp ->            (case (body_ _bodyOinhpp) of             { ( _bodyIpp) ->-                (case ("let" >#< ppBinds'' _inhpp (RRef_Loc lev_) firstOff_ binds_ >#< "in" >-< _bodyIpp) of+                (case ("let" >#< letoffInhPP _lhsIinhpp >#< "->" >#< ppBinds'' _inhpp (RRef_LDf 0) (letoffInhPP _lhsIinhpp) binds_ >#< "in" >-< _bodyIpp) of                  { _lhsOpp ->                  ( _lhsOpp) }) }) }) })) sem_Exp_App :: T_Exp ->-               (CRArray Exp) ->+               (CRArray SExp) ->                T_Exp sem_Exp_App func_ args_ =     (\ _lhsIinhpp ->@@ -294,26 +297,24 @@           { _funcOinhpp ->           (case (func_ _funcOinhpp) of            { ( _funcIpp) ->-               (case ("app" >#< ppParens _funcIpp >|< ppParensCommas (map (ppExp'' _lhsIinhpp) $ V.toList args_)) of+               (case ("app" >#< ppParens _funcIpp >|< ppParensCommas (map (ppSExp'' _lhsIinhpp) $ V.toList args_)) of                 { _lhsOpp ->                 ( _lhsOpp) }) }) })) sem_Exp_Lam :: (Maybe HsName) ->                Int ->                Int ->-               Int ->-               Int ->                Ref2Nm ->                T_Exp ->                T_Exp-sem_Exp_Lam mbNm_ lev_ nrArgs_ nrBinds_ stkDepth_ ref2nm_ body_ =+sem_Exp_Lam mbNm_ nrArgs_ stkDepth_ ref2nm_ body_ =     (\ _lhsIinhpp ->-         (case (r2nAdd ref2nm_ _lhsIinhpp) of+         (case (letoffUpd (const nrArgs_) $ r2nAdd ref2nm_ _lhsIinhpp) of           { _inhpp ->           (case (_inhpp) of            { _bodyOinhpp ->            (case (body_ _bodyOinhpp) of             { ( _bodyIpp) ->-                (case ("\\" >|< "@" >|< lev_ >#< ppCommas [if nrArgs_ > 0 then pp nrArgs_ else pp "thk", pp nrBinds_, pp stkDepth_] >#< "->" >#< _bodyIpp) of+                (case ("\\" >|<                        ppCommas [                                         pp nrArgs_,                    pp stkDepth_] >#< "->" >#< _bodyIpp) of                  { _lhsOpp ->                  ( _lhsOpp) }) }) }) })) sem_Exp_Force :: T_Exp ->@@ -327,18 +328,6 @@                (case ("eval" >|< ppParens _exprIpp) of                 { _lhsOpp ->                 ( _lhsOpp) }) }) }))-sem_Exp_RetCase :: Int ->-                   T_Exp ->-                   T_Exp-sem_Exp_RetCase nrBinds_ expr_ =-    (\ _lhsIinhpp ->-         (case (_lhsIinhpp) of-          { _exprOinhpp ->-          (case (expr_ _exprOinhpp) of-           { ( _exprIpp) ->-               (case ("retcase" >|< nrBinds_ >|< ppParens _exprIpp) of-                { _lhsOpp ->-                ( _lhsOpp) }) }) })) sem_Exp_Tail :: T_Exp ->                 T_Exp sem_Exp_Tail expr_ =@@ -359,23 +348,15 @@           { _exprOinhpp ->           (case (expr_ _exprOinhpp) of            { ( _exprIpp) ->-               (case ("case" >#< _exprIpp >#< "of"-                      >-< indent 1 (vlist $ map (ppAlt'' _lhsIinhpp) $ V.toList alts_)) of+               (case ("case" >#< _exprIpp >#< "of" >-< indent 1 (ppBinds''' _lhsIinhpp pp 0 $ zip [0..] $ map (ppAlt'' _lhsIinhpp) $ V.toList alts_)) of                 { _lhsOpp ->                 ( _lhsOpp) }) }) })) sem_Exp_FFI :: RunPrim ->-               (CRArray Exp) ->+               (CRArray SExp) ->                T_Exp sem_Exp_FFI prim_ args_ =     (\ _lhsIinhpp ->-         (case ("ffi" >#< show prim_ >|< ppParensCommas (map (ppExp'' _lhsIinhpp) $ V.toList args_)) of-          { _lhsOpp ->-          ( _lhsOpp) }))-sem_Exp_Dbg :: String ->-               T_Exp-sem_Exp_Dbg msg_ =-    (\ _lhsIinhpp ->-         (case (ppCurly $ "dbg:" >#< msg_) of+         (case ("ffi" >#< show (showRunPrim prim_) >|< ppParensCommas (map (ppSExp'' _lhsIinhpp) $ V.toList args_)) of           { _lhsOpp ->           ( _lhsOpp) })) -- Mod ---------------------------------------------------------@@ -427,7 +408,7 @@            { _bodyOinhpp ->            (case (body_ _bodyOinhpp) of             { ( _bodyIpp) ->-                (case ("module" >#< moduleNm_ >#< ppCommas [moduleNr_, stkDepth_] >|< ":" >#< _bodyIpp+                (case ((ppSemi $ "module" >#< moduleNm_ >#< ppCommas [moduleNr_, stkDepth_] >#< "->" >#< _bodyIpp)                        >-< ppBinds'' _inhpp (RRef_Glb moduleNr_) 0 binds_) of                  { _lhsOpp ->                  ( _lhsOpp) }) }) }) }))@@ -440,7 +421,7 @@          pp                   : PP_Doc    alternatives:       alternative Con:-         child tag            : {CTag}+         child tag            : {Int}       alternative BoolExpr:          child expr           : Exp  -}@@ -454,11 +435,11 @@ -- semantic domain type T_Pat = InhPP ->              ( PP_Doc)-sem_Pat_Con :: CTag ->+sem_Pat_Con :: Int ->                T_Pat sem_Pat_Con tag_ =     (\ _lhsIinhpp ->-         (case (pp $ ctagTag tag_) of+         (case (pp tag_) of           { _lhsOpp ->           ( _lhsOpp) })) sem_Pat_BoolExpr :: T_Exp ->@@ -490,6 +471,8 @@          child str            : {String}       alternative Integer:          child integer        : {Integer}+      alternative Dbg:+         child msg            : {String} -} -- cata sem_SExp :: SExp ->@@ -504,6 +487,8 @@     (sem_SExp_String _str) sem_SExp (SExp_Integer _integer) =     (sem_SExp_Integer _integer)+sem_SExp (SExp_Dbg _msg) =+    (sem_SExp_Dbg _msg) -- semantic domain type T_SExp = InhPP ->               ( PP_Doc)@@ -540,5 +525,12 @@ sem_SExp_Integer integer_ =     (\ _lhsIinhpp ->          (case (pp integer_) of+          { _lhsOpp ->+          ( _lhsOpp) }))+sem_SExp_Dbg :: String ->+                T_SExp+sem_SExp_Dbg msg_ =+    (\ _lhsIinhpp ->+         (case (ppParens $ "dbg" >#< show msg_) of           { _lhsOpp ->           ( _lhsOpp) }))
src/UHC/Light/Compiler/CoreRun/Run/Val.hs view
@@ -91,7 +91,7 @@       , rvalSLRef		:: !(IORef HpPtr)			-- ^ static link to enclosing stack frame       }   | RVal_Node-      { rvalTag			:: !Int						-- ^ node tag+      { rvalTag			:: !Int -- {-# UNPACK #-} !RVal		-- ^ node tag       , rvalNdVals		:: !RValMV					-- ^ fields       }   | RVal_App@@ -101,7 +101,7 @@   | RVal_Frame       { rvalRef2Nm		:: Ref2Nm					-- ^ ref to name mapping       , rvalSLRef		:: !(IORef HpPtr)			-- ^ immediately outer lexical level frame-      , rvalLev			:: !Int						-- ^ the lexical level this frame is on+      -- , rvalLev			:: !Int						-- ^ the lexical level this frame is on       , rvalFrVals		:: !RValMV					-- ^ actual frame values, either literals or pointers to heap locations (so we can update them, share them)       , rvalFrSP		:: !(IORef Int)				-- ^ top of expr stack embedded in higher end of top frame       }@@ -158,12 +158,12 @@                                        vpp <- lkptr p >>= maybe (return empty) (\v -> ppRVal' lkptr v >>= \vpp -> return $ " -> " >|< vpp)                                        return $ "*"  >|< p >|< vpp     RVal_Fwd   			p    		-> return $ "f*" >|< p-    RVal_Frame 			_ slref lv vs spref -> do+    RVal_Frame 			_ slref {- lv -} vs spref -> do                                        sl <- readIORef slref                                        sp <- readIORef spref                                        vl <- mvecToList vs                                        vlpp <- forM (zip [0..(sp-1)] vl) $ \(i,v) -> ppRVal' lkptr v >>= \vpp -> return $ i >|< ":" >#< vpp-                                       return $ (ppBracketsCommas $ ["sl=" >|< sl, "lev=" >|< lv, "sz=" >|< MV.length vs, "sp=" >|< sp])+                                       return $ (ppBracketsCommas $ ["sl=" >|< sl, {- "lev=" >|< lv, -} "sz=" >|< MV.length vs, "sp=" >|< sp])                                                 >-< vlist vlpp     RVal_BlackHole  				-> dfltpp "Hole"     RVal_None       				-> dfltpp "None"@@ -634,6 +634,7 @@     RRef_Glb m e -> do         modFrame <- heapGetM (renvGlobals env V.! m)         liftIO $ MV.read (rvalFrVals modFrame) e+{-     RRef_Loc l o -> do         topfrp <- renvTopFrameM         topfr <- heapGetM topfrp@@ -648,15 +649,34 @@           heapGetM sl >>= access         access v                                                        =           err $ "CoreRun.Run.Val.ref2valM.RRef_Loc.access:" >#< r >#< "in" >#< v+-}+    RRef_LDf ld o -> do+        topfrp <- renvTopFrameM+        topfr <- heapGetM topfrp+        access ld topfr+      where+        access 0 (RVal_Frame {rvalFrVals=vs}) =+          liftIO $ MV.read vs o+        access ld (RVal_Frame {rvalSLRef=slref}) = do+          sl <- liftIO $ readIORef slref+          fr <- heapGetM sl+          access (ld-1) fr+        access _ v =+          err $ "CoreRun.Run.Val.ref2valM.RRef_LDf.access:" >#< r >#< "in" >#< v     RRef_Fld r e -> do         v <- ptr2valM =<< ref2valM r -- >>= rsemDeref         case v of           RVal_Node _ vs -> liftIO $ MV.read vs e           _              -> err $ "CoreRun.Run.Val.ref2valM.RRef_Fld:" >#< e >#< "in" >#< v+    RRef_Tag r -> do+        v <- ptr2valM =<< ref2valM r -- >>= rsemDeref+        case v of+          RVal_Node t _ -> return $ RVal_Int t+          _             -> err $ "CoreRun.Run.Val.ref2valM.RRef_Tag:" >#< v     _ -> err $ "CoreRun.Run.Val.ref2valM.r:" >#< r {-# INLINE ref2valM #-} -{-# LINE 727 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 747 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Frame holding locals indexed by RRef_Loc type RValFrame = HpPtr		-- points to heap to a RVal_Frame @@ -685,7 +705,7 @@   rtst <- newIORef []   return $ RValEnv V.empty st tp hp False False rtst -{-# LINE 757 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 777 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Get the top most frame from the stack, 'nullPtr' if absent renvTopFrameM :: (RunSem RValCxt RValEnv RVal m x) => RValT m HpPtr renvTopFrameM = do@@ -693,7 +713,7 @@   liftIO $ readIORef tf {-# INLINE renvTopFrameM #-} -{-# LINE 766 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 786 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Get all non empty stack frames, still split up in (possibly null) top frame and rest of stack renvAllFrameM' :: (RunSem RValCxt RValEnv RVal m x) => RValT m (Maybe HpPtr,[HpPtr]) renvAllFrameM' = do@@ -708,7 +728,7 @@   (mbtop,st) <- renvAllFrameM'   return $ maybe [] (:[]) mbtop ++ st -{-# LINE 782 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 802 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Dump environment dumpPpEnvM :: (RunSem RValCxt RValEnv RVal m x) => Bool -> RValT m PP_Doc dumpPpEnvM extensive = do@@ -749,18 +769,18 @@     ppb hp k v = (liftIO $ ppRValWithHp hp v) >>= \vpp -> return $ k >|< ":" >#< vpp     ppa off hp sz vs = forM [0 .. sz - 1] $ \i -> liftIO (MV.read vs i) >>= ppb hp (i + off) -{-# LINE 824 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 844 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Dump environment dumpEnvM :: (RunSem RValCxt RValEnv RVal m x) => Bool -> RValT m () dumpEnvM extensive = dumpPpEnvM extensive >>= \p -> liftIO $ putPPLn p >> hFlush stdout -{-# LINE 834 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 854 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Update top frame updTopFrameM :: (RunSem RValCxt RValEnv RVal m x) => (RVal -> RValT m RVal) -> RValT m () updTopFrameM f = renvTopFrameM >>= flip heapUpdM f {-# INLINE updTopFrameM #-} -{-# LINE 846 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 866 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Push on the stack embedded in the top frame renvFrStkPush' :: RunSem RValCxt RValEnv RVal m x => (Int -> RValMV -> v -> IO Int) -> v -> RValT m () renvFrStkPush' pushvOn v = do@@ -796,7 +816,7 @@ renvFrStkReversePushV = renvFrStkPush' (\sp frvs vs -> mvecReverseFillFromV sp frvs vs >> return (sp + V.length vs)) {-# INLINE renvFrStkReversePushV #-} -{-# LINE 883 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 903 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Pop from the stack embedded in the top frame renvFrStkPop' :: RunSem RValCxt RValEnv RVal m x => (RValMV -> Int -> IO v) -> Int -> RValT m v renvFrStkPop' popvFrom sz = do@@ -840,7 +860,7 @@ renvFrStkReversePopMV sz = (liftIO $ mvecAlloc sz) >>= \vs -> renvFrStkReversePopInMV 0 sz vs >> return vs {-# INLINE renvFrStkReversePopMV #-} -{-# LINE 932 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 952 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Trace rsemTr' :: (PP msg, RunSem RValCxt RValEnv RVal m x) => Bool -> msg -> RValT m () rsemTr' dumpExtensive msg = do@@ -856,7 +876,7 @@ rsemTr = rsemTr' False {- INLINE rsemTr #-} -{-# LINE 953 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 973 "src/ehc/CoreRun/Run/Val.chs" #-} -- | RunT' variant for Val type RValT m a = RunT' RValCxt RValEnv RVal m a -- type RValT m a = RunT' () () RValEnv m a
src/UHC/Light/Compiler/CoreRun/Run/Val/RunExplStk.hs view
@@ -50,15 +50,15 @@  {-# LINE 66 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-} -- | Allocate a new frame-explStkAllocFrameM :: (RunSem RValCxt RValEnv RVal m x) => Ref2Nm -> HpPtr -> Int -> Int -> ExplArgs -> RValT m HpPtr-explStkAllocFrameM r2n sl lev sz as@(ExplArgs {eaVec=vsArgs, eaStk=nrArgs}) = do+explStkAllocFrameM :: (RunSem RValCxt RValEnv RVal m x) => Ref2Nm -> HpPtr -> {- Int -> -} Int -> ExplArgs -> RValT m HpPtr+explStkAllocFrameM r2n sl {- lev -} sz as@(ExplArgs {eaVec=vsArgs, eaStk=nrArgs}) = do   a <- liftIO $ mvecAllocInit sz -- (sz+3)		-- TBD: stack overflow somewhere...   let vsLen = V.length vsArgs   when (vsLen  > 0) $ liftIO $ mvecFillFromV 0 a vsArgs   when (nrArgs > 0) $ renvFrStkReversePopInMV vsLen nrArgs a   slref <- liftIO $ newIORef sl   spref <- liftIO $ newIORef (eaNrArgs as)-  p <- heapAllocM $ RVal_Frame r2n slref lev a spref+  p <- heapAllocM $ RVal_Frame r2n slref {- lev -} a spref   return p  -- | Push a new stack frame@@ -72,16 +72,16 @@ {-# INLINE explStkPushFrameM #-}  -- | Allocate and push a new stack frame-explStkPushAllocFrameM :: (RunSem RValCxt RValEnv RVal m x) => Ref2Nm -> HpPtr -> Int -> Int -> ExplArgs -> RValT m ()-explStkPushAllocFrameM r2n sl lev sz as = do-  p <- explStkAllocFrameM r2n sl lev sz as+explStkPushAllocFrameM :: (RunSem RValCxt RValEnv RVal m x) => Ref2Nm -> HpPtr -> {- Int -> -} Int -> ExplArgs -> RValT m ()+explStkPushAllocFrameM r2n sl {- lev -} sz as = do+  p <- explStkAllocFrameM r2n sl {- lev -} sz as   explStkPushFrameM p {-# INLINE explStkPushAllocFrameM #-}  -- | Allocate and replace top stack frame-explStkReplaceAllocFrameM :: (RunSem RValCxt RValEnv RVal m x) => Ref2Nm -> HpPtr -> Int -> Int -> ExplArgs -> RValT m ()-explStkReplaceAllocFrameM r2n sl lev sz as = do-  p <- explStkAllocFrameM r2n sl lev sz as+explStkReplaceAllocFrameM :: (RunSem RValCxt RValEnv RVal m x) => Ref2Nm -> HpPtr -> {- Int -> -} Int -> ExplArgs -> RValT m ()+explStkReplaceAllocFrameM r2n sl {- lev -} sz as = do+  p <- explStkAllocFrameM r2n sl {- lev -} sz as   (RValEnv {renvTopFrame=tf}) <- get   liftIO $ writeIORef tf p {-# INLINE explStkReplaceAllocFrameM #-}@@ -115,20 +115,20 @@ rvalExplStkAppLam sl f as failcont = do   let nrActualArgs = eaNrArgs as   case f of-    Exp_Lam {lev_Exp_Lam=l, mbNm_Exp_Lam=mn, nrArgs_Exp_Lam=nrRequiredArgs, stkDepth_Exp_Lam=sz, ref2nm_Exp_Lam=r2n, body_Exp_Lam=b}+    Exp_Lam {{- lev_Exp_Lam=l, -} mbNm_Exp_Lam=mn, nrArgs_Exp_Lam=nrRequiredArgs, stkDepth_Exp_Lam=sz, ref2nm_Exp_Lam=r2n, body_Exp_Lam=b}       | nrActualArgs == nrRequiredArgs -> do            -- rsemTr $ ">V (" ++ show mn ++ ") app lam ==, na=" ++ show nrRequiredArgs ++ ", sz=" ++ show sz            needRet <- asks rcxtInRet            rvalTrEnterLam mn $              if needRet                then do-                 explStkPushAllocFrameM r2n sl l sz as+                 explStkPushAllocFrameM r2n sl {- l -} sz as                  rsemExp b                  v <- renvFrStkPop1                  explStkPopFrameM                  renvFrStkPush1 v                else do-                 explStkReplaceAllocFrameM r2n sl l sz as+                 explStkReplaceAllocFrameM r2n sl {- l -} sz as                  mustReturn $ rsemExp b            -- rsemTr $ "<V (" ++ show mn ++ ")"       | otherwise -> failcont nrRequiredArgs@@ -148,26 +148,19 @@       rvalExplStkAppLam sl b as $ \narg -> do         if nrActualArgs < narg           then do-            -- rsemTr $ "V app lam <"-            -- renvFrStkReversePopMV nrActualArgs >>= \as -> heapAllocAsPtrM (RVal_App f as) >>= renvFrStkPush1             renvFrStkEaPopMV as >>= \as -> heapAllocAsPtrM (RVal_App f as) >>= renvFrStkPush1           else do-            -- rsemTr $ "V app lam >"-            -- ap <- mustReturn $ rvalExplStkApp f (as {eaStk=narg}) >>= rsemPop >>= rsemDeref >>= rsemPop-            -- rvalExplStkApp ap (as {eaStk=nrActualArgs - narg})             ap <- mustReturn $ rvalExplStkApp f (eaSetNrArgs as narg) >>= rsemPop >>= rsemDeref >>= rsemPop             rvalExplStkApp ap (eaSetNrArgs emptyExplArgs (nrActualArgs - narg))     RVal_App appf appas       | nrActualArgs > 0 -> do-           -- rsemTr $ "V app app"-           -- renvFrStkReversePushMV appas >> rvalExplStkApp appf (as {eaStk=nrActualArgs + MV.length appas})            appas' <- liftIO $ V.freeze appas            rvalExplStkApp appf (as {eaVec=appas' V.++ eaVec as})     _   -> err $ "CoreRun.Run.Val.rvalExplStkApp:" >#< f -- {-# SPECIALIZE rvalExplStkApp :: RunSem RValCxt RValEnv RVal IO RVal => RVal -> RValMV -> RValT IO RVal #-} -- {-# INLINE rvalExplStkApp #-} -{-# LINE 201 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-}+{-# LINE 194 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-} -- | rsemExp for RVal, without explicit use of expr stack, i.e. implicit stack via Haskell thereby preventing correct GC rvalExplStkExp :: RunSem RValCxt RValEnv RVal m () => Exp -> RValT m () {-# SPECIALIZE rvalExplStkExp :: RunSem RValCxt RValEnv RVal IO () => Exp -> RValT IO () #-}@@ -177,24 +170,23 @@   case e of     -- app, call     Exp_App f as -> do-        f' <- mustReturn $ do-          vecReverseForM_ as rsemExp-          rsemExp f+        vecReverseForM_ as rsemSExp+        f' <- mustReturn $ rsemExp f         rsemPop f' >>= ptr2valM >>= \f' -> rvalExplStkApp f' (emptyExplArgs {eaStk=V.length as})      -- heap node     Exp_Tup t as -> do-        V.forM_ as rsemExp-        renvFrStkPopMV (V.length as) >>= rsemNode (ctagTag t) >>= rsemPush+        V.forM_ as rsemSExp+        renvFrStkPopMV (V.length as) >>= rsemNode t >>= rsemPush      -- lam as is, being a heap allocated thunk when 0 args are required     Exp_Lam {nrArgs_Exp_Lam=na, mbNm_Exp_Lam=mn}-      | na == 0   -> mk RVal_Thunk-      | otherwise -> mk RVal_Lam-      where mk rv = do+      | na == 0   -> mk heapAllocAsPtrM RVal_Thunk+      | otherwise -> mk return          RVal_Lam+      where mk alloc rv = do              sl <- renvTopFrameM              slref <- liftIO $ newIORef sl-             heapAllocAsPtrM (rv mn e slref) >>= rsemPush+             alloc (rv mn e slref) >>= rsemPush      -- let     Exp_Let {firstOff_Exp_Let=fillFrom, ref2nm_Exp_Let=r2n, binds_Exp_Let=bs, body_Exp_Let=b} -> do@@ -206,6 +198,7 @@       v <- ptr2valM =<< rsemPop =<< rsemSExp e       case v of         RVal_Node {rvalTag=tg} -> rsemAlt $ as V.! tg+        RVal_Int  tg           -> rsemAlt $ as V.! tg         _ -> err $ "CoreRun.Run.Val.RunExplStk.rvalExplStkExp.Case: scrutinee:" >#< v      -- force evaluation immediately@@ -215,7 +208,7 @@     -- Exp_Ret e -> mustReturn $ rsemExp e      -- setup for context requiring a return from case alternative-    Exp_RetCase _ e -> rsemExp e+    -- Exp_RetCase _ e -> rsemExp e      -- setup for context not requiring a return     Exp_Tail e -> needNotReturn $ rsemExp e@@ -224,13 +217,13 @@     Exp_SExp se -> rsemSExp se      -- FFI-    Exp_FFI pr as -> V.mapM_ rsemExp as >> renvFrStkPopMV (V.length as) >>= (liftIO . V.freeze) >>= rsemPrim pr+    Exp_FFI pr as -> V.mapM_ rsemSExp as >> renvFrStkPopMV (V.length as) >>= (liftIO . V.freeze) >>= rsemPrim pr      e -> err $ "CoreRun.Run.Val.RunExplStk.rvalExplStkExp:" >#< e    -- return e' -{-# LINE 273 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-}+{-# LINE 266 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-} instance     ( Monad m, MonadIO m, Functor m     ) => RunSem RValCxt RValEnv RVal m ()@@ -247,7 +240,7 @@         ms <- liftIO $ MV.new (maximum (map moduleNr_Mod_Mod modAllL) + 1)         forM_ modAllL $ \(Mod_Mod {ref2nm_Mod_Mod=r2n, moduleNr_Mod_Mod=nr, binds_Mod_Mod=bs, stkDepth_Mod_Mod=sz}) -> do           -- construct frame for each module-          explStkPushAllocFrameM r2n nullPtr 0 sz emptyExplArgs+          explStkPushAllocFrameM r2n nullPtr {- 0 -} sz emptyExplArgs           -- holding all local defs           V.forM_ bs rsemExp           p <- explStkPopFrameM@@ -278,8 +271,6 @@     {-# INLINE rsemSExp #-}      rsemEvl v = do-        -- rsemGcEnterRootLevel-        -- rsemGcPushRoot v         case v of           RVal_Ptr {rvalPtrRef=pref} -> do             rsemGcEnterRootLevel@@ -288,7 +279,6 @@             rsemGcLeaveRootLevel           RVal_BlackHole             -> err $ "CoreRun.Run.Val.rsemEvl.RVal_BlackHole:" >#< "Black hole"           _                          -> return () -- rsemPush v-        -- rsemGcLeaveRootLevel         rsemPush v       where         evlPtr pref p = do@@ -328,7 +318,7 @@     {-# INLINE rsemPush #-}     rsemPop  = \_ -> renvFrStkPop1     {-# INLINE rsemPop #-}-    rsemNode t vs = heapAllocAsPtrM $ RVal_Node t vs+    rsemNode t vs = {- heapAllocAsPtrM -} return $ RVal_Node t vs     {-# INLINE rsemNode #-}  
src/UHC/Light/Compiler/CoreRun/Run/Val/RunImplStk.hs view
@@ -30,19 +30,19 @@  {-# LINE 46 "src/ehc/CoreRun/Run/Val/RunImplStk.chs" #-} -- | Allocate a new frame-implStkAllocFrameM :: (RunSem RValCxt RValEnv RVal m RVal) => Ref2Nm -> HpPtr -> Int -> Int -> RValMV -> RValT m HpPtr-implStkAllocFrameM r2n sl lev sz as = do+implStkAllocFrameM :: (RunSem RValCxt RValEnv RVal m RVal) => Ref2Nm -> HpPtr -> {- Int -> -} Int -> RValMV -> RValT m HpPtr+implStkAllocFrameM r2n sl {- lev -} sz as = do   a <- liftIO $ mvecAllocInit sz   slref <- liftIO $ newIORef sl   spref <- liftIO $ newIORef sz -- (MV.length as) -- stack is not used, GC looks up until this location-  let fr = RVal_Frame r2n slref lev a spref+  let fr = RVal_Frame r2n slref {- lev -} a spref   fillFrameM 0 as fr   heapAllocM fr  -- | Allocate and push a new stack frame-implStkPushAllocFrameM :: (RunSem RValCxt RValEnv RVal m RVal) => Ref2Nm -> HpPtr -> Int -> Int -> RValMV -> RValT m ()-implStkPushAllocFrameM r2n sl lev sz as = do-  p <- implStkAllocFrameM r2n sl lev sz as+implStkPushAllocFrameM :: (RunSem RValCxt RValEnv RVal m RVal) => Ref2Nm -> HpPtr -> {- Int -> -} Int -> RValMV -> RValT m ()+implStkPushAllocFrameM r2n sl {- lev -} sz as = do+  p <- implStkAllocFrameM r2n sl {- lev -} sz as   (RValEnv {renvStack=st, renvTopFrame=tf}) <- get   liftIO $ do     t <- readIORef tf@@ -51,9 +51,9 @@ {-# INLINE implStkPushAllocFrameM #-}  -- | Allocate and replace top stack frame-implStkReplaceAllocFrameM :: (RunSem RValCxt RValEnv RVal m RVal) => Ref2Nm -> HpPtr -> Int -> Int -> RValMV -> RValT m ()-implStkReplaceAllocFrameM r2n sl lev sz as = do-  p <- implStkAllocFrameM r2n sl lev sz as+implStkReplaceAllocFrameM :: (RunSem RValCxt RValEnv RVal m RVal) => Ref2Nm -> HpPtr -> {- Int -> -} Int -> RValMV -> RValT m ()+implStkReplaceAllocFrameM r2n sl {- lev -} sz as = do+  p <- implStkAllocFrameM r2n sl {- lev -} sz as   (RValEnv {renvTopFrame=tf}) <- get   liftIO $ writeIORef tf p {-# INLINE implStkReplaceAllocFrameM #-}@@ -83,18 +83,18 @@ rvalImplStkAppLam :: RunSem RValCxt RValEnv RVal m RVal => HpPtr -> Exp -> RValMV -> (Int -> RValT m RVal) -> RValT m RVal rvalImplStkAppLam sl f as failcont = do   case f of-    Exp_Lam {lev_Exp_Lam=l, nrArgs_Exp_Lam=narg, stkDepth_Exp_Lam=sz, ref2nm_Exp_Lam=r2n, body_Exp_Lam=b}+    Exp_Lam {{- lev_Exp_Lam=l, -} nrArgs_Exp_Lam=narg, stkDepth_Exp_Lam=sz, ref2nm_Exp_Lam=r2n, body_Exp_Lam=b}       | MV.length as == narg -> do            -- rsemTr $ "V app lam =="            needRet <- asks rcxtInRet            if needRet              then do-               implStkPushAllocFrameM r2n sl l sz as+               implStkPushAllocFrameM r2n sl {- l -} sz as                v <- rsemExp b                implStkPopFrameM                return v              else do-               implStkReplaceAllocFrameM r2n sl l sz as+               implStkReplaceAllocFrameM r2n sl {- l -} sz as                mustReturn $ rsemExp b       | otherwise -> failcont narg     _   -> err $ "CoreRun.Run.Val.rvalImplStkAppLam:" >#< f@@ -135,12 +135,12 @@     -- app, call     Exp_App f as -> do         f' <- mustReturn $ rsemExp f {- >>= rsemEvl -}-        (mustReturn $ V.mapM rsemExp as) >>= (liftIO . V.thaw) >>= rvalImplStkApp f'+        V.mapM rsemSExp as >>= (liftIO . V.thaw) >>= rvalImplStkApp f'      -- heap node     Exp_Tup t as -> do-        as' <- V.mapM rsemExp as >>= (liftIO . mvecAllocFillFromV)-        rsemNode (ctagTag t) as'+        as' <- V.mapM rsemSExp as >>= (liftIO . mvecAllocFillFromV)+        rsemNode t as'      -- lam as is, being a heap allocated thunk when 0 args are required     Exp_Lam {nrArgs_Exp_Lam=na, mbNm_Exp_Lam=mn}@@ -160,7 +160,7 @@      -- case, scrutinee already evaluated     Exp_Case e as -> do-      (RVal_Node {rvalTag=tg}) <- {- rsemDeref =<< -} rsemSExp e+      RVal_Int tg <- {- rsemDeref =<< -} rsemSExp e       rsemAlt $ as V.! tg      -- force evaluation immediately@@ -170,7 +170,7 @@     -- Exp_Ret e -> mustReturn $ rsemExp e      -- setup for context requiring a return from case alternative-    Exp_RetCase _ e -> rsemExp e+    -- Exp_RetCase _ e -> rsemExp e      -- setup for context not requiring a return     Exp_Tail e -> needNotReturn $ rsemExp e@@ -179,7 +179,7 @@     Exp_SExp se -> rsemSExp se      -- FFI-    Exp_FFI pr as -> V.mapM rsemExp as >>= rsemPrim pr+    Exp_FFI pr as -> V.mapM rsemSExp as >>= rsemPrim pr      e -> err $ "CoreRun.Run.Val.RunExplStk.rvalImplStkExp:" >#< e @@ -201,7 +201,7 @@         ms <- liftIO $ MV.new (maximum (map moduleNr_Mod_Mod modAllL) + 1)         forM_ modAllL $ \(Mod_Mod {ref2nm_Mod_Mod=r2n, moduleNr_Mod_Mod=nr, binds_Mod_Mod=bs}) -> do           bs' <- (liftIO . V.thaw) =<< V.forM bs rsemExp-          p <- implStkAllocFrameM r2n nullPtr 0 (MV.length bs') bs'+          p <- implStkAllocFrameM r2n nullPtr {- 0 -} (MV.length bs') bs'           liftIO $ MV.write ms nr p         ms' <- liftIO $ V.freeze ms         modify $ \env -> env {renvGlobals = ms'}
src/UHC/Light/Compiler/EH/MainAG.hs view
@@ -48,6 +48,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_AGItf.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2@@ -176,10 +177,8 @@             local lErrSq      : _             local chrScopeMainBindL : _             local extraCBindL : _-            local mainDefExists : _-            local insertMainDef : _             local mainUseExists : _-            local insertMainUse : _+            local isMainMod   : _             local gathChrStore : _             local chrSimplifyResult : _             local gathMentrelFilterMp : _@@ -400,7 +399,7 @@                                                                                                                                         (case (ExprCtxt_Top) of                                                                                                                                          { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                          (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                          { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                          { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                               (case (defaultFIEnv                                                                                                                                                          { feEHCOpts = _lhsIopts                                                                                                                                                          , fePredScope = _predScope@@ -438,88 +437,92 @@                                                                                                                                                          { (_chrScopeMainBindL,_) | _chrScopeMainBindL `seq` (True) ->                                                                                                                                                          (case ([(CBindCateg_Rec,_chrScopeMainBindL)]) of                                                                                                                                                           { _extraCBindL | _extraCBindL `seq` (True) ->-                                                                                                                                                          (case (let ds = [ b | (_,g) <- _exprIletValCBindL, b <- g, cbindNm b == hsnMain ]-                                                                                                                                                                 in  not (null ds)) of-                                                                                                                                                           { _mainDefExists | _mainDefExists `seq` (True) ->-                                                                                                                                                           (case (not _mainDefExists-                                                                                                                                                                  && _lhsIisMainMod) of-                                                                                                                                                            { _insertMainDef | _insertMainDef `seq` (True) ->-                                                                                                                                                            (case (case acoreExprMbVar _exprIletCBody of-                                                                                                                                                                     Just n | n == hsnMain -> True-                                                                                                                                                                     _                     -> False) of-                                                                                                                                                             { _mainUseExists | _mainUseExists `seq` (True) ->-                                                                                                                                                             (case (not _mainUseExists-                                                                                                                                                                    && _lhsIisMainMod) of-                                                                                                                                                              { _insertMainUse | _insertMainUse `seq` (True) ->-                                                                                                                                                              (case (let b = if _insertMainUse then acoreVar hsnMain else _exprIletCBody-                                                                                                                                                                         d = if _insertMainDef then acoreLet CBindCateg_Plain [acoreBind1Ty hsnMain (acoreTyErr $ "EH.ToCore.AGItf.main") _exprIletCBody] else id-                                                                                                                                                                     in  CModule_Mod _lhsImoduleNm-                                                                                                                                                                             (map CExport_Export $ Map.keys $ mieimplHsName2FldMp _lhsImoduleImportExportImpl)-                                                                                                                                                                             (map CImport_Import $ Set.toList $ iumHSDeclModules _lhsIimportUsedModules)-                                                                                                                                                                             [ CDeclMeta_Data tn-                                                                                                                                                                                 [ CDataCon_Con cn (ctagTag ctag) (ctagArity ctag)-                                                                                                                                                                                 | (cn,dti) <- Map.toList $ dgiConstrTagMp dgi-                                                                                                                                                                                 , let ctag = dtiCTag dti-                                                                                                                                                                                 ]-                                                                                                                                                                             | (tn,dgi) <- gamToAssocL _exprIgathDataGam-                                                                                                                                                                             , not (dgiIsNewtype dgi)-                                                                                                                                                                             ]-                                                                                                                                                                             (-                                                                                                                                                                                cSubstAppExpr True _exprIcSubst-                                                                                                                                                                                (foldr (\(c,b) e -> acoreLet c b e)-                                                                                                                                                                                  (d b)-                                                                                                                                                                                  (_exprIletTyCBindL ++ _extraCBindL ++ _exprIfrontCBindL ++ _exprIletValCBindL-                                                                                                                                                                                  ++ _exprIbackCBindL-                                                                                                                                                                                  )+                                                                                                                                                          (case (case acoreExprMbVar _exprIletCBody of+                                                                                                                                                                   Just n | n == hsnMain -> True+                                                                                                                                                                   _                     -> False) of+                                                                                                                                                           { _mainUseExists | _mainUseExists `seq` (True) ->+                                                                                                                                                           (case (_lhsIisMainMod) of+                                                                                                                                                            { _isMainMod | _isMainMod `seq` (True) ->+                                                                                                                                                            (case (let+                                                                                                                                                                       bm    = acoreVar hsnMain+                                                                                                                                                                       bb    = _exprIletCBody+                                                                                                                                                                       db    = acoreLet acoreBindcategPlain [acoreBind1Ty hsnMain (acoreTyErr $ "EH.ToCore.AGItf.main") $ acoreRunMain _exprIletCBody]+                                                                                                                                                                       mb m  = acoreLet acoreBindcategPlain [mkb $ acoreRunMain me]+                                                                                                                                                                             where (me,mkb) = cbindExtractExprMk m+                                                                                                                                                                       (b,d) = case (_exprIletValMainCBindL, _mainUseExists, _isMainMod) of+                                                                                                                                                                           ([]   , False, True) -> (bm, db   )+                                                                                                                                                                           ((m:_), False, True) -> (bm, mb m )+                                                                                                                                                                           ([]   , True , True) -> (bb, db   )+                                                                                                                                                                           ((m:_), True , True) -> (bb, mb m )+                                                                                                                                                                           ((m:_), _    , _   ) -> (bb, mb m )+                                                                                                                                                                           (_    , _    , _   ) -> (bb, id   )+                                                                                                                                                                   in  CModule_Mod _lhsImoduleNm+                                                                                                                                                                           (map CExport_Export $ Map.keys $ mieimplHsName2FldMp _lhsImoduleImportExportImpl)+                                                                                                                                                                           (map CImport_Import $ Set.toList $ iumHSDeclModules _lhsIimportUsedModules)+                                                                                                                                                                           [ CDeclMeta_Data tn+                                                                                                                                                                               [ CDataCon_Con cn (ctagTag ctag) (ctagArity ctag)+                                                                                                                                                                               | (cn,dti) <- Map.toList $ dgiConstrTagMp dgi+                                                                                                                                                                               , let ctag = dtiCTag dti+                                                                                                                                                                               ]+                                                                                                                                                                           | (tn,dgi) <- gamToAssocL _exprIgathDataGam+                                                                                                                                                                           , not (dgiIsNewtype dgi)+                                                                                                                                                                           ]+                                                                                                                                                                           (+                                                                                                                                                                              cSubstAppExpr True _exprIcSubst+                                                                                                                                                                              (foldr (\(c,b) e -> acoreLet c b e)+                                                                                                                                                                                (d b)+                                                                                                                                                                                (_exprIletTyCBindL ++ _extraCBindL ++ _exprIfrontCBindL ++ _exprIletValCBindL+                                                                                                                                                                                ++ _exprIbackCBindL                                                                                                                                                                                 )-                                                                                                                                                                                Nothing-                                                                                                                                                                             )) of-                                                                                                                                                               { _lhsOcmodule | _lhsOcmodule `seq` (True) ->-                                                                                                                                                               (case (_exprIgUniq) of-                                                                                                                                                                { _lhsOgUniq | _lhsOgUniq `seq` (True) ->-                                                                                                                                                                (case (__tup5) of-                                                                                                                                                                 { (_,_gathChrStore) | _gathChrStore `seq` (True) ->-                                                                                                                                                                 (case (_gathChrStore) of-                                                                                                                                                                  { _lhsOgathChrStore | _lhsOgathChrStore `seq` (True) ->-                                                                                                                                                                  (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClDfGam" _exprIgathClDfGam) of-                                                                                                                                                                   { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->-                                                                                                                                                                   (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClGam" _exprIgathClGam) of-                                                                                                                                                                    { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->-                                                                                                                                                                    (case (_exprIgathDataGam) of-                                                                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->-                                                                                                                                                                     (case (_exprIgathHiddenExports) of-                                                                                                                                                                      { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->-                                                                                                                                                                      (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathKiGam" _exprIgathKiGam) of-                                                                                                                                                                       { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->-                                                                                                                                                                       (case (_exprIgathLamMp) of-                                                                                                                                                                        { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->-                                                                                                                                                                        (case (__tup1) of-                                                                                                                                                                         { (_,_,_,_,_,_chrSimplifyResult,_,_,_,_) | _chrSimplifyResult `seq` (True) ->-                                                                                                                                                                         (case (mentrelFilterMpUnions-                                                                                                                                                                                  [ _exprIgathMentrelFilterMp-                                                                                                                                                                                  , gathMentrelFilterMpFromSimplifyResult _lhsImoduleNm _chrSimplifyResult-                                                                                                                                                                                  ]) of-                                                                                                                                                                          { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->-                                                                                                                                                                          (case (_gathMentrelFilterMp) of-                                                                                                                                                                           { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->-                                                                                                                                                                           (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathPolGam" _exprIgathPolGam) of-                                                                                                                                                                            { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->-                                                                                                                                                                            (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyGam" _exprIgathTyGam) of-                                                                                                                                                                             { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->-                                                                                                                                                                             (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyKiGam" _exprIgathTyKiGam) of-                                                                                                                                                                              { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->-                                                                                                                                                                              (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathValGam" $ _finTyVarMp `varUpd` _exprIgathValGam) of-                                                                                                                                                                               { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->-                                                                                                                                                                               (case (if Set.null _exprIorphanS then Nothing else Just _exprIorphanS) of-                                                                                                                                                                                { _lhsOmbOrphan | _lhsOmbOrphan `seq` (True) ->-                                                                                                                                                                                (case (ppErrsSq _lErrSq) of-                                                                                                                                                                                 { _errTopPP | _errTopPP `seq` (True) ->-                                                                                                                                                                                 (case (empty) of-                                                                                                                                                                                  { _extraPP | _extraPP `seq` (True) ->-                                                                                                                                                                                  (case (_extraPP >-< _exprIpp-                                                                                                                                                                                         >-< _errTopPP) of-                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->-                                                                                                                                                                                   (case (ppTy (tyQuantifyClosed _exprIty)) of-                                                                                                                                                                                    { _lhsOtopTyPP | _lhsOtopTyPP `seq` (True) ->-                                                                                                                                                                                    ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))))))))+                                                                                                                                                                              )+                                                                                                                                                                              Nothing+                                                                                                                                                                           )) of+                                                                                                                                                             { _lhsOcmodule | _lhsOcmodule `seq` (True) ->+                                                                                                                                                             (case (_exprIgUniq) of+                                                                                                                                                              { _lhsOgUniq | _lhsOgUniq `seq` (True) ->+                                                                                                                                                              (case (__tup5) of+                                                                                                                                                               { (_,_gathChrStore) | _gathChrStore `seq` (True) ->+                                                                                                                                                               (case (_gathChrStore) of+                                                                                                                                                                { _lhsOgathChrStore | _lhsOgathChrStore `seq` (True) ->+                                                                                                                                                                (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClDfGam" _exprIgathClDfGam) of+                                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->+                                                                                                                                                                 (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClGam" _exprIgathClGam) of+                                                                                                                                                                  { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->+                                                                                                                                                                  (case (_exprIgathDataGam) of+                                                                                                                                                                   { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->+                                                                                                                                                                   (case (_exprIgathHiddenExports) of+                                                                                                                                                                    { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->+                                                                                                                                                                    (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathKiGam" _exprIgathKiGam) of+                                                                                                                                                                     { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->+                                                                                                                                                                     (case (_exprIgathLamMp) of+                                                                                                                                                                      { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->+                                                                                                                                                                      (case (__tup1) of+                                                                                                                                                                       { (_,_,_,_,_,_chrSimplifyResult,_,_,_,_) | _chrSimplifyResult `seq` (True) ->+                                                                                                                                                                       (case (mentrelFilterMpUnions+                                                                                                                                                                                [ _exprIgathMentrelFilterMp+                                                                                                                                                                                , gathMentrelFilterMpFromSimplifyResult _lhsImoduleNm _chrSimplifyResult+                                                                                                                                                                                ]) of+                                                                                                                                                                        { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->+                                                                                                                                                                        (case (_gathMentrelFilterMp) of+                                                                                                                                                                         { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->+                                                                                                                                                                         (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathPolGam" _exprIgathPolGam) of+                                                                                                                                                                          { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->+                                                                                                                                                                          (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyGam" _exprIgathTyGam) of+                                                                                                                                                                           { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->+                                                                                                                                                                           (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyKiGam" _exprIgathTyKiGam) of+                                                                                                                                                                            { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->+                                                                                                                                                                            (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathValGam" $ _finTyVarMp `varUpd` _exprIgathValGam) of+                                                                                                                                                                             { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->+                                                                                                                                                                             (case (if Set.null _exprIorphanS then Nothing else Just _exprIorphanS) of+                                                                                                                                                                              { _lhsOmbOrphan | _lhsOmbOrphan `seq` (True) ->+                                                                                                                                                                              (case (ppErrsSq _lErrSq) of+                                                                                                                                                                               { _errTopPP | _errTopPP `seq` (True) ->+                                                                                                                                                                               (case (empty) of+                                                                                                                                                                                { _extraPP | _extraPP `seq` (True) ->+                                                                                                                                                                                (case (_extraPP >-< _exprIpp+                                                                                                                                                                                       >-< _errTopPP) of+                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->+                                                                                                                                                                                 (case (ppTy (tyQuantifyClosed _exprIty)) of+                                                                                                                                                                                  { _lhsOtopTyPP | _lhsOtopTyPP `seq` (True) ->+                                                                                                                                                                                  ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))))))) 
src/UHC/Light/Compiler/EH/MainAG_CaseAlt.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2@@ -480,7 +481,7 @@                                                                                                                                                                                                                                                                                                                                                                      (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                                                                                                       { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                       (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                                                                                                       { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                                                                                                       { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                                                                                                            (case (_patExprIallErrSq `Seq.union` _exprIallErrSq) of                                                                                                                                                                                                                                                                                                                                                                             { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                             (case (_exprIcSubst) of
src/UHC/Light/Compiler/EH/MainAG_CaseAlts.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_DataConstr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_DataConstrs.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_DataField.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_DataFieldExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2@@ -624,7 +625,7 @@                                                                                                                                                                                                                                                                                                                                                                                                     (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                                                                                                                                      { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                                                      (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                                                                                                                                      { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                                                                                                                                      { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                                                                                                                                           (case (_dataFieldExprIallErrSq `Seq.union` _exprIallErrSq) of                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                                                            (case (_exprIcSubst) of@@ -1134,7 +1135,7 @@                                                                                                                                                                                                                                                                                                              (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                                               { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                                               (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                                               { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                                               { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                                                    (case (_exprIallErrSq) of                                                                                                                                                                                                                                                                                                                     { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                                                     (case (_exprIcSubst) of
src/UHC/Light/Compiler/EH/MainAG_DataFieldPatExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_DataFields.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_Decl.hs view

file too large to diff

src/UHC/Light/Compiler/EH/MainAG_Decls.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_Expr.hs view

file too large to diff

src/UHC/Light/Compiler/EH/MainAG_ExprAnn.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_FuncDep.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_FuncDeps.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_KiExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_KiExprAnn.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_MbTyExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_PatExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2@@ -5860,7 +5861,7 @@                                                                                                                                                                                                                                                                                                                              (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                                                               { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                                                               (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                                                               { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                                                               { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                                                                    (case (_exprIallErrSq) of                                                                                                                                                                                                                                                                                                                                     { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                                                                     (case ([]) of
src/UHC/Light/Compiler/EH/MainAG_PatExprAnn.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_PrExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_PrExprs.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_RecExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2@@ -842,7 +843,7 @@                                                                                                                                                                                                                                                                                                                                                                                 (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                                                                                                                  { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                                  (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                                                                                                                  { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                                                                                                                  { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                                                                                                                       (case (_recExprIallErrSq `Seq.union` _exprIallErrSq) of                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                                        (case (_exprIcSubst) of@@ -1246,7 +1247,7 @@                                                                                                                                                                                                                                                                                                                                                                               (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                                                                                                                { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                                (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                                                                                                                { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                                                                                                                { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                                                                                                                     (case (_recExprIallErrSq `Seq.union` _exprIallErrSq) of                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                                                                                                                      (case (_exprIcSubst) of@@ -1514,7 +1515,7 @@                                                                                                                                                                                                                                                                                (case (ExprCtxt_Top) of                                                                                                                                                                                                                                                                                 { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->                                                                                                                                                                                                                                                                                 (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of-                                                                                                                                                                                                                                                                                 { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+                                                                                                                                                                                                                                                                                 { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp) | True ->                                                                                                                                                                                                                                                                                      (case (_exprIallErrSq) of                                                                                                                                                                                                                                                                                       { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->                                                                                                                                                                                                                                                                                       (case (_exprIcSubst) of
src/UHC/Light/Compiler/EH/MainAG_RecPatExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_RowTyExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_TyExpr.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_TyExprAnn.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_TyExprs.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_TyVar.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_TyVars.hs view
@@ -49,6 +49,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2
src/UHC/Light/Compiler/EH/MainAG_common.hs view
@@ -48,6 +48,7 @@ import UHC.Light.Compiler.CodeGen.RefGenerator import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF import UHC.Light.Compiler.FinalEnv+import UHC.Light.Compiler.Core.BindExtract import UHC.Light.Compiler.Core.Subst import Control.Monad.State import UHC.Light.Compiler.Ty.Utils2@@ -641,12 +642,32 @@   -mkLetCBodyBindL :: Bool -> CBindCateg -> [(CBindCateg,CBindL)] -> [(CBindCateg,CBindL)] -> [(CBindCateg,CBindL)] -> CExpr -> ([(CBindCateg,CBindL)],CExpr)+-- | Combine bindings and extract main binding+mkLetCBodyBindL+  :: Bool+     -> CBindCateg -> [(CBindCateg,CBindL)] -> [(CBindCateg,CBindL)] -> [(CBindCateg,CBindL)] -> CExpr+     -> ( [(CBindCateg,CBindL)]		-- ^ all remaining let bindings not bound in body+        , CBindL					-- ^ if non empty singleton list it holds the def for main+        , CExpr						-- ^ bound bindings together with body+        ) mkLetCBodyBindL isStrict howToBind locBindL locOthBindL bodyBindL body-  = if isStrict-    then (locOthBindL,foldr (\(c,b) e -> acoreLet c b e) body (merge $ locBindL ++ bodyBindL))-    else (merge $ locOthBindL ++ locBindL ++ bodyBindL, body)-  where merge (cb1@(c1,b1) : tl)+  | isStrict =+         ( locOthBindL+         , locMainBindL+         , foldr (\(c,b) e -> acoreLet c b e) body (merge $ locNoMainBindL ++ bodyBindL)+         )+  | otherwise =+         ( merge $ locOthBindL ++ locNoMainBindL ++ bodyBindL+         , locMainBindL+         , body+         )+  where (locMainBindL, locNoMainBindL)+          = split locBindL+          where split ((c,g):bs) = (m ++ mbs, (c,nm) : nmbs)+                  where (m  ,nm  ) = partition (\b -> cbindNm b == hsnMain) g+                        (mbs,nmbs) = split bs+                split []         = ([], [])+        merge (cb1@(c1,b1) : tl)           = case merge tl of               (c2,b2) : tl' | c1 == c2 && c1 == CBindCateg_Rec                   -> (c1,b1++b2) : tl'@@ -1285,6 +1306,8 @@   ++ data ExprCtxt   = ExprCtxt_Top | ExprCtxt_Lam | ExprCtxt_Internal   deriving Eq@@ -1858,7 +1881,7 @@                 HsName ->                 RangeMp ->                 ToSysfEnv ->-                ( ErrSq,([Coe]),([PP_Doc]),CExpr,HsName,PP_Doc,([(CBindCateg,CBindL)]),CSubst,UIDS,CExpr,ErrSq,([(CBindCateg,CBindL)]),(FieldUpdateL CExpr),ClGam,(Seq.Seq (HsName,IdOccKind)),KiGam,LamMp,ModEntRelFilterMp,PolGam,VarMp,TyGam,TyKiGam,Bool,([PP_Doc]),PP_Doc,CExpr,([(CBindCateg,CBindL)]),([(CBindCateg,CBindL)]),(Set.Set HsName),PP_Doc)+                ( ErrSq,([Coe]),([PP_Doc]),CExpr,HsName,PP_Doc,([(CBindCateg,CBindL)]),CSubst,UIDS,CExpr,ErrSq,([(CBindCateg,CBindL)]),(FieldUpdateL CExpr),ClGam,(Seq.Seq (HsName,IdOccKind)),KiGam,LamMp,ModEntRelFilterMp,PolGam,VarMp,TyGam,TyKiGam,Bool,([PP_Doc]),PP_Doc,CExpr,([(CBindCateg,CBindL)]),([(CBindCateg,CBindL)]),CBindL,(Set.Set HsName),PP_Doc)  -- ExprAnn ----------------------------------------------------- 
+ src/UHC/Light/Compiler/EHC/Main.hs view
@@ -0,0 +1,404 @@+module UHC.Light.Compiler.EHC.Main+( mainEHC )+where+import System.Console.GetOpt+import System.IO+import System.Exit+import System.Process+import System.Environment+import qualified UHC.Light.Compiler.Config as Cfg+import UHC.Light.Compiler.EHC.Common+import UHC.Light.Compiler.EHC.Environment+import UHC.Light.Compiler.EHC.CompileUnit+import UHC.Light.Compiler.EHC.CompileRun+import UHC.Light.Compiler.EHC.InitialSetup+import UHC.Light.Compiler.EHC.CompilePhase.TopLevelPhases+import qualified Debug.Trace+import qualified Data.Map as Map+import qualified Data.Set as Set+import Control.Monad.State+import UHC.Light.Compiler.Base.Target+import UHC.Light.Compiler.Base.Optimize (allOptimizeMp)+import qualified UHC.Light.Compiler.SourceCodeSig as Sig+import UHC.Light.Compiler.EHC.CompilePhase.Module+import UHC.Light.Compiler.Module.ImportExport (modBuiltin)+import UHC.Light.Compiler.Module.ImportExport+import System.Directory+import UHC.Light.Compiler.Base.PackageDatabase+import UHC.Light.Compiler.Base.Parser2+import qualified UHC.Light.Compiler.ConfigCabal as Cfg (getDataDir)+++++++++++++{-# LINE 90 "src/ehc/EHC/Main.chs" #-}+mainEHC :: IO ()+mainEHC+  =  do  {  args      <- getArgs+         ;  progName  <- getProgName+         ;  curDir    <- getCurrentDirectory+         -- an empty data dir means we are running as cabal installed exec+         ;  mbDataDir <- Cfg.getDataDir >>= \d -> return $ if null d then Nothing else Just d+         ;  let  opts1          = defaultEHCOpts+                                    { ehcOptEnvironment     = defaultEHCEnvironment+                                    , ehcProgName           = p+                                    , ehcCurDir             = curDir+                                    }+                                where p = mkFPath progName+                 oo@(o,n,errs)  = ehcCmdLineOptsApply (maybe [] (\d -> [\o -> o {ehcOptCfgInstallRoot = Just d}]) mbDataDir) args opts1+                 opts2          = maybe opts1 id o+         ;  case opts2 of+              o | isNotOk (ehcOptMbTarget       o) -> err $ "non existent target `"        ++ fromNotOk (ehcOptMbTarget       o) ++ "'"+                | isNotOk (ehcOptMbTargetFlavor o) -> err $ "non existent target flavor `" ++ fromNotOk (ehcOptMbTargetFlavor o) ++ "'"+                where err x+                        = do { hPutStrLn stderr ("option error: " ++ x)+                             ; exitFailure+                             }+              _ -> return ()+         ;  userDir <- ehcenvDir (envkey opts2)+         ;  let opts3 = opts2 { ehcOptUserDir = userDir+                              , ehcOptOutputDir =+                                  let outputDir = maybe "." id (ehcOptOutputDir opts2)+                                  in  case ehcOptPkgOpt opts2 of+                                        Just (PkgOption {pkgoptName=s})+                                          -> case parsePkgKey s of+                                               Just k  -> Just $+                                                          outputDir ++ "/" +++                                                          mkInternalPkgFileBase k (Cfg.installVariant opts2)+                                                                                (ehcOptTarget opts2) (ehcOptTargetFlavor opts2)+                                               _       -> ehcOptOutputDir opts2+                                        _ -> ehcOptOutputDir opts2+                              }+         ;  case ehcOptImmQuit opts3 of+              Just immq     -> handleImmQuitOption immq opts3+              _ | null errs ->+                               unless (null n) (doCompileRun n opts3)+                | otherwise -> do { putStr (head errs)+                                  ; exitFailure+                                  }+         }+  where envkey opts = mkEhcenvKey (Cfg.verFull Cfg.version) (fpathToStr $ ehcProgName opts) Cfg.ehcDefaultVariant++{-# LINE 177 "src/ehc/EHC/Main.chs" #-}+defaultEHCEnvironment :: EHCEnvironment+defaultEHCEnvironment+  = EHCEnvironment Cfg.ehcDefaultVariant Cfg.ehcDefaultInplaceInstallDir++{-# LINE 187 "src/ehc/EHC/Main.chs" #-}+handleImmQuitOption :: ImmediateQuitOption -> EHCOpts -> IO ()+handleImmQuitOption immq opts+  = case immq of+      ImmediateQuitOption_Help+        -> do {+                let progName = fpathToStr (ehcProgName opts)+              ; let inputSuffixes = catMaybes [ s | (s,_,vis) <- mkFileSuffMpHs opts, vis ]+              ; putStrLn (usageInfo (  "version: " ++ Cfg.verInfo Cfg.version ++ ", aspects: " ++ ehcOptAspects opts+                                    ++ "\n\nUsage: " ++ progName ++ " [options] [file[" ++ (concat $ intersperse "|" $ map ('.':) inputSuffixes) ++ "] ...]\n\noptions:"+                                    )+                                    ehcCmdLineOpts)+              }+        where+      ImmediateQuitOption_Version+        -> putStrLn $ Cfg.verInfo Cfg.version+                      ++ ", timestamp " ++ Sig.timestamp+      ImmediateQuitOption_Meta_Variant+        -> putStrLn Cfg.ehcDefaultVariant+      ImmediateQuitOption_Meta_Targets+        -> putStr showSupportedTargets+      ImmediateQuitOption_Meta_TargetDefault+        -> putStr (show defaultTarget)+      ImmediateQuitOption_Meta_Optimizations+        -> putStr (showStringMapKeys allOptimizeMp " ")+      ImmediateQuitOption_VersionDotted+        -> putStrLn (Cfg.verFull Cfg.version)+      ImmediateQuitOption_VersionAsNumber+        -> putStrLn (Cfg.verAsNumber Cfg.version)+{-+      ImmediateQuitOption_Meta_ExportEnv mvEnvOpt+        -> exportEHCEnvironment+             (mkEhcenvKey (Cfg.verFull Cfg.version) (fpathToStr $ ehcProgName opts) Cfg.ehcDefaultVariant)+             (env {ehcenvInstallRoot = installRootDir, ehcenvVariant = variant})+        where env = ehcOptEnvironment opts+              (installRootDir,variant)+                = case fmap (wordsBy (`elem` ",;")) mvEnvOpt of+                    Just (d:v:_) -> (d,v)+                    Just (d:_)   -> (d,ehcenvVariant env)+                    _            -> (ehcenvInstallRoot env,ehcenvVariant env)+      ImmediateQuitOption_Meta_DirEnv+        -> do { d <- ehcenvDir (mkEhcenvKey (Cfg.verFull Cfg.version) (fpathToStr $ ehcProgName opts) Cfg.ehcDefaultVariant)+              ; putStrLn d+              }+-}+      ImmediateQuitOption_Meta_Pkgdir_System+        -> do { let d = Cfg.mkInstallPkgdirSystem opts+              ; putStrLn d+              }+      ImmediateQuitOption_Meta_Pkgdir_User+        -> do { let d = Cfg.mkInstallPkgdirUser opts+              ; putStrLn d+              }++{-# LINE 269 "src/ehc/EHC/Main.chs" #-}+type FileSuffMp =+  [( FileSuffix				-- suffix+   , EHCompileUnitState		-- initial state+   , Bool					-- visible from commandline+   )]++-- | Allowed suffixes, order is significant.+mkFileSuffMpHs :: EHCOpts -> FileSuffMp+mkFileSuffMpHs opts+  = [ ( Just "hs"  , ECUS_Haskell HSStart, True )+    , ( Just "lhs" , ECUS_Haskell LHSStart, True )+    , ( Just "eh"  , ECUS_Eh EHStart, True )+    , ( Just "hi"  , ECUS_Haskell HIStart, False )+    , ( Just Cfg.suffixDotlessInputOutputTextualCore, ECUS_Core CRStartText, True   )+    , ( Just Cfg.suffixDotlessInputOutputBinaryCore , ECUS_Core CRStartBinary, True )+    , ( Just Cfg.suffixDotlessBinaryCore , ECUS_Core CRStartBinary, False )+    ]+    ++ (if targetIsOnUnixAndOrC (ehcOptTarget opts)+        then [ ( Just "c"   , ECUS_C CStart, True )+             , ( Just "o"   , ECUS_O OStart, True )+             ]+        else []+       )++{-# LINE 309 "src/ehc/EHC/Main.chs" #-}+-- Suffix map for empty suffix, defaults to .hs+fileSuffMpHsNoSuff :: FileSuffMp+fileSuffMpHsNoSuff+  = [ ( Nothing  , ECUS_Haskell HSStart, False )+    ]++{-# LINE 389 "src/ehc/EHC/Main.chs" #-}+doCompilePrepare :: [String] -> EHCOpts -> IO (Maybe (EHCOpts,[FPath],[HsName],EHCompileRun))+doCompilePrepare fnL@(fn:_) opts+  = do { let fpL@(fp:_)             = map (mkTopLevelFPath "hs") fnL+             topModNmL@(topModNm:_) = map (mkHNm . fpathBase) fpL+             -- installVariant         = Cfg.installVariant opts+       -- ; installRoot <- Cfg.installRootM opts+       -- ; userDir <- ehcenvDir (Cfg.verFull Cfg.version)+       -- ; let opts2 = opts -- {ehcOptUserDir = userDir}+       ; pkgDb1 <- pkgDbFromDirs opts+                    ({-+                        [ filePathCoalesceSeparator $ filePathUnPrefix+                          $ Cfg.mkDirbasedInstallPrefix (filelocDir d) Cfg.INST_LIB_PKG "" (show (ehcOptTarget opts)) ""+                        | d <- ehcOptPkgdirLocPath opts+                        ]+                     ++ [ filePathUnPrefix+                          $ Cfg.mkDirbasedTargetVariantPkgPrefix installRoot installVariant (show (ehcOptTarget opts)) ""+                        ]+                     -}+                     {-+                     -}+                        [ filePathUnPrefix d+                        | d <- nub $ ehcOptPkgdirLocPath opts ++ [Cfg.mkInstallPkgdirUser opts, Cfg.mkInstallPkgdirSystem opts]+                        ]+                    )+       ; let (pkgDb2,pkgErrs) = pkgDbSelectBySearchFilter (pkgSearchFilter Just PackageSearchFilter_ExposePkg (map tup123to1 $ pkgExposedPackages pkgDb1)+                                                           ++ sort (ehcOptPackageSearchFilter opts)+                                                          ) pkgDb1+             pkgDb3 = pkgDbFreeze pkgDb2+       -- ; putStrLn $ "db1 " ++ show pkgDb1+       -- ; putStrLn $ "db2 " ++ show pkgDb2+       -- ; putStrLn $ "db3 " ++ show pkgDb3+       -- ; putStrLn (show $ ehcOptPackageSearchFilter opts)+       ; ehcioinfo <- newEHCIOInfo+       ; let searchPath     = [emptyFileLoc]+                              ++ ehcOptImportFileLocPath opts+                              {-+                              ++ [ mkPkgFileLoc (p, Nothing) $ filePathUnPrefix+                                   $ Cfg.mkDirbasedLibVariantTargetPkgPrefix (filelocDir d) "" (show (ehcOptTarget opts)) p+                                 | d <- ehcOptLibFileLocPath opts+                                 , p <- ehcOptLibPackages opts+                                 ]+                              ++ [ mkPkgFileLoc p $ filePathUnPrefix+                                   $ Cfg.mkDirbasedTargetVariantPkgPrefix installRoot installVariant (show (ehcOptTarget opts)) p+                                 | p <- (   ehcOptLibPackages opts+                                         ++ (if ehcOptHideAllPackages opts then [] else Cfg.ehcAssumedPackages)+                                        )+                                 ]+                              -}+                              ++ [fileLocPkgDb]+             opts3          = opts { ehcOptImportFileLocPath = searchPath+                                    , ehcOptPkgDb = pkgDb3+                                    }+{- this does not work in ghc 6.8.2+             crsi           = emptyEHCompileRunStateInfo+                                { crsiOpts       =   opts3+                                , crsiHSInh      =   initialHSSem opts3+                                , crsiEHInh      =   initialEHSem opts3 fp+                                , crsiCoreInh    =   initialCore2GrSem opts3+                                -- , crsiHIInh      =   initialHISem opts3+                                , crsiHSModInh   =   initialHSSemMod opts3+                                }+-}+             crsi           =   (EHCompileRunStateInfo opts3+                                                       uidStart uidStart+                                                       (initialHSSem opts3)+                                                       (initialEHSem opts3 fp)+                                                       (initialCore2GrSem opts3)+                                                       Nothing+                                                       -- (initialHISem opts3)+                                                       (initialHSSemMod opts3)+                                                       Map.empty Map.empty defaultOptim+                                                       Map.empty+                                                       ehcioinfo []+                                )+             initialState   = mkEmptyCompileRun topModNm crsi+       ; return $ Just (opts3,fpL,topModNmL,initialState)+       }++doCompileRun :: [String] -> EHCOpts -> IO ()+doCompileRun fnL@(fn:_) opts+  = do { mbPrep <- doCompilePrepare fnL opts+       ; if isJust mbPrep+         then do { let ( opts+                        , fpL@(fp:_)+                        , topModNmL@(topModNm:_)+                        , initialState+                        ) = fromJust mbPrep+                       searchPath = ehcOptImportFileLocPath opts+                       fileSuffMpHs = mkFileSuffMpHs opts+                 ; when (ehcOptVerbosity opts >= VerboseDebug)+                        (putStrLn $ "search path: " ++ show searchPath)+                 ; _ <- if False -- ehcOptPriv opts+                        then runStateT (compile2 opts fileSuffMpHs searchPath fpL topModNmL) initialState+                        else runStateT (compile  opts fileSuffMpHs searchPath fpL topModNmL) initialState+                 ; return ()+                 }+         else exitFailure+       }+  where compile2 :: EHCOpts -> FileSuffMp -> FileLocPath -> [FPath] -> [HsName] -> EHCompilePhase ()+        compile2 opts fileSuffMpHs searchPath fpL topModNmL+          = do {+               -- start with directly importing top modules, providing the filepath directly+                 topModNmL' <- toplayer fpL topModNmL+               ; cpPP "topModNmL'"+               ; oneModNmL <- onelayer+               ; cpPP "oneModNmL"+               ; return ()+               }+          where toplayer fpL topModNmL+                  = zipWithM (\fp topModNm -> imp1 opts fileSuffMpHs searchPath (ECUS_Haskell HSOnlyImports) (Just fp) Nothing topModNm) fpL topModNmL+                onelayer+                  = do { cr <- get+                       ; let modNmS = Map.keysSet $ crCUCache cr+                             ms = Set.unions+                                    [ case cuState e of+                                        -- ECUS_Haskell HIOnlyImports -> ecuTransClosedOrphanModS ecu+                                        _                         -> ecuImpNmS e+                                    | m <- Set.toList modNmS, let e = crCU m cr+                                    ]+                                  `Set.difference` modNmS+                       ; sequence -- or: cpSeq + return ()+                           [ do { i@(m',_) <- imp1 opts fileSuffMpHs searchPath (ECUS_Haskell HSOnlyImports) Nothing Nothing m+                                -- ; cpEhcFullProgModuleDetermineNeedsCompile m'+                                ; return i+                                }+                           | m <- Set.toList ms+                           ]+                       }++                -- dbg+                {-+                showCompileOrder+                  = do { cr <- get+                       ; lift $ putStrLn $ "compile order: " ++ show (crCompileOrder cr)+                       }+                -}++        compile :: EHCOpts -> FileSuffMp -> FileLocPath -> [FPath] -> [HsName] -> EHCompilePhase ()+        compile opts fileSuffMpHs searchPath fpL topModNmL@(modNm:_)+          = do { cpMsg modNm VerboseDebug $ "doCompileRun.compile topModNmL: " ++ show topModNmL++               -- check module import relationship for builtin module+               ; cpCheckModsModWith (const emptyModMpInfo) [modBuiltin]++               -- start with directly importing top modules, providing the filepath directly+               ; topModNmL' <- zipWithM (\fp topModNm -> imp (ECUS_Haskell HSOnlyImports) (Just fp) Nothing topModNm) fpL topModNmL++               -- follow the import relation to chase modules which have to be analysed+               ; cpImportGatherFromModsWithImp+                   (if ehcOptPriv opts+                    then \ecu -> case ecuState ecu of+                                   -- ECUS_Haskell HIStart -> Set.toList $ ecuTransClosedOrphanModS ecu+                                   ECUS_Haskell HIOnlyImports -> [] -- Set.toList $ ecuTransClosedOrphanModS ecu+                                   _ -> ecuImpNmL ecu+                    else ecuImpNmL+                   )+                   (imp (ECUS_Haskell HSOnlyImports) Nothing) (map fst topModNmL')++               -- import orphans+               ; when (ehcOptPriv opts)+                      (do {+                          -- import orphans+                            importAlso (ECUS_Haskell HSOnlyImports) ecuTransClosedOrphanModS++                          -- import used remaining modules, but just minimally+                          ; importAlso (ECUS_Haskell HMOnlyMinimal) (Set.unions . Map.elems . ecuTransClosedUsedModMp)+                          })++               -- inhibit mutual recursiveness+               ; cpEhcCheckAbsenceOfMutRecModules++               -- and compile it all+               ; cpEhcFullProgCompileAllModules+               -- cleanup+               ; unless (ehcOptKeepIntermediateFiles opts) cpRmFilesToRm+               }+          where -- abbrev for imp1+                imp = imp1 opts fileSuffMpHs searchPath++                -- import others, but then in a (slightly) different way+                importAlso :: EHCompileUnitState -> (EHCompileUnit -> Set.Set HsName) -> EHCompilePhase ()+                importAlso how getNms+                  = do { cr <- get+                       ; let allAnalysedModS = Map.keysSet $ crCUCache cr+                             allNewS         = Set.unions [ getNms $ crCU m cr | m <- Set.toList allAnalysedModS ] `Set.difference` allAnalysedModS+                       ; cpImportGatherFromModsWithImp+                           (const [])+                           (imp how Nothing) (Set.toList allNewS)+                       }++        imp1 :: EHCOpts -> FileSuffMp -> FileLocPath -> EHCompileUnitState -> Maybe FPath -> Maybe (HsName,(FPath,FileLoc)) -> HsName -> EHCompilePhase (HsName,Maybe (HsName,(FPath,FileLoc)))+        imp1 opts fileSuffMpHs searchPath desiredState mbFp mbPrev nm+          = do { let isTopModule = isJust mbFp+                     fileSuffMpHs' = map tup123to12 $ (if isTopModule then fileSuffMpHsNoSuff else []) ++ fileSuffMpHs+               ; let searchPath' = adaptedSearchPath mbPrev+               ; fpsFound <- cpFindFilesForFPathInLocations (fileLocSearch opts) (\(x,_,_) -> x) False fileSuffMpHs' searchPath' (Just nm) mbFp+               ; when (ehcOptVerbosity opts >= VerboseDebug)+                      (do { lift $ putStrLn $ show nm ++ ": " ++ show (fmap fpathToStr mbFp) ++ ": " ++ show (map fpathToStr fpsFound)+                          ; lift $ putStrLn $ "searchPath: " ++ show searchPath'+                          })+               ; when isTopModule+                      (cpUpdCU nm (ecuSetIsTopMod True))+               ; cpUpdCU nm (ecuSetTarget (ehcOptTarget opts))+               ; case fpsFound of+                   (fp:_)+                     -> do { nm' <- cpEhcModuleCompile1 (Just desiredState) nm+                           ; cr <- get+                           ; let (ecu,_,_,_) = crBaseInfo nm' cr+                           ; return (nm',Just (nm',(fp, ecuFileLocation ecu)))+                           }+                   _ -> return (nm,Nothing)+               }+          where -- strip tail part corresponding to module name, and use it to search as well+                adaptedSearchPath (Just (prevNm,(prevFp,prevLoc)))+                  = case (fpathMbDir (mkFPath prevNm), fpathMbDir prevFp, prevLoc) of+                      (_, _, p) | filelocIsPkg p+                        -> p : searchPath+                      (Just n, Just p, _)+                        -> mkDirFileLoc (filePathUnPrefix prefix) : searchPath+                        where (prefix,_) = splitAt (length p - length n) p+                      _ -> searchPath+                adaptedSearchPath _ = searchPath+
src/UHC/Light/Compiler/Opts.hs view
@@ -109,12 +109,13 @@   show CoreOpt_RunTrace            	= "run-trace"   show CoreOpt_RunTraceExtensive	= "run-trace-extensive"   show CoreOpt_RunPPNames           = "run-ppnames"+  show CoreOpt_RunPPVerbose         = "run-ppverbose"   show _      						= "-"  coreOptMp :: Map.Map String CoreOpt coreOptMp = str2stMpWithOmit [CoreOpt_NONE] -{-# LINE 179 "src/ehc/Opts.chs" #-}+{-# LINE 180 "src/ehc/Opts.chs" #-} instance Show PgmExec where   show PgmExec_CPP      = "P"   show PgmExec_C        = "c"@@ -123,36 +124,36 @@ pgmExecMp :: Map.Map String PgmExec pgmExecMp = str2stMp -{-# LINE 195 "src/ehc/Opts.chs" #-}+{-# LINE 196 "src/ehc/Opts.chs" #-} -- do something with whole program ehcOptWholeProgOptimizationScope :: EHCOpts -> Bool ehcOptWholeProgOptimizationScope opts   = ehcOptOptimizationScope opts > OptimizationScope_PerModule -{-# LINE 202 "src/ehc/Opts.chs" #-}+{-# LINE 203 "src/ehc/Opts.chs" #-} -- compatibility option ehcOptEarlyModMerge :: EHCOpts -> Bool ehcOptEarlyModMerge opts   = ehcOptOptimizationScope opts >= OptimizationScope_WholeCore -{-# LINE 209 "src/ehc/Opts.chs" #-}+{-# LINE 210 "src/ehc/Opts.chs" #-} -- do whole program analysis, with HPT ehcOptWholeProgHPTAnalysis :: EHCOpts -> Bool ehcOptWholeProgHPTAnalysis opts   = False -{-# LINE 257 "src/ehc/Opts.chs" #-}+{-# LINE 258 "src/ehc/Opts.chs" #-} -- generate Core ehcOptEmitCore :: EHCOpts -> Bool ehcOptEmitCore opts   = ehcOptWholeProgHPTAnalysis opts || targetIsCore (ehcOptTarget opts) -{-# LINE 275 "src/ehc/Opts.chs" #-}+{-# LINE 276 "src/ehc/Opts.chs" #-} -- | optimizes a particular option ehcOptOptimizes :: Optimize -> EHCOpts -> Bool ehcOptOptimizes o opts = o `Set.member` ehcOptOptimizations opts -{-# LINE 285 "src/ehc/Opts.chs" #-}+{-# LINE 286 "src/ehc/Opts.chs" #-} -- | The default EHC options. defaultEHCOpts   = emptyEHCOpts@@ -161,7 +162,7 @@       	  ]       } -{-# LINE 301 "src/ehc/Opts.chs" #-}+{-# LINE 302 "src/ehc/Opts.chs" #-} ehcCmdLineOpts   =  [  Option "h"  ["help"]                (NoArg oHelp)                           "print this help (then stop)"      ,  Option ""   ["version"]             (NoArg oVersion)                        "print version info (then stop)"@@ -221,7 +222,7 @@                                                                                     "pgm: alternate executable used by compiler, currently only P (preprocessing)"      ,  Option ""   ["coreopt"]             (ReqArg oOptCore "opt[,...]")           ("opts (specific) for core: " ++ showStr2stMp coreOptMp)      ]-{-# LINE 478 "src/ehc/Opts.chs" #-}+{-# LINE 479 "src/ehc/Opts.chs" #-}   where  oPretty     ms  o =  case ms of                                 Just "-"     -> o { ehcOptShowEH       = False     }                                 Just "no"    -> o { ehcOptShowEH       = False     }@@ -382,14 +383,14 @@                                                                               nub $ ehcOptCmdLineOpts o ++ fst (parseCmdLineOpts cmd s) }          oPgmExec     cmd     s o   = o { ehcOptPgmExecMp                   = Map.insert cmd s $ ehcOptPgmExecMp o } -{-# LINE 775 "src/ehc/Opts.chs" #-}+{-# LINE 776 "src/ehc/Opts.chs" #-} intArg  tr = ReqArg (optInt tr) "<nr>"  optInt :: (EHCOpts -> Int -> EHCOpts) -> String -> EHCOpts -> EHCOpts optInt tr s o  = tr o $ read s -{-# LINE 783 "src/ehc/Opts.chs" #-}+{-# LINE 784 "src/ehc/Opts.chs" #-} -- | What kind of optional args are allowed data OptArgAllow   = OptArgAllow_Bool@@ -399,13 +400,13 @@ optArgAllAllow :: [OptArgAllow] optArgAllAllow = [minBound .. maxBound] -{-# LINE 794 "src/ehc/Opts.chs" #-}+{-# LINE 795 "src/ehc/Opts.chs" #-} -- | An optional arg, universal type for all occurring variants data OptArg   = OptArg_Bool     Bool   | OptArg_Int      Int -{-# LINE 801 "src/ehc/Opts.chs" #-}+{-# LINE 802 "src/ehc/Opts.chs" #-} optArgTake :: [OptArgAllow] -> String -> Maybe (OptArg,String) optArgTake allow s   = case s of@@ -426,7 +427,7 @@   where yesInt = OptArgAllow_Int `elem` allow         noInt  = not yesInt -{-# LINE 823 "src/ehc/Opts.chs" #-}+{-# LINE 824 "src/ehc/Opts.chs" #-} optBooleanTake :: String -> Maybe (Bool,String) optBooleanTake s   = case optArgTake [OptArgAllow_Bool] s of@@ -442,22 +443,22 @@ boolArgStr = "Bool" boolArg tr = OptArg (optBoolean tr) boolArgStr -{-# LINE 844 "src/ehc/Opts.chs" #-}+{-# LINE 845 "src/ehc/Opts.chs" #-} oPriv                o b = o { ehcOptPriv           = b } -{-# LINE 848 "src/ehc/Opts.chs" #-}+{-# LINE 849 "src/ehc/Opts.chs" #-} optDumpCoreStages    o b = o { ehcOptDumpCoreStages = b } -{-# LINE 856 "src/ehc/Opts.chs" #-}+{-# LINE 857 "src/ehc/Opts.chs" #-} oSetGenTrampoline	 o b = o { ehcOptGenTrampoline_ = b } -{-# LINE 876 "src/ehc/Opts.chs" #-}+{-# LINE 877 "src/ehc/Opts.chs" #-} oStopAtCoreError     o b = o { ehcDebugStopAtCoreError     = b } -{-# LINE 880 "src/ehc/Opts.chs" #-}+{-# LINE 881 "src/ehc/Opts.chs" #-} oStopAtHIError       o b = o { ehcDebugStopAtHIError       = b } -{-# LINE 888 "src/ehc/Opts.chs" #-}+{-# LINE 889 "src/ehc/Opts.chs" #-} -- | Apply the cmdline opts description to a EHCOpts, returning Nothing when there were no options ehcCmdLineOptsApply :: [EHCOpts -> EHCOpts] -> [String] -> EHCOpts -> (Maybe EHCOpts, [String], [String]) ehcCmdLineOptsApply postopts args opts@@ -465,7 +466,7 @@   where oo@(o,n,errs)  = getOpt Permute ehcCmdLineOpts args         o' = o ++ postopts -{-# LINE 901 "src/ehc/Opts.chs" #-}+{-# LINE 902 "src/ehc/Opts.chs" #-} optsDiscrRecompileRepr :: EHCOpts -> String optsDiscrRecompileRepr opts   = concat@@ -479,12 +480,12 @@       ]   where o m v = if v then m else "" -{-# LINE 922 "src/ehc/Opts.chs" #-}+{-# LINE 923 "src/ehc/Opts.chs" #-} data FIOBind   = FIOBindYes | FIOBindNoBut TyVarIdS   deriving (Show) -{-# LINE 928 "src/ehc/Opts.chs" #-}+{-# LINE 929 "src/ehc/Opts.chs" #-} data FIOpts =  FIOpts   {  fioLeaveRInst     ::  !Bool                ,  fioBindRFirst           ::  !Bool                         ,  fioBindLFirst     ::  !Bool                ,  fioBindLBeforeR         ::  !Bool                         ,  fioMode           ::  !FIMode              ,  fioUniq                 ::  !UID@@ -497,7 +498,7 @@                         ,  fiMbMkErrClash    ::  Maybe (Ty -> Ty -> Err) -- alternate error construction for type clash                         } -{-# LINE 962 "src/ehc/Opts.chs" #-}+{-# LINE 963 "src/ehc/Opts.chs" #-} fioBindNoSet :: FIOBind -> TyVarIdS fioBindNoSet (FIOBindNoBut s) = s fioBindNoSet _                = Set.empty@@ -506,7 +507,7 @@ fioBindIsYes FIOBindYes = True fioBindIsYes _          = False -{-# LINE 972 "src/ehc/Opts.chs" #-}+{-# LINE 973 "src/ehc/Opts.chs" #-} strongFIOpts :: FIOpts strongFIOpts =  FIOpts  {  fioLeaveRInst     =   False               ,  fioBindRFirst           =   True                         ,  fioBindLFirst     =   True                ,  fioBindLBeforeR         =   True@@ -520,11 +521,11 @@                         ,  fiMbMkErrClash    =   Nothing                         } -{-# LINE 1002 "src/ehc/Opts.chs" #-}+{-# LINE 1003 "src/ehc/Opts.chs" #-} instance Show FIOpts where   show o =  "FIOpts" -{-# LINE 1007 "src/ehc/Opts.chs" #-}+{-# LINE 1008 "src/ehc/Opts.chs" #-} instance PP FIOpts where   pp   o =  "FIOpts{"             >#< "leaveRInst=" >|< pp (fioLeaveRInst o)@@ -535,33 +536,33 @@             >#< "allowRPredElim=" >|< pp (fioAllowRPredElim o)             >#< "}" -{-# LINE 1023 "src/ehc/Opts.chs" #-}+{-# LINE 1024 "src/ehc/Opts.chs" #-} instLFIOpts :: FIOpts instLFIOpts = strongFIOpts {fioBindRFirst = False} -{-# LINE 1028 "src/ehc/Opts.chs" #-}+{-# LINE 1029 "src/ehc/Opts.chs" #-} instLRFIOpts :: FIOpts instLRFIOpts = strongFIOpts {fioBindRFirst = False, fioBindLFirst = False} -{-# LINE 1033 "src/ehc/Opts.chs" #-}+{-# LINE 1034 "src/ehc/Opts.chs" #-} unifyFIOpts :: FIOpts unifyFIOpts = strongFIOpts {fioMode = FitUnify}  instFIOpts :: FIOpts instFIOpts = instLFIOpts {fioLeaveRInst = True, fioBindLFirst = False} -{-# LINE 1052 "src/ehc/Opts.chs" #-}+{-# LINE 1053 "src/ehc/Opts.chs" #-} weakFIOpts :: FIOpts weakFIOpts = fioMkWeak strongFIOpts -{-# LINE 1057 "src/ehc/Opts.chs" #-}+{-# LINE 1058 "src/ehc/Opts.chs" #-} predFIOpts :: FIOpts predFIOpts = strongFIOpts {fioPredAsTy = True, fioLeaveRInst = True}  implFIOpts  :: FIOpts implFIOpts = strongFIOpts {fioAllowRPredElim = False} -{-# LINE 1065 "src/ehc/Opts.chs" #-}+{-# LINE 1066 "src/ehc/Opts.chs" #-} fioSwapOpts :: FIOpts -> FIOpts fioSwapOpts fio   = fio@@ -575,24 +576,24 @@ fioSwapPolarity :: Polarity -> FIOpts -> FIOpts fioSwapPolarity pol fio = fio {fioMode = fimSwapPol pol (fioMode fio)} -{-# LINE 1082 "src/ehc/Opts.chs" #-}+{-# LINE 1083 "src/ehc/Opts.chs" #-} fioMkStrong :: FIOpts -> FIOpts fioMkStrong fi = fi {fioLeaveRInst = False, fioBindRFirst = True, fioBindLFirst = True} -{-# LINE 1087 "src/ehc/Opts.chs" #-}+{-# LINE 1088 "src/ehc/Opts.chs" #-} fioMkWeak :: FIOpts -> FIOpts fioMkWeak fi = fi {fioLeaveRInst = True, fioBindRFirst = False} -{-# LINE 1092 "src/ehc/Opts.chs" #-}+{-# LINE 1093 "src/ehc/Opts.chs" #-} -- | Adapt options for extracting final ty fioMkFinal :: FIOpts -> FIOpts fioMkFinal fi = fi {fioBindLFirst = False, fioBindRFirst = False, fioExpandEqTyVar = True} -{-# LINE 1098 "src/ehc/Opts.chs" #-}+{-# LINE 1099 "src/ehc/Opts.chs" #-} fioMkUnify :: FIOpts -> FIOpts fioMkUnify fi = fi {fioMode = FitUnify} -{-# LINE 1107 "src/ehc/Opts.chs" #-}+{-# LINE 1108 "src/ehc/Opts.chs" #-} fioIsSubsume :: FIOpts -> Bool fioIsSubsume fio =  case fioMode fio of {FitSubLR -> True ; _ -> False} 
src/UHC/Light/Compiler/Opts/Base.hs view
@@ -85,12 +85,14 @@   | CoreOpt_DumpAlsoNonParseable-- dump also the parts which are not parseable   | CoreOpt_Run					-- run after compilation   | CoreOpt_RunDump				-- dump CoreRun+  | CoreOpt_RunDumpVerbose		-- dump CoreRun, more verbose   | CoreOpt_RunTrace			-- trace during running CoreRun   | CoreOpt_RunTraceExtensive	-- trace during running CoreRun, with extensive info, implies CoreOpt_RunTrace   | CoreOpt_RunPPNames			-- when dump/run CoreRun print names instead of+  | CoreOpt_RunPPVerbose		-- when dump CoreRun print more verbose info in comment   deriving (Eq,Enum,Bounded) -{-# LINE 171 "src/ehc/Opts/Base.chs" #-}+{-# LINE 173 "src/ehc/Opts/Base.chs" #-} -- | Pgm (internal program used) options, in particular alternate internal shell commands data PgmExec   = PgmExec_CPP				-- alternate CPP@@ -98,7 +100,7 @@   | PgmExec_Linker			-- alternate linker   deriving (Eq,Ord,Enum,Bounded) -{-# LINE 180 "src/ehc/Opts/Base.chs" #-}+{-# LINE 182 "src/ehc/Opts/Base.chs" #-} -- | Wrapper around options, adding semantics for adapting cmd specific behavior data ExecOpt   = ExecOpt_Plain String						-- ^ plain option@@ -107,7 +109,7 @@ execOptsPlain :: [ExecOpt] -> [String] execOptsPlain o = [ s | ExecOpt_Plain s <- o ] -{-# LINE 196 "src/ehc/Opts/Base.chs" #-}+{-# LINE 198 "src/ehc/Opts/Base.chs" #-} -- | The options to use. data EHCOpts   = EHCOpts@@ -191,7 +193,7 @@       												-- default options for commands       } -{-# LINE 361 "src/ehc/Opts/Base.chs" #-}+{-# LINE 363 "src/ehc/Opts/Base.chs" #-} emptyEHCOpts   = EHCOpts       {  ehcOptTrace            =   \_ x -> x@@ -264,14 +266,14 @@       ,  ehcOptExecOptsMp		=   Map.empty       } -{-# LINE 532 "src/ehc/Opts/Base.chs" #-}+{-# LINE 534 "src/ehc/Opts/Base.chs" #-} ehcOptTarget :: EHCOpts -> Target ehcOptTarget = maybeOk (\s -> panic ("ehcOptTarget: " ++ s)) id  . ehcOptMbTarget  ehcOptTargetFlavor :: EHCOpts -> TargetFlavor ehcOptTargetFlavor = maybeOk (\s -> panic ("ehcOptTargetFlavor: " ++ s)) id . ehcOptMbTargetFlavor -{-# LINE 540 "src/ehc/Opts/Base.chs" #-}+{-# LINE 542 "src/ehc/Opts/Base.chs" #-} -- | Generate system F (20120421 AD: very much under construction) ehcOptCoreSysF :: EHCOpts -> Bool ehcOptCoreSysF _    = False@@ -288,7 +290,7 @@ ehcOptCoreSysFCheckOnlyVal :: EHCOpts -> Bool ehcOptCoreSysFCheckOnlyVal opts = ehcOptCoreSysFCheck opts -{-# LINE 574 "src/ehc/Opts/Base.chs" #-}+{-# LINE 576 "src/ehc/Opts/Base.chs" #-} -- generate bytecode ehcOptEmitExecBytecode :: EHCOpts -> Bool ehcOptEmitExecBytecode _ = False@@ -296,12 +298,12 @@ ehcOptEmitBytecode :: EHCOpts -> Bool ehcOptEmitBytecode _ = False -{-# LINE 631 "src/ehc/Opts/Base.chs" #-}+{-# LINE 633 "src/ehc/Opts/Base.chs" #-} -- | Check Cmm ehcOptCmmCheck :: EHCOpts -> Bool ehcOptCmmCheck _    = False -{-# LINE 641 "src/ehc/Opts/Base.chs" #-}+{-# LINE 643 "src/ehc/Opts/Base.chs" #-} -- | Via Core -> Grin -> CMM -> JS ? ehcOptIsViaGrinCmmJavaScript :: EHCOpts -> Bool ehcOptIsViaGrinCmmJavaScript opts@@ -313,31 +315,31 @@   = targetIsViaCoreJavaScript t   where t = ehcOptTarget opts -{-# LINE 662 "src/ehc/Opts/Base.chs" #-}+{-# LINE 664 "src/ehc/Opts/Base.chs" #-} ehcOptIsViaCmm :: EHCOpts -> Bool ehcOptIsViaCmm opts = ehcOptIsViaGrinCmmJavaScript opts {-# INLINE ehcOptIsViaCmm #-} -{-# LINE 668 "src/ehc/Opts/Base.chs" #-}+{-# LINE 670 "src/ehc/Opts/Base.chs" #-} ehcOptIsViaGrin :: EHCOpts -> Bool ehcOptIsViaGrin opts = ehcOptIsViaGrinCmmJavaScript opts || targetIsGrinBytecode t || targetDoesHPTAnalysis t   where t = ehcOptTarget opts -{-# LINE 678 "src/ehc/Opts/Base.chs" #-}+{-# LINE 680 "src/ehc/Opts/Base.chs" #-} ehcOptBuiltin :: EHCOpts -> (EHBuiltinNames -> x) -> x ehcOptBuiltin o f = f $ ehcOptBuiltinNames o  ehcOptBuiltin2 :: EHCOpts -> (EHBuiltinNames -> Int -> HsName) -> Int -> HsName ehcOptBuiltin2 o f i = f (ehcOptBuiltinNames o) i -{-# LINE 690 "src/ehc/Opts/Base.chs" #-}+{-# LINE 692 "src/ehc/Opts/Base.chs" #-} -- | Either fromJust with a possible panic, or with a default value (when debugging) ehcOptFromJust :: EHCOpts -> String -> a -> Maybe a -> a ehcOptFromJust opts panicMsg n m   | ehcOptDebug opts = maybe n id m   | otherwise        = panicJust panicMsg m -{-# LINE 702 "src/ehc/Opts/Base.chs" #-}+{-# LINE 704 "src/ehc/Opts/Base.chs" #-} -- | Do linking into executable? ehcOptDoExecLinking :: EHCOpts -> Bool ehcOptDoExecLinking opts = ehcOptLinkingStyle opts == LinkingStyle_Exec
src/UHC/Light/Compiler/Scanner/Common.hs view
@@ -156,6 +156,7 @@         ehScanOpts' = ehScanOpts opts  {-# LINE 264 "src/ehc/Scanner/Common.chs" #-}+-- | 'ScanOpts' for 'Core' tokenization before parsing coreScanOpts :: EHCOpts -> ScanOpts coreScanOpts opts   =  grinScanOpts@@ -183,7 +184,22 @@   where hsScanOpts' = hsScanOpts opts         ehScanOpts' = ehScanOpts opts -{-# LINE 301 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 300 "src/ehc/Scanner/Common.chs" #-}+-- | 'ScanOpts' for 'CoreRun' tokenization before parsing+corerunScanOpts :: {- EHCOpts -> -} ScanOpts+corerunScanOpts -- opts+  =  defaultScanOpts+        {   scoKeywordsTxt      =   Set.fromList $+                                        [ "alloc", "module", "tail", "eval", "case", "of", "let", "in", "app", "ffi", "dbg", "tag"+                                        , "g", "d", "l"+                                        ]+        ,   scoKeywordsOps      =   Set.fromList [ "->", "\\" ]+        ,   scoSpecChars        =   Set.fromList "();,."+        ,   scoOpChars          =   Set.fromList "->\\"+        ,   scoAllowFloat       =   False+        }++{-# LINE 318 "src/ehc/Scanner/Common.chs" #-} tycoreScanOpts :: ScanOpts tycoreScanOpts   =  defaultScanOpts@@ -203,7 +219,7 @@         ,   scoDollarIdent      =   True         } -{-# LINE 332 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 349 "src/ehc/Scanner/Common.chs" #-} grinScanOpts :: ScanOpts grinScanOpts   =  defaultScanOpts@@ -228,14 +244,14 @@         ,   scoDollarIdent      =   True         } -{-# LINE 364 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 381 "src/ehc/Scanner/Common.chs" #-} tyScanOpts :: ScanOpts tyScanOpts   =  defaultScanOpts         {   scoKeywordsTxt      =   Set.fromList [ "uid" ]         } -{-# LINE 372 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 389 "src/ehc/Scanner/Common.chs" #-} hsnScanOpts :: ScanOpts hsnScanOpts   =  defaultScanOpts@@ -270,7 +286,7 @@         }   where hsScanOpts' = hsScanOpts emptyEHCOpts -{-# LINE 421 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 438 "src/ehc/Scanner/Common.chs" #-} foreignEntScanOpts :: FFIWay -> ScanOpts foreignEntScanOpts way   =  o {   scoKeywordsTxt      =   Set.fromList [ "dynamic", "wrapper", "h", "static", "new", "js" ]@@ -286,7 +302,7 @@               _                 -> ("" , "" )  -{-# LINE 460 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 477 "src/ehc/Scanner/Common.chs" #-} splitTokensOnModuleTrigger :: ScanOpts -> [Token] -> Maybe ([Token],[Token]) splitTokensOnModuleTrigger scanOpts ts   = case break ismod ts of@@ -295,7 +311,7 @@   where ismod (Reserved s _) | s == scoOffsideModule scanOpts = True         ismod _                                               = False -{-# LINE 470 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 487 "src/ehc/Scanner/Common.chs" #-} offsideScanHandle :: ScanOpts -> FilePath -> Handle -> IO (OffsideInput [Token] Token (Maybe Token)) offsideScanHandle scanOpts fn fh   = do  {  tokens <- scanHandle scanOpts fn fh@@ -311,7 +327,7 @@           triggers  =  [ (Trigger_IndentGT,reserved x noPos) | x <- scoOffsideTrigs   scanOpts ]                     ++ [ (Trigger_IndentGE,reserved x noPos) | x <- scoOffsideTrigsGE scanOpts ] -{-# LINE 495 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 512 "src/ehc/Scanner/Common.chs" #-} floatDenot2NomDenom :: String -> (Integer,Integer) floatDenot2NomDenom denot   = (numerator f,denominator f)@@ -330,7 +346,7 @@ intDenot2Integer :: Int -> String -> Integer intDenot2Integer b s = getBaseNumber (toInteger b) s -{-# LINE 520 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 537 "src/ehc/Scanner/Common.chs" #-} pKeyTk, pKeyTk'         ::  IsParser p Token                               => String -> p Token pKeyTk  key             =   pCostReserved' 9 key@@ -339,18 +355,18 @@ pKeyw                   ::  (IsParser p Token,Show k) => k -> p Token pKeyw k                 =   pKeyTk (show k) -{-# LINE 530 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 547 "src/ehc/Scanner/Common.chs" #-} pKeywHsNname            ::  (IsParser p Token,Show k) => k -> p HsName pKeywHsNname k          =   tokMkQName <$> pKeyw k  -{-# LINE 536 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 553 "src/ehc/Scanner/Common.chs" #-} pStringTk, pCharTk,   pInteger8Tk, pInteger10Tk, pInteger16Tk, pFractionTk,-{-# LINE 544 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 561 "src/ehc/Scanner/Common.chs" #-}   pQVaridTk, pQConidTk,   pQVarsymTk, pQConsymTk,-{-# LINE 548 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 565 "src/ehc/Scanner/Common.chs" #-}   pVaridTk , pConidTk ,   pVaridTk', pConidTk',   pTextnmTk, pTextlnTk, pIntegerTk, pVarsymTk, pConsymTk@@ -371,13 +387,13 @@ pTextnmTk     =   pHsCostValToken' 7 TkTextnm    "<name>" pTextlnTk     =   pHsCostValToken' 7 TkTextln    "<line>" pIntegerTk    =   pInteger10Tk-{-# LINE 576 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 593 "src/ehc/Scanner/Common.chs" #-} pQVaridTk     =   pHsCostValToken' 7 TkQVarid     "<identifier>" pQConidTk     =   pHsCostValToken' 7 TkQConid     "<Identifier>" pQConsymTk    =   pHsCostValToken' 7 TkQConOp     "<conoperator>" pQVarsymTk    =   pHsCostValToken' 7 TkQOp        "<operator>" -{-# LINE 587 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 604 "src/ehc/Scanner/Common.chs" #-} pCONID, pCONID', pCONSYM, pVARID, pVARID', pVARSYM :: IsParser p Token => p Token  pCONID           = pConidTk@@ -387,7 +403,7 @@ pVARID'          = pVaridTk' pVARSYM          = pVarsymTk -{-# LINE 607 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 624 "src/ehc/Scanner/Common.chs" #-} pQCONID, pQCONSYM, pQVARID, pQVARSYM :: IsParser p Token => p Token  pQCONID          = pQConidTk@@ -395,7 +411,7 @@ pQVARID          = pQVaridTk pQVARSYM         = pQVarsymTk -{-# LINE 620 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 637 "src/ehc/Scanner/Common.chs" #-} tokGetVal :: Token -> String tokGetVal x   = tokenVal x@@ -406,14 +422,14 @@ pHNm :: (IsParser p Token) => p Token -> p HsName pHNm p = (hsnFromString . tokGetVal) <$> p -{-# LINE 642 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 659 "src/ehc/Scanner/Common.chs" #-} tokConcat :: Token -> Token -> Token tokConcat t1 t2 = Reserved (tokenVal t1 ++ tokenVal t2) (position t1)  tokEmpty :: Token tokEmpty = Reserved "" noPos -{-# LINE 654 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 671 "src/ehc/Scanner/Common.chs" #-} pMODULE        ,     pWHERE     ,     pSEMI      ,@@ -447,7 +463,7 @@     pIN   :: IsParser p Token => p Token -{-# LINE 689 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 706 "src/ehc/Scanner/Common.chs" #-} pMODULE          = pKeyTk "module" pWHERE           = pKeyTk "where" pSEMI            = pKeyTk ";"@@ -485,29 +501,29 @@ tokOpStrsEH1   = [ "=", "\\", show hsnArrow, "::", "@" ] tokOpStrsHS1   = [ "-", "*", "!", "_", "%", "." ] -{-# LINE 728 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 745 "src/ehc/Scanner/Common.chs" #-} pTDOT    	,     pQDOT   :: IsParser p Token => p Token -{-# LINE 734 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 751 "src/ehc/Scanner/Common.chs" #-} pTDOT            = pKeyTk "..." pQDOT            = pKeyTk "...."  tokOpStrsEH2   = [ "...", "...." ] tokOpStrsHS2   = [  ] -{-# LINE 742 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 759 "src/ehc/Scanner/Common.chs" #-} tokOpStrsEH3   = [ "%" ] tokOpStrsHS3   = [  ] -{-# LINE 747 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 764 "src/ehc/Scanner/Common.chs" #-} pFORALL       ,     pEXISTS   ,     pTILDE   :: IsParser p Token => p Token -{-# LINE 754 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 771 "src/ehc/Scanner/Common.chs" #-} pFORALL          = pKeyTk "forall" pEXISTS          = pKeyTk "exists" pTILDE           = pKeyTk (show hsnEqTilde)@@ -517,7 +533,7 @@ tokOpStrsEH4   = [ ".", show hsnEqTilde ] tokOpStrsHS4   = [  ] -{-# LINE 765 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 782 "src/ehc/Scanner/Common.chs" #-} pLARROW        ,     pVBAR      ,     pDATA      ,@@ -530,7 +546,7 @@     pDOTDOT   :: IsParser p Token => p Token -{-# LINE 779 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 796 "src/ehc/Scanner/Common.chs" #-} pLARROW          = pKeyTk "<-" pVBAR            = pKeyTk "|" pDATA            = pKeyTk "data"@@ -547,12 +563,12 @@ tokOpStrsEH5   = [ "|" ] tokOpStrsHS5   = [ "<-", "..", ":" ] -{-# LINE 797 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 814 "src/ehc/Scanner/Common.chs" #-} pFFORALL      ,     pEEXISTS   :: IsParser p Token => p Token -{-# LINE 803 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 820 "src/ehc/Scanner/Common.chs" #-} pFFORALL         = pKeyTk "Forall" pEEXISTS         = pKeyTk "Exists" @@ -562,7 +578,7 @@ tokOpStrsEH6   = [ "*" ] tokOpStrsHS6   = [  ] -{-# LINE 814 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 831 "src/ehc/Scanner/Common.chs" #-} pOROWREC        ,     pCROWREC    ,     pOROWROW    ,@@ -573,7 +589,7 @@     pHASH   :: IsParser p Token => p Token -{-# LINE 826 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 843 "src/ehc/Scanner/Common.chs" #-} pOROWREC         = pKeyTk (show hsnORec) pCROWREC         = pKeyTk (show hsnCRec) pOROWROW         = pKeyTk (show hsnORow)@@ -583,11 +599,11 @@ pCOLEQUAL        = pKeyTk ":=" pHASH            = pKeyTk "#" -{-# LINE 837 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 854 "src/ehc/Scanner/Common.chs" #-} tokOpStrsEH7   = [ ":=", "#" ] tokOpStrsHS7   = [  ] -{-# LINE 842 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 859 "src/ehc/Scanner/Common.chs" #-} pLABEL          ,     pLETSTRICT  ,     pSAFE       ,@@ -597,7 +613,7 @@     pEXPORT   :: IsParser p Token => p Token -{-# LINE 853 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 870 "src/ehc/Scanner/Common.chs" #-} pLABEL           = pKeyTk "label" pLETSTRICT       = pKeyTk "letstrict" pSAFE            = pKeyTk "safe"@@ -611,13 +627,13 @@   ++ map show allFFIWays tokKeywStrsHS8 = [ "default", "export", "label", "safe" ] -{-# LINE 870 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 887 "src/ehc/Scanner/Common.chs" #-} pFFIWay :: IsParser p Token => p (FFIWay,Token) pFFIWay   =   pAnyKey (\way -> (,) way <$> pKeyTk (show way)) allFFIWays   <?> "pFFIWay" -{-# LINE 880 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 897 "src/ehc/Scanner/Common.chs" #-} pDARROW         ,     pLTCOLON    ,     pOIMPL      ,@@ -627,7 +643,7 @@     pDO   :: IsParser p Token => p Token -{-# LINE 891 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 908 "src/ehc/Scanner/Common.chs" #-} pDARROW          = pKeyTk (show hsnPrArrow) pLTCOLON         = pKeyTk "<:" pOIMPL           = pKeyTk (show hsnOImpl)@@ -641,31 +657,31 @@ tokOpStrsEH9   = [ show hsnPrArrow, "<:" ] tokOpStrsHS9   = [  ] -{-# LINE 906 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 923 "src/ehc/Scanner/Common.chs" #-} tokOpStrsEH10  = [] -- [ show hsnDynVar ] tokOpStrsHS10  = [  ] -{-# LINE 914 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 931 "src/ehc/Scanner/Common.chs" #-} pTYPE   :: IsParser p Token => p Token -{-# LINE 919 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 936 "src/ehc/Scanner/Common.chs" #-} pTYPE            = pKeyTk "type" -{-# LINE 923 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 940 "src/ehc/Scanner/Common.chs" #-} tokKeywStrsEH11 = [ "type" ] tokKeywStrsHS11 = [  ] tokOpStrsEH11   = [  ] tokOpStrsHS11   = [  ] -{-# LINE 930 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 947 "src/ehc/Scanner/Common.chs" #-} pQUALIFIED      ,     pQUESTQUEST ,     pAS         ,     pHIDING   :: IsParser p Token => p Token -{-# LINE 938 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 955 "src/ehc/Scanner/Common.chs" #-} pQUALIFIED       = pKeyTk "qualified" pAS              = pKeyTk "as" pHIDING          = pKeyTk "hiding"@@ -674,7 +690,7 @@ tokKeywStrsEH12 = [  ] tokKeywStrsHS12 = [ "qualified", "as", "hiding" ] -{-# LINE 948 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 965 "src/ehc/Scanner/Common.chs" #-} pDERIVING   :: IsParser p Token => p Token @@ -682,7 +698,7 @@  tokKeywStrsEH91 = [ "deriving" ] -{-# LINE 957 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 974 "src/ehc/Scanner/Common.chs" #-} pUNSAFE     ,     pTHREADSAFE ,     pDYNAMIC    ,@@ -707,7 +723,7 @@ tokKeywStrsEH90  = [  ] tokKeywStrsHS90  = [ "unsafe", "threadsafe", "dynamic" ] -{-# LINE 983 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 1000 "src/ehc/Scanner/Common.chs" #-} pFUSE         ,     -- pWITH     ,     pCONVERT@@ -720,7 +736,7 @@ tokKeywStrsEH93  = [  ] tokKeywStrsHS93  = [ "fuse", "convert" ] -{-# LINE 997 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 1014 "src/ehc/Scanner/Common.chs" #-} pLANGUAGE_prag  		, 	pOPTIONSUHC_prag  	, 	pDERIVABLE_prag		,
src/UHC/Light/Compiler/SourceCodeSig.hs view
@@ -1,3 +1,3 @@ module UHC.Light.Compiler.SourceCodeSig where-sig = "e362a66c2b262f178ba80e9829fe11ef"-timestamp = "20141203 +0100 194158"+sig = "88e25b6e2379e17cbb7b27ddc64c464d"+timestamp = "20141212 +0100 203904"
uhc-light.cabal view
@@ -1,5 +1,5 @@ Name:				uhc-light-Version:			1.1.7.4+Version:			1.1.8.0 License:			BSD3 Copyright:			Utrecht University, Department of Information and Computing Sciences, Software Technology group Build-Type:			 Simple @@ -12,18 +12,24 @@ Synopsis:			Part of UHC packaged as cabal/hackage installable library Description:		A 'light' variant of UHC including only an API and an executable for compiling to Core representation. This version is just to test the infrastructure. Later versions will provide a fleshing out of the API etc.. Cabal-Version:      >= 1.8-data-files:          103/lib/ag/AnaDomain/AbsSyn.ag,103/lib/ag/Cmm/AbsSyn.ag,103/lib/ag/Core/AbsSyn.ag,103/lib/ag/CoreRun/AbsSyn.ag,103/lib/ag/EH/AbsSyn.ag,103/lib/ag/Error/AbsSyn.ag,103/lib/ag/Foreign/AbsSyn.ag,103/lib/ag/GrinByteCode/AbsSyn.ag,103/lib/ag/GrinCode/AbsSyn.ag,103/lib/ag/HS/AbsSyn.ag,103/lib/ag/JavaScript/AbsSyn.ag,103/lib/ag/JVMClass/AbsSyn.ag,103/lib/ag/LLVM/AbsSyn.ag,103/lib/ag/Silly/AbsSyn.ag,103/lib/ag/Ty/AbsSyn.ag,103/lib/ag/TyCore/AbsSyn.ag,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi,103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/CompileAll,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/include/consUtils.h,103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.hi +data-files:          103/lib/ag/AnaDomain/AbsSyn.ag,103/lib/ag/Cmm/AbsSyn.ag,103/lib/ag/Core/AbsSyn.ag,103/lib/ag/CoreRun/AbsSyn.ag,103/lib/ag/EH/AbsSyn.ag,103/lib/ag/Error/AbsSyn.ag,103/lib/ag/Foreign/AbsSyn.ag,103/lib/ag/GrinByteCode/AbsSyn.ag,103/lib/ag/GrinCode/AbsSyn.ag,103/lib/ag/HS/AbsSyn.ag,103/lib/ag/JavaScript/AbsSyn.ag,103/lib/ag/JVMClass/AbsSyn.ag,103/lib/ag/LLVM/AbsSyn.ag,103/lib/ag/Silly/AbsSyn.ag,103/lib/ag/Ty/AbsSyn.ag,103/lib/ag/TyCore/AbsSyn.ag,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi,103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/CompileAll,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/include/consUtils.h,103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.8.0/103/cr/plain/Unsafe/Coerce.hi  extra-source-files:  changelog.md   Library   Hs-Source-Dirs:       src   Build-Depends:		fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale   Extensions:			RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,OverlappingInstances,LiberalTypeSynonyms,StandaloneDeriving,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables-  Exposed-Modules:		 UHC.Light.Compiler.API,UHC.Light.Compiler.Base.API,UHC.Light.Compiler.Core.API -  Other-Modules:		 Paths_uhc_light,UHC.Light.Compiler.AbstractCore,UHC.Light.Compiler.AbstractCore.Utils,UHC.Light.Compiler.AnaDomain,UHC.Light.Compiler.AnaDomain.Ftv,UHC.Light.Compiler.AnaDomain.Pretty,UHC.Light.Compiler.AnaDomain.Trf.Instantiate,UHC.Light.Compiler.AnaDomain.Trf.Subst,UHC.Light.Compiler.AnaDomain.Utils,UHC.Light.Compiler.Base.CfgPP,UHC.Light.Compiler.Base.Common,UHC.Light.Compiler.Base.Debug,UHC.Light.Compiler.Base.FileSearchLocation,UHC.Light.Compiler.Base.Fld,UHC.Light.Compiler.Base.HsName,UHC.Light.Compiler.Base.HsName.Builtin,UHC.Light.Compiler.Base.Optimize,UHC.Light.Compiler.Base.PackageDatabase,UHC.Light.Compiler.Base.ParseUtils,UHC.Light.Compiler.Base.Parser,UHC.Light.Compiler.Base.Parser2,UHC.Light.Compiler.Base.Pragma,UHC.Light.Compiler.Base.RLList,UHC.Light.Compiler.Base.Range,UHC.Light.Compiler.Base.Strictness,UHC.Light.Compiler.Base.Target,UHC.Light.Compiler.Base.TermLike,UHC.Light.Compiler.Base.TreeTrie,UHC.Light.Compiler.Base.UID,UHC.Light.Compiler.CHR,UHC.Light.Compiler.CHR.Constraint,UHC.Light.Compiler.CHR.Key,UHC.Light.Compiler.CHR.Solve,UHC.Light.Compiler.CodeGen.BasicAnnot,UHC.Light.Compiler.CodeGen.Bits,UHC.Light.Compiler.CodeGen.BuiltinPrims,UHC.Light.Compiler.CodeGen.BuiltinSizeInfo,UHC.Light.Compiler.CodeGen.CVar,UHC.Light.Compiler.CodeGen.Const,UHC.Light.Compiler.CodeGen.ImportUsedModules,UHC.Light.Compiler.CodeGen.ModuleImportExportImpl,UHC.Light.Compiler.CodeGen.RefGenerator,UHC.Light.Compiler.CodeGen.Tag,UHC.Light.Compiler.CodeGen.TrfUtils,UHC.Light.Compiler.CodeGen.ValAccess,UHC.Light.Compiler.Config,UHC.Light.Compiler.ConfigCabal,UHC.Light.Compiler.ConfigDefines,UHC.Light.Compiler.ConfigInstall,UHC.Light.Compiler.ConfigInternalVersions,UHC.Light.Compiler.Core,UHC.Light.Compiler.Core.BindExtract,UHC.Light.Compiler.Core.Check,UHC.Light.Compiler.Core.Coercion,UHC.Light.Compiler.Core.ExtractFFE,UHC.Light.Compiler.Core.FFI,UHC.Light.Compiler.Core.FvS,UHC.Light.Compiler.Core.Merge,UHC.Light.Compiler.Core.ModAsMap,UHC.Light.Compiler.Core.Parser,UHC.Light.Compiler.Core.Pretty,UHC.Light.Compiler.Core.Subst,UHC.Light.Compiler.Core.SysF.AsTy,UHC.Light.Compiler.Core.ToCoreRun,UHC.Light.Compiler.Core.ToGrin,UHC.Light.Compiler.Core.Trf,UHC.Light.Compiler.Core.Trf.ANormal,UHC.Light.Compiler.Core.Trf.AnaRelevance,UHC.Light.Compiler.Core.Trf.AnnBasedSimplify,UHC.Light.Compiler.Core.Trf.CAFGlobalAsArg,UHC.Light.Compiler.Core.Trf.ConstProp,UHC.Light.Compiler.Core.Trf.ElimNonCodegenConstructs,UHC.Light.Compiler.Core.Trf.ElimTrivApp,UHC.Light.Compiler.Core.Trf.EraseExtractTysigCore,UHC.Light.Compiler.Core.Trf.EtaRed,UHC.Light.Compiler.Core.Trf.ExplicitStackTrace,UHC.Light.Compiler.Core.Trf.FixAfterParse,UHC.Light.Compiler.Core.Trf.FloatToGlobal,UHC.Light.Compiler.Core.Trf.InlineLetAlias,UHC.Light.Compiler.Core.Trf.LamGlobalAsArg,UHC.Light.Compiler.Core.Trf.LetDefBeforeUse,UHC.Light.Compiler.Core.Trf.LetFlattenStrict,UHC.Light.Compiler.Core.Trf.LetUnrec,UHC.Light.Compiler.Core.Trf.OptimizeStrictness,UHC.Light.Compiler.Core.Trf.RenUniq,UHC.Light.Compiler.Core.UsedModNms,UHC.Light.Compiler.Core.Utils,UHC.Light.Compiler.CoreRun,UHC.Light.Compiler.CoreRun.Pretty,UHC.Light.Compiler.CoreRun.Prim,UHC.Light.Compiler.CoreRun.Run,UHC.Light.Compiler.CoreRun.Run.Val,UHC.Light.Compiler.CoreRun.Run.Val.Prim,UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk,UHC.Light.Compiler.CoreRun.Run.Val.RunImplStk,UHC.Light.Compiler.Deriving,UHC.Light.Compiler.EH,UHC.Light.Compiler.EH.MainAG,UHC.Light.Compiler.EH.MainAG_AGItf,UHC.Light.Compiler.EH.MainAG_CaseAlt,UHC.Light.Compiler.EH.MainAG_CaseAlts,UHC.Light.Compiler.EH.MainAG_DataConstr,UHC.Light.Compiler.EH.MainAG_DataConstrs,UHC.Light.Compiler.EH.MainAG_DataField,UHC.Light.Compiler.EH.MainAG_DataFieldExpr,UHC.Light.Compiler.EH.MainAG_DataFieldPatExpr,UHC.Light.Compiler.EH.MainAG_DataFields,UHC.Light.Compiler.EH.MainAG_Decl,UHC.Light.Compiler.EH.MainAG_Decls,UHC.Light.Compiler.EH.MainAG_Expr,UHC.Light.Compiler.EH.MainAG_ExprAnn,UHC.Light.Compiler.EH.MainAG_FuncDep,UHC.Light.Compiler.EH.MainAG_FuncDeps,UHC.Light.Compiler.EH.MainAG_KiExpr,UHC.Light.Compiler.EH.MainAG_KiExprAnn,UHC.Light.Compiler.EH.MainAG_MbTyExpr,UHC.Light.Compiler.EH.MainAG_PatExpr,UHC.Light.Compiler.EH.MainAG_PatExprAnn,UHC.Light.Compiler.EH.MainAG_PrExpr,UHC.Light.Compiler.EH.MainAG_PrExprs,UHC.Light.Compiler.EH.MainAG_RecExpr,UHC.Light.Compiler.EH.MainAG_RecPatExpr,UHC.Light.Compiler.EH.MainAG_RowTyExpr,UHC.Light.Compiler.EH.MainAG_TyExpr,UHC.Light.Compiler.EH.MainAG_TyExprAnn,UHC.Light.Compiler.EH.MainAG_TyExprs,UHC.Light.Compiler.EH.MainAG_TyVar,UHC.Light.Compiler.EH.MainAG_TyVars,UHC.Light.Compiler.EH.MainAG_common,UHC.Light.Compiler.EH.Parser,UHC.Light.Compiler.EHC.Common,UHC.Light.Compiler.EHC.CompileGroup,UHC.Light.Compiler.EHC.CompilePhase.Cleanup,UHC.Light.Compiler.EHC.CompilePhase.Common,UHC.Light.Compiler.EHC.CompilePhase.CompileC,UHC.Light.Compiler.EHC.CompilePhase.FlowBetweenPhase,UHC.Light.Compiler.EHC.CompilePhase.Link,UHC.Light.Compiler.EHC.CompilePhase.Module,UHC.Light.Compiler.EHC.CompilePhase.Output,UHC.Light.Compiler.EHC.CompilePhase.Parsers,UHC.Light.Compiler.EHC.CompilePhase.Run,UHC.Light.Compiler.EHC.CompilePhase.Semantics,UHC.Light.Compiler.EHC.CompilePhase.TopLevelPhases,UHC.Light.Compiler.EHC.CompilePhase.Transformations,UHC.Light.Compiler.EHC.CompilePhase.Translations,UHC.Light.Compiler.EHC.CompileRun,UHC.Light.Compiler.EHC.CompileUnit,UHC.Light.Compiler.EHC.Environment,UHC.Light.Compiler.EHC.InitialSetup,UHC.Light.Compiler.Error,UHC.Light.Compiler.Error.Pretty,UHC.Light.Compiler.FinalEnv,UHC.Light.Compiler.Foreign,UHC.Light.Compiler.Foreign.Boxing,UHC.Light.Compiler.Foreign.Extract,UHC.Light.Compiler.Foreign.Parser,UHC.Light.Compiler.Foreign.Pretty,UHC.Light.Compiler.Gam,UHC.Light.Compiler.Gam.AppSpineGam,UHC.Light.Compiler.Gam.Base,UHC.Light.Compiler.Gam.ClGam,UHC.Light.Compiler.Gam.ClassDefaultGam,UHC.Light.Compiler.Gam.DataGam,UHC.Light.Compiler.Gam.FixityGam,UHC.Light.Compiler.Gam.Full,UHC.Light.Compiler.Gam.Instantiate,UHC.Light.Compiler.Gam.KiGam,UHC.Light.Compiler.Gam.PolGam,UHC.Light.Compiler.Gam.Quantify,UHC.Light.Compiler.Gam.TyGam,UHC.Light.Compiler.Gam.TyKiGam,UHC.Light.Compiler.Gam.Utils,UHC.Light.Compiler.Gam.ValGam,UHC.Light.Compiler.Generics,UHC.Light.Compiler.HI,UHC.Light.Compiler.HS,UHC.Light.Compiler.HS.MainAG,UHC.Light.Compiler.HS.ModImpExp,UHC.Light.Compiler.HS.Parser,UHC.Light.Compiler.LamInfo,UHC.Light.Compiler.Module.ImportExport,UHC.Light.Compiler.Module.Merge,UHC.Light.Compiler.NameAspect,UHC.Light.Compiler.Opts,UHC.Light.Compiler.Opts.Base,UHC.Light.Compiler.Opts.CommandLine,UHC.Light.Compiler.Pred,UHC.Light.Compiler.Pred.CHR,UHC.Light.Compiler.Pred.CommonCHR,UHC.Light.Compiler.Pred.Evidence,UHC.Light.Compiler.Pred.EvidenceToCore,UHC.Light.Compiler.Pred.Heuristics,UHC.Light.Compiler.Pred.RedGraph,UHC.Light.Compiler.Pred.ToCHR,UHC.Light.Compiler.Scanner.Common,UHC.Light.Compiler.Scanner.Machine,UHC.Light.Compiler.Scanner.Scanner,UHC.Light.Compiler.Scanner.Token,UHC.Light.Compiler.Scanner.TokenParser,UHC.Light.Compiler.SourceCodeSig,UHC.Light.Compiler.Substitutable,UHC.Light.Compiler.Ty,UHC.Light.Compiler.Ty.AppSpineGam,UHC.Light.Compiler.Ty.FIEnv,UHC.Light.Compiler.Ty.FIEnv2,UHC.Light.Compiler.Ty.FitsIn,UHC.Light.Compiler.Ty.FitsInCommon,UHC.Light.Compiler.Ty.FitsInCommon2,UHC.Light.Compiler.Ty.Ftv,UHC.Light.Compiler.Ty.Parser,UHC.Light.Compiler.Ty.Pretty,UHC.Light.Compiler.Ty.TreeTrieKey,UHC.Light.Compiler.Ty.Trf.BetaReduce,UHC.Light.Compiler.Ty.Trf.Canonic,UHC.Light.Compiler.Ty.Trf.FreshVar,UHC.Light.Compiler.Ty.Trf.Instantiate,UHC.Light.Compiler.Ty.Trf.MergePreds,UHC.Light.Compiler.Ty.Trf.Quantify,UHC.Light.Compiler.Ty.Trf.Subst,UHC.Light.Compiler.Ty.UsedNames,UHC.Light.Compiler.Ty.Utils1,UHC.Light.Compiler.Ty.Utils2,UHC.Light.Compiler.VarLookup,UHC.Light.Compiler.VarMp,UHC.Light.Compiler.VarMp.Utils +  Exposed-Modules:		 UHC.Light.Compiler.API,UHC.Light.Compiler.Base.API,UHC.Light.Compiler.Core.API,UHC.Light.Compiler.CoreRun.API +  Other-Modules:		 Paths_uhc_light,UHC.Light.Compiler.AbstractCore,UHC.Light.Compiler.AbstractCore.Utils,UHC.Light.Compiler.AnaDomain,UHC.Light.Compiler.AnaDomain.Ftv,UHC.Light.Compiler.AnaDomain.Pretty,UHC.Light.Compiler.AnaDomain.Trf.Instantiate,UHC.Light.Compiler.AnaDomain.Trf.Subst,UHC.Light.Compiler.AnaDomain.Utils,UHC.Light.Compiler.Base.CfgPP,UHC.Light.Compiler.Base.Common,UHC.Light.Compiler.Base.Debug,UHC.Light.Compiler.Base.FileSearchLocation,UHC.Light.Compiler.Base.Fld,UHC.Light.Compiler.Base.HsName,UHC.Light.Compiler.Base.HsName.Builtin,UHC.Light.Compiler.Base.Optimize,UHC.Light.Compiler.Base.PackageDatabase,UHC.Light.Compiler.Base.ParseUtils,UHC.Light.Compiler.Base.Parser,UHC.Light.Compiler.Base.Parser2,UHC.Light.Compiler.Base.Pragma,UHC.Light.Compiler.Base.RLList,UHC.Light.Compiler.Base.Range,UHC.Light.Compiler.Base.Strictness,UHC.Light.Compiler.Base.Target,UHC.Light.Compiler.Base.TermLike,UHC.Light.Compiler.Base.TreeTrie,UHC.Light.Compiler.Base.UID,UHC.Light.Compiler.CHR,UHC.Light.Compiler.CHR.Constraint,UHC.Light.Compiler.CHR.Key,UHC.Light.Compiler.CHR.Solve,UHC.Light.Compiler.CodeGen.BasicAnnot,UHC.Light.Compiler.CodeGen.Bits,UHC.Light.Compiler.CodeGen.BuiltinPrims,UHC.Light.Compiler.CodeGen.BuiltinSizeInfo,UHC.Light.Compiler.CodeGen.CVar,UHC.Light.Compiler.CodeGen.Const,UHC.Light.Compiler.CodeGen.ImportUsedModules,UHC.Light.Compiler.CodeGen.ModuleImportExportImpl,UHC.Light.Compiler.CodeGen.RefGenerator,UHC.Light.Compiler.CodeGen.Tag,UHC.Light.Compiler.CodeGen.TrfUtils,UHC.Light.Compiler.CodeGen.ValAccess,UHC.Light.Compiler.Config,UHC.Light.Compiler.ConfigCabal,UHC.Light.Compiler.ConfigDefines,UHC.Light.Compiler.ConfigInstall,UHC.Light.Compiler.ConfigInternalVersions,UHC.Light.Compiler.Core,UHC.Light.Compiler.Core.BindExtract,UHC.Light.Compiler.Core.Check,UHC.Light.Compiler.Core.Coercion,UHC.Light.Compiler.Core.ExtractFFE,UHC.Light.Compiler.Core.FFI,UHC.Light.Compiler.Core.FvS,UHC.Light.Compiler.Core.Merge,UHC.Light.Compiler.Core.ModAsMap,UHC.Light.Compiler.Core.Parser,UHC.Light.Compiler.Core.Pretty,UHC.Light.Compiler.Core.Subst,UHC.Light.Compiler.Core.SysF.AsTy,UHC.Light.Compiler.Core.ToCoreRun,UHC.Light.Compiler.Core.ToGrin,UHC.Light.Compiler.Core.Trf,UHC.Light.Compiler.Core.Trf.ANormal,UHC.Light.Compiler.Core.Trf.AnaRelevance,UHC.Light.Compiler.Core.Trf.AnnBasedSimplify,UHC.Light.Compiler.Core.Trf.CAFGlobalAsArg,UHC.Light.Compiler.Core.Trf.ConstProp,UHC.Light.Compiler.Core.Trf.ElimNonCodegenConstructs,UHC.Light.Compiler.Core.Trf.ElimTrivApp,UHC.Light.Compiler.Core.Trf.EraseExtractTysigCore,UHC.Light.Compiler.Core.Trf.EtaRed,UHC.Light.Compiler.Core.Trf.ExplicitStackTrace,UHC.Light.Compiler.Core.Trf.FixAfterParse,UHC.Light.Compiler.Core.Trf.FloatToGlobal,UHC.Light.Compiler.Core.Trf.InlineLetAlias,UHC.Light.Compiler.Core.Trf.LamGlobalAsArg,UHC.Light.Compiler.Core.Trf.LetDefBeforeUse,UHC.Light.Compiler.Core.Trf.LetFlattenStrict,UHC.Light.Compiler.Core.Trf.LetUnrec,UHC.Light.Compiler.Core.Trf.OptimizeStrictness,UHC.Light.Compiler.Core.Trf.RenUniq,UHC.Light.Compiler.Core.UsedModNms,UHC.Light.Compiler.Core.Utils,UHC.Light.Compiler.CoreRun,UHC.Light.Compiler.CoreRun.Parser,UHC.Light.Compiler.CoreRun.Pretty,UHC.Light.Compiler.CoreRun.Prim,UHC.Light.Compiler.CoreRun.Run,UHC.Light.Compiler.CoreRun.Run.Val,UHC.Light.Compiler.CoreRun.Run.Val.Prim,UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk,UHC.Light.Compiler.CoreRun.Run.Val.RunImplStk,UHC.Light.Compiler.Deriving,UHC.Light.Compiler.EH,UHC.Light.Compiler.EH.MainAG,UHC.Light.Compiler.EH.MainAG_AGItf,UHC.Light.Compiler.EH.MainAG_CaseAlt,UHC.Light.Compiler.EH.MainAG_CaseAlts,UHC.Light.Compiler.EH.MainAG_DataConstr,UHC.Light.Compiler.EH.MainAG_DataConstrs,UHC.Light.Compiler.EH.MainAG_DataField,UHC.Light.Compiler.EH.MainAG_DataFieldExpr,UHC.Light.Compiler.EH.MainAG_DataFieldPatExpr,UHC.Light.Compiler.EH.MainAG_DataFields,UHC.Light.Compiler.EH.MainAG_Decl,UHC.Light.Compiler.EH.MainAG_Decls,UHC.Light.Compiler.EH.MainAG_Expr,UHC.Light.Compiler.EH.MainAG_ExprAnn,UHC.Light.Compiler.EH.MainAG_FuncDep,UHC.Light.Compiler.EH.MainAG_FuncDeps,UHC.Light.Compiler.EH.MainAG_KiExpr,UHC.Light.Compiler.EH.MainAG_KiExprAnn,UHC.Light.Compiler.EH.MainAG_MbTyExpr,UHC.Light.Compiler.EH.MainAG_PatExpr,UHC.Light.Compiler.EH.MainAG_PatExprAnn,UHC.Light.Compiler.EH.MainAG_PrExpr,UHC.Light.Compiler.EH.MainAG_PrExprs,UHC.Light.Compiler.EH.MainAG_RecExpr,UHC.Light.Compiler.EH.MainAG_RecPatExpr,UHC.Light.Compiler.EH.MainAG_RowTyExpr,UHC.Light.Compiler.EH.MainAG_TyExpr,UHC.Light.Compiler.EH.MainAG_TyExprAnn,UHC.Light.Compiler.EH.MainAG_TyExprs,UHC.Light.Compiler.EH.MainAG_TyVar,UHC.Light.Compiler.EH.MainAG_TyVars,UHC.Light.Compiler.EH.MainAG_common,UHC.Light.Compiler.EH.Parser,UHC.Light.Compiler.EHC.Common,UHC.Light.Compiler.EHC.CompileGroup,UHC.Light.Compiler.EHC.CompilePhase.Cleanup,UHC.Light.Compiler.EHC.CompilePhase.Common,UHC.Light.Compiler.EHC.CompilePhase.CompileC,UHC.Light.Compiler.EHC.CompilePhase.FlowBetweenPhase,UHC.Light.Compiler.EHC.CompilePhase.Link,UHC.Light.Compiler.EHC.CompilePhase.Module,UHC.Light.Compiler.EHC.CompilePhase.Output,UHC.Light.Compiler.EHC.CompilePhase.Parsers,UHC.Light.Compiler.EHC.CompilePhase.Run,UHC.Light.Compiler.EHC.CompilePhase.Semantics,UHC.Light.Compiler.EHC.CompilePhase.TopLevelPhases,UHC.Light.Compiler.EHC.CompilePhase.Transformations,UHC.Light.Compiler.EHC.CompilePhase.Translations,UHC.Light.Compiler.EHC.CompileRun,UHC.Light.Compiler.EHC.CompileUnit,UHC.Light.Compiler.EHC.Environment,UHC.Light.Compiler.EHC.InitialSetup,UHC.Light.Compiler.EHC.Main,UHC.Light.Compiler.Error,UHC.Light.Compiler.Error.Pretty,UHC.Light.Compiler.FinalEnv,UHC.Light.Compiler.Foreign,UHC.Light.Compiler.Foreign.Boxing,UHC.Light.Compiler.Foreign.Extract,UHC.Light.Compiler.Foreign.Parser,UHC.Light.Compiler.Foreign.Pretty,UHC.Light.Compiler.Gam,UHC.Light.Compiler.Gam.AppSpineGam,UHC.Light.Compiler.Gam.Base,UHC.Light.Compiler.Gam.ClGam,UHC.Light.Compiler.Gam.ClassDefaultGam,UHC.Light.Compiler.Gam.DataGam,UHC.Light.Compiler.Gam.FixityGam,UHC.Light.Compiler.Gam.Full,UHC.Light.Compiler.Gam.Instantiate,UHC.Light.Compiler.Gam.KiGam,UHC.Light.Compiler.Gam.PolGam,UHC.Light.Compiler.Gam.Quantify,UHC.Light.Compiler.Gam.TyGam,UHC.Light.Compiler.Gam.TyKiGam,UHC.Light.Compiler.Gam.Utils,UHC.Light.Compiler.Gam.ValGam,UHC.Light.Compiler.Generics,UHC.Light.Compiler.HI,UHC.Light.Compiler.HS,UHC.Light.Compiler.HS.MainAG,UHC.Light.Compiler.HS.ModImpExp,UHC.Light.Compiler.HS.Parser,UHC.Light.Compiler.LamInfo,UHC.Light.Compiler.Module.ImportExport,UHC.Light.Compiler.Module.Merge,UHC.Light.Compiler.NameAspect,UHC.Light.Compiler.Opts,UHC.Light.Compiler.Opts.Base,UHC.Light.Compiler.Opts.CommandLine,UHC.Light.Compiler.Pred,UHC.Light.Compiler.Pred.CHR,UHC.Light.Compiler.Pred.CommonCHR,UHC.Light.Compiler.Pred.Evidence,UHC.Light.Compiler.Pred.EvidenceToCore,UHC.Light.Compiler.Pred.Heuristics,UHC.Light.Compiler.Pred.RedGraph,UHC.Light.Compiler.Pred.ToCHR,UHC.Light.Compiler.Scanner.Common,UHC.Light.Compiler.Scanner.Machine,UHC.Light.Compiler.Scanner.Scanner,UHC.Light.Compiler.Scanner.Token,UHC.Light.Compiler.Scanner.TokenParser,UHC.Light.Compiler.SourceCodeSig,UHC.Light.Compiler.Substitutable,UHC.Light.Compiler.Ty,UHC.Light.Compiler.Ty.AppSpineGam,UHC.Light.Compiler.Ty.FIEnv,UHC.Light.Compiler.Ty.FIEnv2,UHC.Light.Compiler.Ty.FitsIn,UHC.Light.Compiler.Ty.FitsInCommon,UHC.Light.Compiler.Ty.FitsInCommon2,UHC.Light.Compiler.Ty.Ftv,UHC.Light.Compiler.Ty.Parser,UHC.Light.Compiler.Ty.Pretty,UHC.Light.Compiler.Ty.TreeTrieKey,UHC.Light.Compiler.Ty.Trf.BetaReduce,UHC.Light.Compiler.Ty.Trf.Canonic,UHC.Light.Compiler.Ty.Trf.FreshVar,UHC.Light.Compiler.Ty.Trf.Instantiate,UHC.Light.Compiler.Ty.Trf.MergePreds,UHC.Light.Compiler.Ty.Trf.Quantify,UHC.Light.Compiler.Ty.Trf.Subst,UHC.Light.Compiler.Ty.UsedNames,UHC.Light.Compiler.Ty.Utils1,UHC.Light.Compiler.Ty.Utils2,UHC.Light.Compiler.VarLookup,UHC.Light.Compiler.VarMp,UHC.Light.Compiler.VarMp.Utils   Executable uhcl   Hs-Source-Dirs:       src-  Build-Depends:		uhc-light==1.1.7.4, fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale+  Build-Depends:		uhc-light==1.1.8.0, fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale   Extensions:			RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,OverlappingInstances,LiberalTypeSynonyms,StandaloneDeriving,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables   Main-Is:           	EHC.hs++Executable uhcr+  Hs-Source-Dirs:       src+  Build-Depends:		uhc-light==1.1.8.0, fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale+  Extensions:			RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,OverlappingInstances,LiberalTypeSynonyms,StandaloneDeriving,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables+  Main-Is:           	Run.hs