diff --git a/103/lib/ag/Core/AbsSyn.ag b/103/lib/ag/Core/AbsSyn.ag
--- a/103/lib/ag/Core/AbsSyn.ag
+++ b/103/lib/ag/Core/AbsSyn.ag
@@ -3,11 +3,19 @@
 
 DATA CModule
   | Mod         moduleNm        : {HsName}
+                exports			: CExportL
                 imports			: CImportL
                 declMetas		: CDeclMetaL
                 expr            : CExpr
                 -- ctagsMp         : {CTagsMp}
 
+DATA CExport
+  | Export		nm				: {HsName}
+
+TYPE CExportL	= [CExport]
+
+SET AllExport	= CExportL CExport
+
 DATA CImport
   | Import		nm				: {HsName}
 
@@ -234,4 +242,5 @@
   = AllCodeNT
     AllMetaNT
     AllImport
+    AllExport
 
diff --git a/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr b/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr
Binary files a/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr and b/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr differ
diff --git a/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi b/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi
Binary files a/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi and b/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi differ
diff --git a/103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config b/103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config
--- a/103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config
+++ b/103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config
@@ -1,2 +1,2 @@
 exposed-modules: Data.Array
-build-depends: uhcbase-1.1.7.1 base-3.0.0.0
+build-depends: uhcbase-1.1.7.2 base-3.0.0.0
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi differ
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config b/103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config
--- a/103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config
+++ b/103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config
@@ -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.1
+build-depends: uhcbase-1.1.7.2
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.cr b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.hi b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/CTypes.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/CTypes.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/CTypes.h
+++ /dev/null
@@ -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
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBase.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBase.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBase.h
+++ /dev/null
@@ -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__ */
-
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBaseConfig.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBaseConfig.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBaseConfig.h
+++ /dev/null
@@ -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
-
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/IntLikeInstance.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/IntLikeInstance.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/IntLikeInstance.h
+++ /dev/null
@@ -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 \
-  }
-
-
-
-
-
-
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/MachDeps.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/MachDeps.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/MachDeps.h
+++ /dev/null
@@ -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
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/TupleInstance.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/TupleInstance.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/TupleInstance.h
+++ /dev/null
@@ -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) \
-}
-
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/Typeable.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/Typeable.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/Typeable.h
+++ /dev/null
@@ -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
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/dirUtils.h b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/dirUtils.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/dirUtils.h
+++ /dev/null
@@ -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__ */
diff --git a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/installed-pkg-config b/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/installed-pkg-config
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/installed-pkg-config
+++ /dev/null
@@ -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: 
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.cr b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.hi b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/CTypes.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/CTypes.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/CTypes.h
@@ -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
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBase.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBase.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBase.h
@@ -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__ */
+
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBaseConfig.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBaseConfig.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBaseConfig.h
@@ -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
+
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/IntLikeInstance.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/IntLikeInstance.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/IntLikeInstance.h
@@ -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 \
+  }
+
+
+
+
+
+
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/MachDeps.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/MachDeps.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/MachDeps.h
@@ -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
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/TupleInstance.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/TupleInstance.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/TupleInstance.h
@@ -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) \
+}
+
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/Typeable.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/Typeable.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/Typeable.h
@@ -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
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/dirUtils.h b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/dirUtils.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/dirUtils.h
@@ -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__ */
diff --git a/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/installed-pkg-config b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/installed-pkg-config
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/installed-pkg-config
@@ -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: 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,10 @@
 # Changelog
 
+## 1.1.7.2 - 20141126
+
+- [core] Core allows exports, can mix .hs and .bcr/.tcr files (tested rudimentary only).
+- [api] Core.API extended.
+
 ## 1.1.7.1 - 20141119
 
 - [api] Initial Core.API ([#31](https://github.com/UU-ComputerScience/uhc/pull/31)).
diff --git a/src/EHC.hs b/src/EHC.hs
--- a/src/EHC.hs
+++ b/src/EHC.hs
@@ -242,7 +242,8 @@
 -}
              crsi           =   (EHCompileRunStateInfo opts3
                                                        uidStart uidStart
-                                                       (initialHSSem opts3) (initialEHSem opts3 fp)
+                                                       (initialHSSem opts3)
+                                                       (initialEHSem opts3 fp)
                                                        (initialCore2GrSem opts3)
                                                        Nothing
                                                        -- (initialHISem opts3)
@@ -270,7 +271,7 @@
                         (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
+                        else runStateT (compile  opts fileSuffMpHs searchPath fpL topModNmL) initialState
                  ; return ()
                  }
          else exitFailure
@@ -315,10 +316,11 @@
                 -}
 
         compile :: EHCOpts -> FileSuffMp -> FileLocPath -> [FPath] -> [HsName] -> EHCompilePhase ()
-        compile opts fileSuffMpHs searchPath fpL topModNmL
-          = do {
+        compile opts fileSuffMpHs searchPath fpL topModNmL@(modNm:_)
+          = do { cpMsg modNm VerboseDebug $ "doCompileRun.compile topModNmL: " ++ show topModNmL
+
                -- check module import relationship for builtin module
-                 cpCheckMods' (const emptyModMpInfo) [modBuiltin]
+               ; 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
diff --git a/src/UHC/Light/Compiler/API.hs b/src/UHC/Light/Compiler/API.hs
--- a/src/UHC/Light/Compiler/API.hs
+++ b/src/UHC/Light/Compiler/API.hs
@@ -1,9 +1,17 @@
 {-# LINE 2 "src/ehc/API.chs" #-}
 module UHC.Light.Compiler.API
   (
-    module UHC.Light.Compiler.Core.API
+    module UHC.Light.Compiler.Base.API
+
+  , module UHC.Light.Compiler.Core.API
+  , scan
   )
   where
 
+import UHC.Light.Compiler.Base.API
+import UHC.Light.Compiler.Scanner.Machine
+
+
 import UHC.Light.Compiler.Core.API
+
 
diff --git a/src/UHC/Light/Compiler/AbstractCore.hs b/src/UHC/Light/Compiler/AbstractCore.hs
--- a/src/UHC/Light/Compiler/AbstractCore.hs
+++ b/src/UHC/Light/Compiler/AbstractCore.hs
@@ -572,6 +572,7 @@
 acoreTagTupTy tg t es = acoreTagTyTupBound tg t $ map acoreBound1Val es
 
 -- | Creates a new tuple/record with the given values.
+-- Has to be fully applied, partial application is not allowed.
 acoreTagTup :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => CTag -> [e] -> e
 acoreTagTup tg es = acoreTagTupTy tg (acoreTyErr "acoreTupTy") es
 
@@ -587,7 +588,7 @@
 acoreTag tg = acoreTagTup tg []
 {-# INLINE acoreTag #-}
 
-{-# LINE 639 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 640 "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 #-}
@@ -624,7 +625,7 @@
 acoreBind1 n e = acoreBind1Cat (acoreBindcategDflt e) n e
 {-# INLINE acoreBind1 #-}
 
-{-# LINE 677 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 678 "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 #-}
@@ -650,7 +651,7 @@
 -}
 
 
-{-# LINE 704 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 705 "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 #-}
@@ -667,7 +668,7 @@
 acoreBind1Nm1 n = acoreBind1Asp n []
 {-# INLINE acoreBind1Nm1 #-}
 
-{-# LINE 726 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 727 "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 #-}
@@ -688,7 +689,7 @@
 acoreBoundVal1Cat cat n e = acoreBoundVal1CatTy cat n (acoreTyErr "acoreBoundVal1Cat") e
 {-# INLINE acoreBoundVal1Cat #-}
 
-{-# LINE 748 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 749 "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 #-}
@@ -698,7 +699,7 @@
 {-# INLINE acoreBoundVal1Meta #-}
 
 
-{-# LINE 759 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 760 "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 #-}
@@ -707,12 +708,12 @@
 acoreBound1Val e = acoreBound1AspkeyVal acbaspkeyDefault e
 {-# INLINE acoreBound1Val #-}
 
-{-# LINE 779 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 780 "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 789 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 790 "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
@@ -744,11 +745,11 @@
 acoreLetRec bs e = acoreLet (acoreBindcategRec) bs e
 {-# INLINE acoreLetRec #-}
 
-{-# LINE 822 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 823 "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 827 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 828 "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]
@@ -763,7 +764,7 @@
 acoreLet1Plain nm e = acoreLet1PlainTy nm (acoreTyErr "acoreLet1Plain") e
 {-# INLINE acoreLet1Plain #-}
 
-{-# LINE 843 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 844 "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]
@@ -778,7 +779,7 @@
 acoreLet1Strict nm e = acoreLet1StrictTy nm (acoreTyErr "acoreLet1Strict") e
 {-# INLINE acoreLet1Strict #-}
 
-{-# LINE 859 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 860 "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
@@ -805,20 +806,20 @@
 acoreLet1StrictIn nm e mkC = acoreLet1StrictInMeta nm acoreMetavalDflt e mkC
 {-# INLINE acoreLet1StrictIn #-}
 
-{-# LINE 891 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 892 "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 903 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 904 "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 914 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 915 "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
 
@@ -829,11 +830,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 930 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 931 "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 935 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 936 "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
@@ -842,15 +843,15 @@
            Just (t,i') -> acoreIntTy2 t (toInteger i + i')
            _           -> acoreBuiltinApp opts ehbnPrimAddInt [e,acoreInt opts i]
 
-{-# LINE 945 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 946 "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 950 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 951 "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 955 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 956 "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)
@@ -859,7 +860,7 @@
     -> e
 acoreBuiltinString opts m = let x = acoreBuiltinApp opts ehbnPackedStringToString [acoreStringTy (acoreTyString opts) m] in x
 
-{-# LINE 965 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 966 "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
@@ -871,7 +872,7 @@
 acoreBuiltinUndefined :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e
 acoreBuiltinUndefined opts = acoreBuiltinApp opts ehbnUndefined []
 
-{-# LINE 978 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 979 "src/ehc/AbstractCore.chs" #-}
 -- | Creates a Core 'Integer' constant.
 acoreBuiltinInteger :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)
     => EHCOpts
@@ -879,13 +880,13 @@
     -> e
 acoreBuiltinInteger opts i = acoreBuiltinApp opts ehbnPackedStringToInteger [acoreStringTy (acoreTyString opts) (show i)]
 
-{-# LINE 987 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 988 "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 998 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 999 "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
@@ -897,25 +898,25 @@
                        -- <|> (const ctagChar)  <$> acorePatMbChar p
                 ) . fst . acoreUnAlt
 
-{-# LINE 1015 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1016 "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 1026 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1027 "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 1037 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1038 "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 1048 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1049 "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
@@ -927,12 +928,12 @@
                Nothing {-(tcUndefined opts)-}
       )
 
-{-# LINE 1061 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1062 "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 1091 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1092 "src/ehc/AbstractCore.chs" #-}
 data Coe' expr metaval bind bindasp ty
   = Coe_Map             !(expr -> expr)                 -- normal, expression as function
   | Coe_C               !expr                           -- constant
@@ -951,7 +952,7 @@
 instance Show (Coe' expr metaval bind bindasp ty) where
   show _ = "COE"
 
-{-# LINE 1128 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1129 "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
@@ -964,7 +965,7 @@
   | CoeCtx_DontAllow
   deriving (Eq,Show)
 
-{-# LINE 1146 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1147 "src/ehc/AbstractCore.chs" #-}
 -- | Non inspectable, most general, coercion
 acoreCoeMap :: (e -> e) -> Coe' e m b ba t
 acoreCoeMap = Coe_Map
@@ -975,7 +976,7 @@
 acoreCoeId = Coe_C acoreCoeArg
 {-# INLINE acoreCoeId #-}
 
-{-# LINE 1158 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1159 "src/ehc/AbstractCore.chs" #-}
 acoreCoeLamLetTy :: HsName -> t -> UID -> Coe' e m b ba t
 acoreCoeLamLetTy = Coe_LamLet
 {-# INLINE acoreCoeLamLetTy #-}
@@ -989,7 +990,7 @@
 acoreCoeLetRec [] = acoreCoeId
 acoreCoeLetRec bs = Coe_LetRec bs
 
-{-# LINE 1173 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1174 "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
@@ -1006,7 +1007,7 @@
 acoreCoeAppN as = acoreCoeMap (\e -> acoreApp e as)
 {-# INLINE acoreCoeAppN #-}
 
-{-# LINE 1191 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1192 "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
@@ -1016,7 +1017,7 @@
 acoreCoeLam1 n = acoreCoeLam1Ty n (acoreTyErr "acoreCoeLam1")
 {-# INLINE acoreCoeLam1 #-}
 
-{-# LINE 1202 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1203 "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
@@ -1024,14 +1025,14 @@
   | otherwise  = Coe_Compose c1 c2
 
 
-{-# LINE 1211 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1212 "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 1219 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1220 "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
@@ -1044,19 +1045,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 1237 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1238 "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 1247 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1248 "src/ehc/AbstractCore.chs" #-}
 data CSubstKey
   = CSKey_UID   UID
   | CSKey_Nm    HsName
   | CSKey_Ref   ACoreBindRef
   deriving (Show,Eq,Ord)
 
-{-# LINE 1255 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1256 "src/ehc/AbstractCore.chs" #-}
 data CSubstInfo' expr metaval bind bindasp ty
   =  CSITy        { csiTy      :: !ty
                   }
@@ -1071,37 +1072,37 @@
 instance Show (CSubstInfo' e m b ba t) where
   show _ = "CSubstInfo'"
 
-{-# LINE 1273 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1274 "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 1284 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1285 "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 1289 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1290 "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 1294 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1295 "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 1299 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1300 "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 1311 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1312 "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 1321 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1322 "src/ehc/AbstractCore.chs" #-}
 infixr `cSubstApp`
 
 class CSubstitutable       e m b ba t a
@@ -1112,7 +1113,7 @@
 instance CSubstitutable e m b ba t (CSubst' e m b ba t) where
   cSubstApp cs s = cs `cSubstAppSubst` s
 
-{-# LINE 1337 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1338 "src/ehc/AbstractCore.chs" #-}
 data RAlt' e t b pr
   = RAlt_Alt            { rcaPats :: ![RPat' e t b pr], raaExpr :: !e, raaFailS :: UIDS }
 
@@ -1133,14 +1134,14 @@
 
 type RCEAltL' e t b pr = [RAlt' e t b pr]
 
-{-# LINE 1361 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1362 "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 1369 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1370 "src/ehc/AbstractCore.chs" #-}
 rpatConTag :: RPat' e t b pr -> CTag
 rpatConTag (RPat_Int  _ _ _ )  = ctagInt
 rpatConTag (RPat_Char _ _ _ )  = ctagChar
@@ -1149,7 +1150,7 @@
 rcaTag :: RAlt' e t b pr -> CTag
 rcaTag = rpatConTag . head . rcaPats
 
-{-# LINE 1379 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1380 "src/ehc/AbstractCore.chs" #-}
 raltIsVar :: RAlt' e t b pr -> Bool
 raltIsVar (RAlt_Alt (RPat_Var _ _ _ : _) _ _)  = True
 raltIsVar _                                    = False
@@ -1161,17 +1162,17 @@
         c (RPat_Char  _ _ _) = True
         c _                  = False
 
-{-# LINE 1392 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1393 "src/ehc/AbstractCore.chs" #-}
 raltIsConMany :: RAlt' e t b pr -> Bool
 raltIsConMany (RAlt_Alt (RPat_Con _ _ _ (RPatConBind_Many _) : _) _ _) = True
 raltIsConMany _                                                        = False
 
-{-# LINE 1398 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1399 "src/ehc/AbstractCore.chs" #-}
 raltIsIrrefutable :: RAlt' e t b pr -> Bool
 raltIsIrrefutable (RAlt_Alt (RPat_Irrefutable _ _ _ : _) _ _) = True
 raltIsIrrefutable _                                           = False
 
-{-# LINE 1404 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1405 "src/ehc/AbstractCore.chs" #-}
 raltMbBoolExpr :: RAlt' e t b pr -> Maybe (Maybe SrcConst)
 raltMbBoolExpr (RAlt_Alt (RPat_BoolExpr _ _ _ e : _) _ _)  = Just e
 raltMbBoolExpr _                                           = Nothing
@@ -1179,13 +1180,13 @@
 raltIsBoolExpr :: RAlt' e t b pr -> Bool
 raltIsBoolExpr = isJust . raltMbBoolExpr
 
-{-# LINE 1415 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1416 "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 1426 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1427 "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
@@ -1196,7 +1197,7 @@
       RPat_Char     n ty v    -> acorePatCharTy ty v
       RPat_BoolExpr n _  v _  -> acorePatBoolExpr  v
 
-{-# LINE 1440 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1441 "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
@@ -1206,17 +1207,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 1457 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1458 "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 1469 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1470 "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 1479 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1480 "src/ehc/AbstractCore.chs" #-}
 -- | Reason to fail a case alternative
 data CaseAltFailReason
   = CaseAltFailReason_Absence                   -- failed because of absence
@@ -1229,23 +1230,23 @@
   pp (CaseAltFailReason_Continue i) = pp i
   pp (CaseAltFailReason_Absence   ) = pp "absent"
 
-{-# LINE 1493 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1494 "src/ehc/AbstractCore.chs" #-}
 cafailHasId :: CaseAltFailReason -> (Bool,UID)
 cafailHasId (CaseAltFailReason_Absence   ) = (False,uidUnused)
 cafailHasId (CaseAltFailReason_Continue i) = (True ,i)
 
-{-# LINE 1499 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1500 "src/ehc/AbstractCore.chs" #-}
 deriving instance Typeable CaseAltFailReason
 deriving instance Data CaseAltFailReason
 
-{-# LINE 1508 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1509 "src/ehc/AbstractCore.chs" #-}
 data AppFunKind
   = AppFunKind_NoApp                    -- inlined Nothing
   | AppFunKind_Fun  ACoreBindRef
   | AppFunKind_Tag  CTag
   | AppFunKind_FFI
 
-{-# LINE 1520 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1521 "src/ehc/AbstractCore.chs" #-}
 
 -- | What kind of Expr?
 data WhatExpr
@@ -1261,7 +1262,7 @@
   | ExprIsBind
   deriving Eq
 
-{-# LINE 1537 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1538 "src/ehc/AbstractCore.chs" #-}
 -- | is an var?
 whatExprMbVar :: WhatExpr -> Maybe HsName
 whatExprMbVar (ExprIsVar a) = Just a
@@ -1282,7 +1283,7 @@
 whatExprAppArity (ExprIsApp a _) = a
 whatExprAppArity _               = 0
 
-{-# LINE 1559 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1560 "src/ehc/AbstractCore.chs" #-}
 whatExprIsWHNF :: WhatExpr -> Bool
 whatExprIsWHNF (ExprIsLam _) 	= True
 whatExprIsWHNF (ExprIsVar _) 	= True
@@ -1291,7 +1292,7 @@
 whatExprIsWHNF ExprIsOtherWHNF 	= True
 whatExprIsWHNF _ 				= False
 
-{-# LINE 1569 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1570 "src/ehc/AbstractCore.chs" #-}
 whatExprIsLam :: WhatExpr -> Bool
 whatExprIsLam = isJust . whatExprMbLam
 {-# INLINE whatExprIsLam #-}
@@ -1302,14 +1303,14 @@
 whatExprIsTup _             = False
 
 
-{-# LINE 1581 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1582 "src/ehc/AbstractCore.chs" #-}
 -- | Is Expr a FFI?
 whatExprIsFFI :: WhatExpr -> Bool
 whatExprIsFFI (ExprIsFFI  ) = True
 whatExprIsFFI _             = False
 
 
-{-# LINE 1599 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1600 "src/ehc/AbstractCore.chs" #-}
 instance Serialize ACoreBindAspectKey where
   sput (ACoreBindAspectKey_Default       ) = sputWord8 0
   sput (ACoreBindAspectKey_Strict        ) = sputWord8 1
@@ -1329,12 +1330,12 @@
         5 -> return ACoreBindAspectKey_Core
         7 -> return ACoreBindAspectKey_FusionRole
 
-{-# LINE 1630 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1631 "src/ehc/AbstractCore.chs" #-}
 instance Serialize ACoreBindRef where
   sput (ACoreBindRef a b) = sput a >> sput b
   sget = liftM2 ACoreBindRef sget sget
 
-{-# LINE 1636 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1637 "src/ehc/AbstractCore.chs" #-}
 instance Serialize CaseAltFailReason where
   sput (CaseAltFailReason_Continue a) = sputWord8 0 >> sput a
   sput (CaseAltFailReason_Absence   ) = sputWord8 1
@@ -1344,13 +1345,13 @@
       0 -> liftM  CaseAltFailReason_Continue sget
       1 -> return CaseAltFailReason_Absence
 
-{-# LINE 1651 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1652 "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 1658 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1659 "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
diff --git a/src/UHC/Light/Compiler/Base/API.hs b/src/UHC/Light/Compiler/Base/API.hs
new file mode 100644
--- /dev/null
+++ b/src/UHC/Light/Compiler/Base/API.hs
@@ -0,0 +1,29 @@
+{-# LINE 2 "src/ehc/Base/API.chs" #-}
+
+-- | Base Public API (provisional, to be refactored)
+--
+module UHC.Light.Compiler.Base.API
+  (
+  -- * Opts
+  -- | Options to the compiler.
+    EHCOpts
+  , defaultEHCOpts
+
+  -- * Constructor Tags
+  -- From Base.Common
+  , CTag
+
+  -- * Names
+  , HsName
+
+  -- * Misc
+  , hsnEhcRunMain
+  , hsnMain
+  )
+  where
+
+import UHC.Light.Compiler.Base.Common
+import UHC.Light.Compiler.Base.HsName
+import UHC.Light.Compiler.Base.HsName.Builtin
+import UHC.Light.Compiler.Opts
+
diff --git a/src/UHC/Light/Compiler/CodeGen/ModuleImportExportImpl.hs b/src/UHC/Light/Compiler/CodeGen/ModuleImportExportImpl.hs
new file mode 100644
--- /dev/null
+++ b/src/UHC/Light/Compiler/CodeGen/ModuleImportExportImpl.hs
@@ -0,0 +1,19 @@
+module UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
+( ModuleImportExportImpl (..), emptyModuleImportExportImpl )
+where
+import UHC.Light.Compiler.Base.Common
+import UHC.Light.Compiler.LamInfo
+import UHC.Light.Compiler.CodeGen.ValAccess
+import qualified Data.Map as Map
+
+{-# LINE 22 "src/ehc/CodeGen/ModuleImportExportImpl.chs" #-}
+data ModuleImportExportImpl
+  = ModuleImportExportImpl
+      { mieimplLamMp			:: LamMp			-- ^ LamMp, per binding info
+      , mieimplUsedModNmL		:: [HsName]			-- ^ used and referred to modules (i.e. all, also indirectly referred to)
+      , mieimplHsName2FldMpMp	:: HsName2FldMpMp	-- ^ imported modules fld mp
+      , mieimplHsName2FldMp		:: HsName2FldMp		-- ^ export fld map
+      }
+
+emptyModuleImportExportImpl = ModuleImportExportImpl Map.empty [] Map.empty Map.empty
+
diff --git a/src/UHC/Light/Compiler/Config.hs b/src/UHC/Light/Compiler/Config.hs
--- a/src/UHC/Light/Compiler/Config.hs
+++ b/src/UHC/Light/Compiler/Config.hs
@@ -64,12 +64,12 @@
       , verMajor            = "1"
       , verMinor            = "1"
       , verMinorMinor       = "7"
-      , verMinorMinorMinor  = "1"
+      , verMinorMinorMinor  = "2"
       , verQuality          = "alpha"
       , verShort            = "1.1"
       , verMedium           = "1.1.7"
-      , verFull             = "1.1.7.1"
-      , verAsNumber         = "1171"
+      , verFull             = "1.1.7.2"
+      , verAsNumber         = "1172"
       , verProg             = "ehc"
       }
 
diff --git a/src/UHC/Light/Compiler/ConfigInstall.hs b/src/UHC/Light/Compiler/ConfigInstall.hs
--- a/src/UHC/Light/Compiler/ConfigInstall.hs
+++ b/src/UHC/Light/Compiler/ConfigInstall.hs
@@ -11,7 +11,7 @@
 cppOpts  = fst $ parseCmdLineOpts Cmd_CPP "-Wno-invalid-pp-token"
 -- cppOpts  = showCmdLineOpts cppOpts'
 
-ehcSvnRevision = "master@0a24deaee1"
+ehcSvnRevision = "master@9e7712bd65"
 
 ehcDefaultInplaceInstallDir = "/Volumes/Work/Programming/uhc/EHC/install"
 
diff --git a/src/UHC/Light/Compiler/ConfigInternalVersions.hs b/src/UHC/Light/Compiler/ConfigInternalVersions.hs
--- a/src/UHC/Light/Compiler/ConfigInternalVersions.hs
+++ b/src/UHC/Light/Compiler/ConfigInternalVersions.hs
@@ -18,5 +18,5 @@
 internalVersionHI = mkInternalVersion 1
 
 -- | For binary/serialized Core .cr/.bcr etc files
-internalVersionCore = mkInternalVersion 1
+internalVersionCore = mkInternalVersion 3
 
diff --git a/src/UHC/Light/Compiler/Core.hs b/src/UHC/Light/Compiler/Core.hs
--- a/src/UHC/Light/Compiler/Core.hs
+++ b/src/UHC/Light/Compiler/Core.hs
@@ -6,7 +6,7 @@
 , module UHC.Light.Compiler.Base.Target
 , CodeAGItf (..), CModule (..), CExpr (..), CBind (..), CBound (..), CMetaVal (..), CMetaBind (..), CMetas, CBindL, CBoundL, CPatRest (..), CAlt (..), CAltL, CPat (..), CPatFld (..), CPatFldL
 , CBindAnn (..), CBindAnnL, CExprAnn (..)
-, CImport (..), CImportL
+, CExport (..), CExportL, CImport (..), CImportL
 , CDeclMeta (..), CDeclMetaL, CDataCon (..), CDataConL
 , RAlt, RPat, RPatConBind, RPatFld
 , cmetasDefault
@@ -231,7 +231,7 @@
 
 
 mkCMod :: CExpr -> CModule
-mkCMod e = CModule_Mod (hsnFromString "") [] [] e -- []
+mkCMod e = CModule_Mod (hsnFromString "") [] [] [] e -- []
 
 emptyCModule :: CModule
 emptyCModule = mkCMod (CExpr_Int 0)
@@ -338,8 +338,8 @@
   = foldr1 cmb mL
   where get (CExpr_Let c b e) = CExpr_Let c b . get e
         get  _                = id
-        cmb (CModule_Mod m1 im1 mt1 e1) (CModule_Mod m2 im2 mt2 e2)
-          = CModule_Mod m2 (im1++im2) (mt1++mt2) (get e1 e2)
+        cmb (CModule_Mod m1 ex1 im1 mt1 e1) (CModule_Mod m2 ex2 im2 mt2 e2)
+          = CModule_Mod m2 (ex1++ex2) (im1++im2) (mt1++mt2) (get e1 e2)
 
 
 
@@ -367,12 +367,13 @@
       , cmoddbBindArr       :: !CDbBindArray        -- bindings
       , cmoddbBindMp        :: !CDbModuleBindMp     -- map of name to bindings
       , cmoddbMainExpr      :: !CExpr               -- the final expr of the module's let expr
+      , cmoddbExports       :: !CExportL            -- exports
       , cmoddbImports       :: !CImportL            -- imports
       , cmoddbMeta          :: !CDeclMetaL          -- meta info/decl
       }
 
 emptyCModuleDatabase :: CModuleDatabase
-emptyCModuleDatabase = CModuleDatabase hsnUnknown (array (1,0) []) Map.empty (CExpr_Int 0) [] []
+emptyCModuleDatabase = CModuleDatabase hsnUnknown (array (1,0) []) Map.empty (CExpr_Int 0) [] [] []
 
 
 
@@ -525,12 +526,19 @@
 
 
 instance Serialize CModule where
-  sput (CModule_Mod   a b c d) = {- sputWord8 0 >> -} sput a >> sput b >> sput c >> sput d
+  sput (CModule_Mod   a b c d e) = {- sputWord8 0 >> -} sput a >> sput b >> sput c >> sput d >> sput e
   sget
     = do {- t <- sgetWord8
          case t of
-            0 -> -} liftM4 CModule_Mod         sget sget sget sget
+            0 -> -} liftM5 CModule_Mod         sget sget sget sget sget
 
+instance Serialize CExport where
+  sput (CExport_Export a  ) = {- sputWord8 0 >> -} sput a
+  sget
+    = do {- t <- sgetWord8
+         case t of
+            0 -> -} liftM   CExport_Export       sget
+
 instance Serialize CImport where
   sput (CImport_Import a  ) = {- sputWord8 0 >> -} sput a
   sget
@@ -742,6 +750,11 @@
                deriving ( Data,Typeable)
 -- CDeclMetaL --------------------------------------------------
 type CDeclMetaL = [CDeclMeta]
+-- CExport -----------------------------------------------------
+data CExport = CExport_Export {nm_CExport_Export :: !(HsName)}
+             deriving ( Data,Eq,Ord,Typeable)
+-- CExportL ----------------------------------------------------
+type CExportL = [CExport]
 -- CExpr -------------------------------------------------------
 data CExpr = CExpr_Var {ref_CExpr_Var :: !(ACoreBindRef)}
            | CExpr_Int {int_CExpr_Int :: !(Int)}
@@ -792,7 +805,7 @@
 -- CMetas ------------------------------------------------------
 type CMetas = ( CMetaBind,CMetaVal)
 -- CModule -----------------------------------------------------
-data CModule = CModule_Mod {moduleNm_CModule_Mod :: !(HsName),imports_CModule_Mod :: !(CImportL),declMetas_CModule_Mod :: !(CDeclMetaL),expr_CModule_Mod :: !(CExpr)}
+data CModule = CModule_Mod {moduleNm_CModule_Mod :: !(HsName),exports_CModule_Mod :: !(CExportL),imports_CModule_Mod :: !(CImportL),declMetas_CModule_Mod :: !(CDeclMetaL),expr_CModule_Mod :: !(CExpr)}
              deriving ( Data,Typeable)
 -- CPat --------------------------------------------------------
 data CPat = CPat_Var {pnm_CPat_Var :: !(HsName)}
diff --git a/src/UHC/Light/Compiler/Core/API.hs b/src/UHC/Light/Compiler/Core/API.hs
--- a/src/UHC/Light/Compiler/Core/API.hs
+++ b/src/UHC/Light/Compiler/Core/API.hs
@@ -1,50 +1,54 @@
 {-# LINE 2 "src/ehc/Core/API.chs" #-}
 
--- | Core Public API (provisional)
+-- | Core Public API (provisional, to be refactored)
 --
--- Intended for constructing basic Core Programs.
--- This module does not offer any way to inspect the built Core Programs (on purpose), but the
--- EHXX.Core module does.
+-- Intended for constructing basic Core Programs. Use the binary serialization from `UHC.Util.Binary`
+-- to produce a core file, which can be compiled by UHC.
 --
+-- Restrictions:
+--  - Extendable data types are not supported
+--  - Generated code is not (type-)checked, might cause runtime crashes
+--  - Core parsing/Pretty printing is incomplete and might be partially broken.
 -- Invariants:
 -- - Constructor applications (mkCon) always have to be fully saturated. (Should we handle this internally?)
 -- - Haskell constructor names must be unambigous per module (mkHSCTag)
--- - TODO Tag ordering ?? What exactly are the invariants?
---
--- TODO Use AbstractCore instead of directly using the Constructors in the implementation
 
 module UHC.Light.Compiler.Core.API
   (
+  {-
   -- Opts
     EHCOpts
   , defaultEHCOpts
-
-  -- * Core AST
-  -- | The datatypes making up a Core program.
-  , CModule
-  , CImport
-  , CDeclMeta
-  , CDataCon
-  , CExpr
-  , CBind
-  , CAlt
-  , CPat
-  , CPatFld
+  -}
 
+  {-
   -- Base.Common
   , CTag
   -- Base.HsName
   , HsName
+  -}
 
   -- * Names
   -- | Names in UHC have to be of the form P1.P2....Pn.Ident . All names
   -- in module M must have the form M.Ident . Datatype and constructor names
   -- have to start with an uppercase letter, functions with a lowercase letter.
-  , mkUniqueHsName
+    mkUniqueHsName
   , mkHsName
   , mkHsName1
   , addHsNamePrefix
 
+  -- * Core AST
+  -- | The datatypes making up a Core program.
+  , CModule
+  , CImport
+  , CDeclMeta
+  , CDataCon
+  , CExpr
+  , CBind
+  , CAlt
+  , CPat
+  , CPatFld
+
   -- * Construction functions
   -- ** Constants
   , acoreUnit
@@ -63,6 +67,27 @@
   , acoreLet1Strict
   , acoreLetRec
 
+  -- ** Abstraction
+  , acoreLam
+
+  -- ** Application
+  , acoreApp
+
+  -- ** Binds/Bounds
+  , acoreBind1
+  , acoreBind1Nm1
+
+  -- ** Constructor tags
+  , makeCTag
+  , destructCTag
+
+  , ctagUnit
+  , ctagTup
+  , ctagTrue
+  , ctagFalse
+  , ctagCons
+  , ctagNil
+
   -- ** Case
   -- | Scrutinizes an expression and executes the appropriate alternative.
   -- The scrutinee of a case statement is required to be in WHNF (weak head normal form).
@@ -73,27 +98,26 @@
   , acorePatRestEmpty
   , acorePatFldBind
 
-  -- ** Abstraction
-  , acoreLam
 
-  -- ** Application
-  , acoreApp
-
   -- ** Datatypes
   , acoreTagTup
 
-  -- ** Binds/Bounds
-  , acoreBind1
-  , acoreBind1Nm1
 
   -- ** Module
   , makeModule
   , makeImport
   , makeMetaData
   , makeMetaDataCon
+  , makeMetaDataConFromCTag
 
   -- * Utilities
   , makeMain
+  , ppCModule
+  , pCExpr
+  , coreScanOpts
+
+  -- * Re-exports (or not???)
+  , module UHC.Light.Compiler.Base.API
   )
   where
 
@@ -103,10 +127,15 @@
 
 import UHC.Light.Compiler.AbstractCore hiding (acoreCaseDflt)
 import qualified UHC.Light.Compiler.AbstractCore as AC
+import UHC.Light.Compiler.Base.API
 import UHC.Light.Compiler.Base.Common
 import UHC.Light.Compiler.Base.HsName
 import UHC.Light.Compiler.Core hiding (acoreCaseDflt)
+import UHC.Light.Compiler.Core.Pretty
+import UHC.Light.Compiler.Core.Parser
+import UHC.Light.Compiler.Scanner.Common
 import UHC.Light.Compiler.Opts
+import UHC.Light.Compiler.CodeGen.Tag
 
 -- | Creates a new Core name. All names generated with this function live in
 -- the "Core API" namespace and will not collide with names in other namespaces.
@@ -157,6 +186,29 @@
 acoreUnit :: EHCOpts -> CExpr
 acoreUnit _ = acoreTup []
 
+-- | Creates a constructor tag.
+makeCTag :: HsName  -- ^ Fully qualified Datatype name.
+    -> HsName       -- ^ Fully qualified Constructor name.
+    -> Int          -- ^ Tag number.
+    -> Int          -- ^ Arity.
+    -> CTag
+makeCTag tyNm conNm tg ar = CTag tyNm conNm tg ar (-1)
+
+destructCTag :: a -- ^ Algebra for record/tuple case.
+    -> (HsName -> HsName -> Int -> Int -> a)    -- ^ Algebra for datatype case. Order of arguments is the same as in 'makeCTag'.
+    -> CTag
+    -> a
+destructCTag arec _ CTagRec = arec
+destructCTag _ adat (CTag {ctagTyNm = ty, ctagNm = nm, ctagTag' = tag, ctagArity = ar}) = adat ty nm tag ar
+
+-- | `CTag` for unit values ('()' in haskell).
+ctagUnit :: CTag
+ctagUnit = ctagTup
+
+-- | `CTag` of tuple/records.
+ctagTup :: CTag
+ctagTup = CTagRec
+
 -- TODO verify that this sorting is always correct (see also AbstractCore/Utils.chs)
 -- | A Case expression, possibly with a default value.
 acoreCaseDflt  :: AbstractCore  e m b bound boundmeta bcat mbind t p pr pf a
@@ -174,6 +226,7 @@
 
 -- | Creates a module.
 makeModule :: HsName    -- ^ The name of the module.
+    -> [CExport]        -- ^ The exports.
     -> [CImport]        -- ^ The imports (only direct imports, not transitive ones).
     -> [CDeclMeta]      -- ^ The meta information.
     -> CExpr            -- ^ The body of the module.
@@ -198,15 +251,21 @@
     -> CDataCon
 makeMetaDataCon = CDataCon_Con
 
+makeMetaDataConFromCTag :: CTag -- ^ CTag to export.
+    -> Maybe CDataCon   -- ^ The constructor description. Nothing if it is a record/tuple constructor.
+makeMetaDataConFromCTag = destructCTag Nothing (\_ b c d -> Just $ makeMetaDataCon b c d)
+
 -- | Creates the main entry point, calling the given function when run. The given
 -- function to call has to be in scope (either define it in the same module,
 -- or import it).
+-- In addition, the module "UHC.Run" has to be imported!
 makeMain :: HsName       -- ^ The function containing the user code to call.
     -> CExpr
 makeMain main = mainEhc
   where mainEhc = acoreLet1Plain mainNm
-            (acoreApp (acoreVar $ hsnMkModf ["UHC", "Run"] (hsnFromString "ehcRunMain") M.empty) [acoreVar main])
+            (mainWrap $ acoreVar main)
             (acoreVar mainNm)
-        mainNm = hsnMkModf [] (hsnFromString "main") M.empty
+        mainNm = hsnMain
+        mainWrap = \m -> acoreApp (acoreVar hsnEhcRunMain) [m]
 
 
diff --git a/src/UHC/Light/Compiler/Core/BindExtract.hs b/src/UHC/Light/Compiler/Core/BindExtract.hs
--- a/src/UHC/Light/Compiler/Core/BindExtract.hs
+++ b/src/UHC/Light/Compiler/Core/BindExtract.hs
@@ -724,6 +724,46 @@
 sem_CDeclMetaL_Nil :: T_CDeclMetaL
 sem_CDeclMetaL_Nil =
     ( )
+-- CExport -----------------------------------------------------
+{-
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( )
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    ( )
+-- CExportL ----------------------------------------------------
+{-
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( )
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    ( )
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    ( )
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1422,6 +1462,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1429,16 +1470,17 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( )
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     ( )
 -- CPat --------------------------------------------------------
 {-
diff --git a/src/UHC/Light/Compiler/Core/Check.hs b/src/UHC/Light/Compiler/Core/Check.hs
--- a/src/UHC/Light/Compiler/Core/Check.hs
+++ b/src/UHC/Light/Compiler/Core/Check.hs
@@ -13,11 +13,14 @@
 import UHC.Light.Compiler.Base.TermLike
 import UHC.Light.Compiler.AbstractCore
 import UHC.Light.Compiler.Core
-import qualified UHC.Util.FastSeq as Seq
 import Data.Maybe
 import qualified Data.Map as Map
+import qualified Data.Set as Set
+import qualified UHC.Util.FastSeq as Seq
+import qualified UHC.Util.Rel as Rel
 import Control.Applicative
 import UHC.Util.Pretty
+import UHC.Light.Compiler.Module.ImportExport
 
 
 
@@ -35,6 +38,7 @@
 
 
 
+
 cmodCheck'
   :: Inh_CodeAGItf
      -> CModule
@@ -111,7 +115,7 @@
                  (case (True) of
                   { _exprOisTopApp ->
                   (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                   { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                   { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                        (case (_lhsIopts) of
                         { _patOopts ->
                         (case (_lev) of
@@ -219,6 +223,7 @@
          hasMain              : Bool
          isFreeOfLam          : Bool
          isLamLifted          : Bool
+         modDefsRel           : ModEntRel
          nm                   : HsName
          undefNmMp            : UndefNmMp
    alternatives:
@@ -238,7 +243,7 @@
                CBindCateg ->
                Int ->
                EHCOpts ->
-               ( ErrSq,Bool,Bool,Bool,HsName,UndefNmMp)
+               ( ErrSq,Bool,Bool,Bool,ModEntRel,HsName,UndefNmMp)
 sem_CBind_Bind :: HsName ->
                   T_CBoundL ->
                   T_CBind
@@ -273,11 +278,14 @@
                         { _lhsOisFreeOfLam ->
                         (case (_bindAspectsIisLamLifted) of
                          { _lhsOisLamLifted ->
-                         (case (nm_) of
-                          { _lhsOnm ->
-                          (case (_bindAspectsIundefNmMp) of
-                           { _lhsOundefNmMp ->
-                           ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOnm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                         (case (let o = IdOcc nm_ IdOcc_Val
+                                in  Rel.fromList [ (hsnQualified (ioccNm o), ModEnt IdOcc_Val o Set.empty emptyRange) ]) of
+                          { _lhsOmodDefsRel ->
+                          (case (nm_) of
+                           { _lhsOnm ->
+                           (case (_bindAspectsIundefNmMp) of
+                            { _lhsOundefNmMp ->
+                            ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOnm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CBindAnn ----------------------------------------------------
 {-
    visit 0:
@@ -400,6 +408,7 @@
          hasMain              : Bool
          isFreeOfLam          : Bool
          isLamLifted          : Bool
+         modDefsRel           : ModEntRel
          undefNmMp            : UndefNmMp
    alternatives:
       alternative Cons:
@@ -419,7 +428,7 @@
                 CBindCateg ->
                 Int ->
                 EHCOpts ->
-                ( ErrSq,Bool,Bool,Bool,UndefNmMp)
+                ( ErrSq,Bool,Bool,Bool,ModEntRel,UndefNmMp)
 sem_CBindL_Cons :: T_CBind ->
                    T_CBindL ->
                    T_CBindL
@@ -443,7 +452,7 @@
               (case (_lhsIdataGam) of
                { _tlOdataGam ->
                (case (tl_ _tlOdataGam _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOopts) of
-                { ( _tlIerrs,_tlIhasMain,_tlIisFreeOfLam,_tlIisLamLifted,_tlIundefNmMp) ->
+                { ( _tlIerrs,_tlIhasMain,_tlIisFreeOfLam,_tlIisLamLifted,_tlImodDefsRel,_tlIundefNmMp) ->
                     (case (_lhsIopts) of
                      { _hdOopts ->
                      (case (_lhsIlev) of
@@ -457,7 +466,7 @@
                          (case (_lhsIdataGam) of
                           { _hdOdataGam ->
                           (case (hd_ _hdOdataGam _hdOevalCtx _hdOisGlobal _hdOletBindingsCateg _hdOlev _hdOopts) of
-                           { ( _hdIerrs,_hdIhasMain,_hdIisFreeOfLam,_hdIisLamLifted,_hdInm,_hdIundefNmMp) ->
+                           { ( _hdIerrs,_hdIhasMain,_hdIisFreeOfLam,_hdIisLamLifted,_hdImodDefsRel,_hdInm,_hdIundefNmMp) ->
                                (case (_hdIerrs `Seq.union` _tlIerrs) of
                                 { _lhsOerrs ->
                                 (case (_hdIhasMain || _tlIhasMain) of
@@ -466,9 +475,11 @@
                                   { _lhsOisFreeOfLam ->
                                   (case (_hdIisLamLifted && _tlIisLamLifted) of
                                    { _lhsOisLamLifted ->
-                                   (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of
-                                    { _lhsOundefNmMp ->
-                                    ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                   (case (_hdImodDefsRel `Rel.union` _tlImodDefsRel) of
+                                    { _lhsOmodDefsRel ->
+                                    (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of
+                                     { _lhsOundefNmMp ->
+                                     ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBindL_Nil :: T_CBindL
 sem_CBindL_Nil =
     (\ _lhsIdataGam
@@ -485,9 +496,11 @@
             { _lhsOisFreeOfLam ->
             (case (True) of
              { _lhsOisLamLifted ->
-             (case (Map.empty) of
-              { _lhsOundefNmMp ->
-              ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }))
+             (case (Rel.empty) of
+              { _lhsOmodDefsRel ->
+              (case (Map.empty) of
+               { _lhsOundefNmMp ->
+               ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOundefNmMp) }) }) }) }) }) }))
 -- CBound ------------------------------------------------------
 {-
    visit 0:
@@ -594,7 +607,7 @@
                 (case (True) of
                  { _exprOisTopApp ->
                  (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                       (case (_lhsIopts) of
                        { _bindMetaOopts ->
                        (case (_lhsIlev) of
@@ -700,7 +713,7 @@
                 (case (_lhsIdataGam) of
                  { _exprOdataGam ->
                  (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                       (case (_exprIerrs) of
                        { _lhsOerrs ->
                        (case (_exprIisFreeOfLam) of
@@ -768,7 +781,7 @@
                 (case (True) of
                  { _exprOisTopApp ->
                  (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                       (case (_exprIerrs) of
                        { _lhsOerrs ->
                        (case (_exprIisFreeOfLam) of
@@ -1047,6 +1060,78 @@
       (case (Map.empty) of
        { _lhsOundefNmMp ->
        ( _lhsOerrs,_lhsOgathDataGam,_lhsOundefNmMp) }) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attributes:
+         errs                 : ErrSq
+         modExpL              : [ModExp]
+         undefNmMp            : UndefNmMp
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( ErrSq,([ModExp]),UndefNmMp)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (Seq.empty) of
+     { _lhsOerrs ->
+     (case ([ModExpEnt (ModEntSpec nm_ emptyRange Nothing)]) of
+      { _lhsOmodExpL ->
+      (case (Map.empty) of
+       { _lhsOundefNmMp ->
+       ( _lhsOerrs,_lhsOmodExpL,_lhsOundefNmMp) }) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attributes:
+         errs                 : ErrSq
+         modExpL              : [ModExp]
+         undefNmMp            : UndefNmMp
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( ErrSq,([ModExp]),UndefNmMp)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIerrs,_tlImodExpL,_tlIundefNmMp) ->
+         (case (hd_) of
+          { ( _hdIerrs,_hdImodExpL,_hdIundefNmMp) ->
+              (case (_hdIerrs `Seq.union` _tlIerrs) of
+               { _lhsOerrs ->
+               (case (_hdImodExpL ++ _tlImodExpL) of
+                { _lhsOmodExpL ->
+                (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of
+                 { _lhsOundefNmMp ->
+                 ( _lhsOerrs,_lhsOmodExpL,_lhsOundefNmMp) }) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case (Seq.empty) of
+     { _lhsOerrs ->
+     (case ([]) of
+      { _lhsOmodExpL ->
+      (case (Map.empty) of
+       { _lhsOundefNmMp ->
+       ( _lhsOerrs,_lhsOmodExpL,_lhsOundefNmMp) }) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1064,6 +1149,7 @@
          isFreeOfLam          : Bool
          isLamLifted          : Bool
          lamBodyIsFreeOfLam   : Bool
+         modDefsRel           : ModEntRel
          undefNmMp            : UndefNmMp
          whatBelow            : WhatExpr
    alternatives:
@@ -1273,7 +1359,7 @@
                Int ->
                EHCOpts ->
                WhatExpr ->
-               ( ErrSq,Bool,Bool,Bool,Bool,UndefNmMp,WhatExpr)
+               ( ErrSq,Bool,Bool,Bool,Bool,ModEntRel,UndefNmMp,WhatExpr)
 sem_CExpr_Var :: ACoreBindRef ->
                  T_CExpr
 sem_CExpr_Var ref_ =
@@ -1294,15 +1380,17 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (acbrefNm ref_) of
-                { _nm ->
-                (case (ExprIsVar _nm) of
-                 { _whatBelow ->
-                 (case (_whatBelow) of
-                  { _lhsOwhatBelow ->
-                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (acbrefNm ref_) of
+                 { _nm ->
+                 (case (ExprIsVar _nm) of
+                  { _whatBelow ->
+                  (case (_whatBelow) of
+                   { _lhsOwhatBelow ->
+                   ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Int :: Int ->
                  T_CExpr
 sem_CExpr_Int int_ =
@@ -1323,13 +1411,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsInt int_) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsInt int_) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Char :: Char ->
                   T_CExpr
 sem_CExpr_Char char_ =
@@ -1350,13 +1440,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsOtherWHNF) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsOtherWHNF) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_String :: String ->
                     T_CExpr
 sem_CExpr_String str_ =
@@ -1377,13 +1469,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsOtherWHNF) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsOtherWHNF) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Integer :: Integer ->
                      T_CExpr
 sem_CExpr_Integer integer_ =
@@ -1404,13 +1498,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsOtherWHNF) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsOtherWHNF) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Tup :: CTag ->
                  T_CExpr
 sem_CExpr_Tup tag_ =
@@ -1431,13 +1527,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsTup tag_) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsTup tag_) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Let :: CBindCateg ->
                  T_CBindL ->
                  T_CExpr ->
@@ -1475,7 +1573,7 @@
                    (case (_lhsIdataGam) of
                     { _bodyOdataGam ->
                     (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of
-                     { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->
+                     { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->
                          (case (_lhsIopts) of
                           { _bindsOopts ->
                           (case (categ_) of
@@ -1493,7 +1591,7 @@
                                 (case (_lhsIlev + 1) of
                                  { _bindsOlev ->
                                  (case (binds_ _bindsOdataGam _bindsOevalCtx _bindsOisGlobal _bindsOletBindingsCateg _bindsOlev _bindsOopts) of
-                                  { ( _bindsIerrs,_bindsIhasMain,_bindsIisFreeOfLam,_bindsIisLamLifted,_bindsIundefNmMp) ->
+                                  { ( _bindsIerrs,_bindsIhasMain,_bindsIisFreeOfLam,_bindsIisLamLifted,_bindsImodDefsRel,_bindsIundefNmMp) ->
                                       (case (_bindsIerrs `Seq.union` _bodyIerrs) of
                                        { _lhsOerrs ->
                                        (case (_bindsIhasMain || _bodyIhasMain) of
@@ -1504,13 +1602,15 @@
                                           { _lhsOisLamLifted ->
                                           (case (False) of
                                            { _lhsOlamBodyIsFreeOfLam ->
-                                           (case (_bindsIundefNmMp `undefmpUnion` _bodyIundefNmMp) of
-                                            { _lhsOundefNmMp ->
-                                            (case (ExprIsOther) of
-                                             { _whatBelow ->
-                                             (case (_whatBelow) of
-                                              { _lhsOwhatBelow ->
-                                              ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                           (case (_bindsImodDefsRel `Rel.union` _bodyImodDefsRel) of
+                                            { _lhsOmodDefsRel ->
+                                            (case (_bindsIundefNmMp `undefmpUnion` _bodyIundefNmMp) of
+                                             { _lhsOundefNmMp ->
+                                             (case (ExprIsOther) of
+                                              { _whatBelow ->
+                                              (case (_whatBelow) of
+                                               { _lhsOwhatBelow ->
+                                               ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_App :: T_CExpr ->
                  T_CBound ->
                  T_CExpr
@@ -1565,7 +1665,7 @@
                                  (case (False) of
                                   { _funcOisTopApp ->
                                   (case (func_ _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOwhatAbove) of
-                                   { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcIundefNmMp,_funcIwhatBelow) ->
+                                   { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcIundefNmMp,_funcIwhatBelow) ->
                                        (case (_funcIerrs `Seq.union` _argIerrs) of
                                         { _lhsOerrs ->
                                         (case (_funcIhasMain) of
@@ -1576,13 +1676,15 @@
                                            { _lhsOisLamLifted ->
                                            (case (False) of
                                             { _lhsOlamBodyIsFreeOfLam ->
-                                            (case (_funcIundefNmMp `undefmpUnion` _argIundefNmMp) of
-                                             { _lhsOundefNmMp ->
-                                             (case (maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow) of
-                                              { _whatBelow ->
-                                              (case (_whatBelow) of
-                                               { _lhsOwhatBelow ->
-                                               ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                            (case (_funcImodDefsRel) of
+                                             { _lhsOmodDefsRel ->
+                                             (case (_funcIundefNmMp `undefmpUnion` _argIundefNmMp) of
+                                              { _lhsOundefNmMp ->
+                                              (case (maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow) of
+                                               { _whatBelow ->
+                                               (case (_whatBelow) of
+                                                { _lhsOwhatBelow ->
+                                                ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Lam :: T_CBind ->
                  T_CExpr ->
                  T_CExpr
@@ -1617,7 +1719,7 @@
                    (case (_lhsIdataGam) of
                     { _bodyOdataGam ->
                     (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of
-                     { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->
+                     { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->
                          (case (_lhsIopts) of
                           { _bindOopts ->
                           (case (_lev) of
@@ -1635,7 +1737,7 @@
                                 (case (_lhsIdataGam) of
                                  { _bindOdataGam ->
                                  (case (bind_ _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of
-                                  { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindInm,_bindIundefNmMp) ->
+                                  { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindImodDefsRel,_bindInm,_bindIundefNmMp) ->
                                       (case (_bindIerrs `Seq.union` _bodyIerrs) of
                                        { _lhsOerrs ->
                                        (case (_bindIhasMain || _bodyIhasMain) of
@@ -1648,13 +1750,15 @@
                                                  then _bodyIlamBodyIsFreeOfLam
                                                  else _bodyIisFreeOfLam) of
                                            { _lhsOlamBodyIsFreeOfLam ->
-                                           (case (_bindIundefNmMp `undefmpUnion` _bodyIundefNmMp) of
-                                            { _lhsOundefNmMp ->
-                                            (case (maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _bodyIwhatBelow) of
-                                             { _whatBelow ->
-                                             (case (_whatBelow) of
-                                              { _lhsOwhatBelow ->
-                                              ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                           (case (_bindImodDefsRel `Rel.union` _bodyImodDefsRel) of
+                                            { _lhsOmodDefsRel ->
+                                            (case (_bindIundefNmMp `undefmpUnion` _bodyIundefNmMp) of
+                                             { _lhsOundefNmMp ->
+                                             (case (maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _bodyIwhatBelow) of
+                                              { _whatBelow ->
+                                              (case (_whatBelow) of
+                                               { _lhsOwhatBelow ->
+                                               ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Case :: T_CExpr ->
                   T_CAltL ->
                   T_CExpr ->
@@ -1688,7 +1792,7 @@
                   (case (_lhsIdataGam) of
                    { _dfltOdataGam ->
                    (case (dflt_ _dfltOdataGam _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlev _dfltOopts _dfltOwhatAbove) of
-                    { ( _dfltIerrs,_dfltIhasMain,_dfltIisFreeOfLam,_dfltIisLamLifted,_dfltIlamBodyIsFreeOfLam,_dfltIundefNmMp,_dfltIwhatBelow) ->
+                    { ( _dfltIerrs,_dfltIhasMain,_dfltIisFreeOfLam,_dfltIisLamLifted,_dfltIlamBodyIsFreeOfLam,_dfltImodDefsRel,_dfltIundefNmMp,_dfltIwhatBelow) ->
                         (case (_lhsIopts) of
                          { _altsOopts ->
                          (case (_lhsIlev) of
@@ -1714,7 +1818,7 @@
                                        (case (_lhsIdataGam) of
                                         { _exprOdataGam ->
                                         (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                                         { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                                         { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                                              (case (_exprIerrs `Seq.union` _altsIerrs `Seq.union` _dfltIerrs) of
                                               { _lhsOerrs ->
                                               (case (_exprIhasMain || _dfltIhasMain) of
@@ -1725,13 +1829,15 @@
                                                  { _lhsOisLamLifted ->
                                                  (case (False) of
                                                   { _lhsOlamBodyIsFreeOfLam ->
-                                                  (case (_exprIundefNmMp `undefmpUnion` _altsIundefNmMp `undefmpUnion` _dfltIundefNmMp) of
-                                                   { _lhsOundefNmMp ->
-                                                   (case (ExprIsOther) of
-                                                    { _whatBelow ->
-                                                    (case (_whatBelow) of
-                                                     { _lhsOwhatBelow ->
-                                                     ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                                  (case (_exprImodDefsRel `Rel.union` _dfltImodDefsRel) of
+                                                   { _lhsOmodDefsRel ->
+                                                   (case (_exprIundefNmMp `undefmpUnion` _altsIundefNmMp `undefmpUnion` _dfltIundefNmMp) of
+                                                    { _lhsOundefNmMp ->
+                                                    (case (ExprIsOther) of
+                                                     { _whatBelow ->
+                                                     (case (_whatBelow) of
+                                                      { _lhsOwhatBelow ->
+                                                      ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_CaseAltFail :: CaseAltFailReason ->
                          T_CExpr ->
                          T_CExpr
@@ -1764,7 +1870,7 @@
                   (case (_lhsIdataGam) of
                    { _errorExprOdataGam ->
                    (case (errorExpr_ _errorExprOdataGam _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlev _errorExprOopts _errorExprOwhatAbove) of
-                    { ( _errorExprIerrs,_errorExprIhasMain,_errorExprIisFreeOfLam,_errorExprIisLamLifted,_errorExprIlamBodyIsFreeOfLam,_errorExprIundefNmMp,_errorExprIwhatBelow) ->
+                    { ( _errorExprIerrs,_errorExprIhasMain,_errorExprIisFreeOfLam,_errorExprIisLamLifted,_errorExprIlamBodyIsFreeOfLam,_errorExprImodDefsRel,_errorExprIundefNmMp,_errorExprIwhatBelow) ->
                         (case (_errorExprIerrs) of
                          { _lhsOerrs ->
                          (case (_errorExprIhasMain) of
@@ -1775,11 +1881,13 @@
                             { _lhsOisLamLifted ->
                             (case (False) of
                              { _lhsOlamBodyIsFreeOfLam ->
-                             (case (_errorExprIundefNmMp) of
-                              { _lhsOundefNmMp ->
-                              (case (_errorExprIwhatBelow) of
-                               { _lhsOwhatBelow ->
-                               ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                             (case (_errorExprImodDefsRel) of
+                              { _lhsOmodDefsRel ->
+                              (case (_errorExprIundefNmMp) of
+                               { _lhsOundefNmMp ->
+                               (case (_errorExprIwhatBelow) of
+                                { _lhsOwhatBelow ->
+                                ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_TupDel :: T_CExpr ->
                     CTag ->
                     HsName ->
@@ -1814,7 +1922,7 @@
                   (case (_lhsIdataGam) of
                    { _offsetOdataGam ->
                    (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of
-                    { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->
+                    { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->
                         (case (_whatAbove) of
                          { _exprOwhatAbove ->
                          (case (_lhsIopts) of
@@ -1830,7 +1938,7 @@
                               (case (False) of
                                { _exprOisTopTup ->
                                (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                                { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                                { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                                     (case (_exprIerrs `Seq.union` _offsetIerrs) of
                                      { _lhsOerrs ->
                                      (case (_exprIhasMain || _offsetIhasMain) of
@@ -1841,13 +1949,15 @@
                                         { _lhsOisLamLifted ->
                                         (case (False) of
                                          { _lhsOlamBodyIsFreeOfLam ->
-                                         (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp) of
-                                          { _lhsOundefNmMp ->
-                                          (case (ExprIsOther) of
-                                           { _whatBelow ->
-                                           (case (_whatBelow) of
-                                            { _lhsOwhatBelow ->
-                                            ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                         (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel) of
+                                          { _lhsOmodDefsRel ->
+                                          (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp) of
+                                           { _lhsOundefNmMp ->
+                                           (case (ExprIsOther) of
+                                            { _whatBelow ->
+                                            (case (_whatBelow) of
+                                             { _lhsOwhatBelow ->
+                                             ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_TupIns :: T_CExpr ->
                     CTag ->
                     HsName ->
@@ -1883,7 +1993,7 @@
                   (case (_lhsIdataGam) of
                    { _fldExprOdataGam ->
                    (case (fldExpr_ _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOwhatAbove) of
-                    { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprIundefNmMp,_fldExprIwhatBelow) ->
+                    { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprIundefNmMp,_fldExprIwhatBelow) ->
                         (case (_whatAbove) of
                          { _offsetOwhatAbove ->
                          (case (_lhsIopts) of
@@ -1899,7 +2009,7 @@
                               (case (_lhsIdataGam) of
                                { _offsetOdataGam ->
                                (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of
-                                { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->
+                                { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->
                                     (case (_whatAbove) of
                                      { _exprOwhatAbove ->
                                      (case (_lhsIopts) of
@@ -1915,7 +2025,7 @@
                                           (case (False) of
                                            { _exprOisTopTup ->
                                            (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                                            { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                                            { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                                                 (case (_exprIerrs `Seq.union` _offsetIerrs `Seq.union` _fldExprIerrs) of
                                                  { _lhsOerrs ->
                                                  (case (_exprIhasMain || _offsetIhasMain || _fldExprIhasMain) of
@@ -1926,13 +2036,15 @@
                                                     { _lhsOisLamLifted ->
                                                     (case (False) of
                                                      { _lhsOlamBodyIsFreeOfLam ->
-                                                     (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of
-                                                      { _lhsOundefNmMp ->
-                                                      (case (ExprIsOther) of
-                                                       { _whatBelow ->
-                                                       (case (_whatBelow) of
-                                                        { _lhsOwhatBelow ->
-                                                        ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                                     (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of
+                                                      { _lhsOmodDefsRel ->
+                                                      (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of
+                                                       { _lhsOundefNmMp ->
+                                                       (case (ExprIsOther) of
+                                                        { _whatBelow ->
+                                                        (case (_whatBelow) of
+                                                         { _lhsOwhatBelow ->
+                                                         ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_TupUpd :: T_CExpr ->
                     CTag ->
                     HsName ->
@@ -1968,7 +2080,7 @@
                   (case (_lhsIdataGam) of
                    { _fldExprOdataGam ->
                    (case (fldExpr_ _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOwhatAbove) of
-                    { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprIundefNmMp,_fldExprIwhatBelow) ->
+                    { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprIundefNmMp,_fldExprIwhatBelow) ->
                         (case (_whatAbove) of
                          { _offsetOwhatAbove ->
                          (case (_lhsIopts) of
@@ -1984,7 +2096,7 @@
                               (case (_lhsIdataGam) of
                                { _offsetOdataGam ->
                                (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of
-                                { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->
+                                { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->
                                     (case (_whatAbove) of
                                      { _exprOwhatAbove ->
                                      (case (_lhsIopts) of
@@ -2000,7 +2112,7 @@
                                           (case (False) of
                                            { _exprOisTopTup ->
                                            (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                                            { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                                            { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                                                 (case (_exprIerrs `Seq.union` _offsetIerrs `Seq.union` _fldExprIerrs) of
                                                  { _lhsOerrs ->
                                                  (case (_exprIhasMain || _offsetIhasMain || _fldExprIhasMain) of
@@ -2011,13 +2123,15 @@
                                                     { _lhsOisLamLifted ->
                                                     (case (False) of
                                                      { _lhsOlamBodyIsFreeOfLam ->
-                                                     (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of
-                                                      { _lhsOundefNmMp ->
-                                                      (case (ExprIsOther) of
-                                                       { _whatBelow ->
-                                                       (case (_whatBelow) of
-                                                        { _lhsOwhatBelow ->
-                                                        ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                                     (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of
+                                                      { _lhsOmodDefsRel ->
+                                                      (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of
+                                                       { _lhsOundefNmMp ->
+                                                       (case (ExprIsOther) of
+                                                        { _whatBelow ->
+                                                        (case (_whatBelow) of
+                                                         { _lhsOwhatBelow ->
+                                                         ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_FFI :: FFIWay ->
                  String ->
                  ForeignEnt ->
@@ -2041,13 +2155,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsFFI) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsFFI) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Dbg :: String ->
                  T_CExpr
 sem_CExpr_Dbg info_ =
@@ -2068,13 +2184,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsOther) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsOther) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Hole :: UID ->
                   T_CExpr
 sem_CExpr_Hole uid_ =
@@ -2095,13 +2213,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsOther) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsOther) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_HoleLet :: UID ->
                      T_CExpr ->
                      T_CExpr
@@ -2134,7 +2254,7 @@
                   (case (_lhsIdataGam) of
                    { _bodyOdataGam ->
                    (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of
-                    { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->
+                    { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->
                         (case (_bodyIerrs) of
                          { _lhsOerrs ->
                          (case (_bodyIhasMain) of
@@ -2145,13 +2265,15 @@
                             { _lhsOisLamLifted ->
                             (case (False) of
                              { _lhsOlamBodyIsFreeOfLam ->
-                             (case (_bodyIundefNmMp) of
-                              { _lhsOundefNmMp ->
-                              (case (ExprIsOther) of
-                               { _whatBelow ->
-                               (case (_whatBelow) of
-                                { _lhsOwhatBelow ->
-                                ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                             (case (_bodyImodDefsRel) of
+                              { _lhsOmodDefsRel ->
+                              (case (_bodyIundefNmMp) of
+                               { _lhsOundefNmMp ->
+                               (case (ExprIsOther) of
+                                { _whatBelow ->
+                                (case (_whatBelow) of
+                                 { _lhsOwhatBelow ->
+                                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_CoeArg :: T_CExpr
 sem_CExpr_CoeArg =
     (\ _lhsIdataGam
@@ -2171,13 +2293,15 @@
              { _lhsOisLamLifted ->
              (case (False) of
               { _lhsOlamBodyIsFreeOfLam ->
-              (case (Map.empty) of
-               { _lhsOundefNmMp ->
-               (case (ExprIsOther) of
-                { _whatBelow ->
-                (case (_whatBelow) of
-                 { _lhsOwhatBelow ->
-                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))
+              (case (Rel.empty) of
+               { _lhsOmodDefsRel ->
+               (case (Map.empty) of
+                { _lhsOundefNmMp ->
+                (case (ExprIsOther) of
+                 { _whatBelow ->
+                 (case (_whatBelow) of
+                  { _lhsOwhatBelow ->
+                  ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))
 sem_CExpr_ImplsApp :: T_CExpr ->
                       ImplsVarId ->
                       T_CExpr
@@ -2210,7 +2334,7 @@
                   (case (_lhsIdataGam) of
                    { _funcOdataGam ->
                    (case (func_ _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOwhatAbove) of
-                    { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcIundefNmMp,_funcIwhatBelow) ->
+                    { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcIundefNmMp,_funcIwhatBelow) ->
                         (case (_funcIerrs) of
                          { _lhsOerrs ->
                          (case (_funcIhasMain) of
@@ -2221,13 +2345,15 @@
                             { _lhsOisLamLifted ->
                             (case (False) of
                              { _lhsOlamBodyIsFreeOfLam ->
-                             (case (_funcIundefNmMp) of
-                              { _lhsOundefNmMp ->
-                              (case (ExprIsOther) of
-                               { _whatBelow ->
-                               (case (_whatBelow) of
-                                { _lhsOwhatBelow ->
-                                ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                             (case (_funcImodDefsRel) of
+                              { _lhsOmodDefsRel ->
+                              (case (_funcIundefNmMp) of
+                               { _lhsOundefNmMp ->
+                               (case (ExprIsOther) of
+                                { _whatBelow ->
+                                (case (_whatBelow) of
+                                 { _lhsOwhatBelow ->
+                                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_ImplsLam :: ImplsVarId ->
                       T_CExpr ->
                       T_CExpr
@@ -2260,7 +2386,7 @@
                   (case (_lhsIdataGam) of
                    { _bodyOdataGam ->
                    (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of
-                    { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->
+                    { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->
                         (case (_bodyIerrs) of
                          { _lhsOerrs ->
                          (case (_bodyIhasMain) of
@@ -2271,13 +2397,15 @@
                             { _lhsOisLamLifted ->
                             (case (False) of
                              { _lhsOlamBodyIsFreeOfLam ->
-                             (case (_bodyIundefNmMp) of
-                              { _lhsOundefNmMp ->
-                              (case (ExprIsOther) of
-                               { _whatBelow ->
-                               (case (_whatBelow) of
-                                { _lhsOwhatBelow ->
-                                ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                             (case (_bodyImodDefsRel) of
+                              { _lhsOmodDefsRel ->
+                              (case (_bodyIundefNmMp) of
+                               { _lhsOundefNmMp ->
+                               (case (ExprIsOther) of
+                                { _whatBelow ->
+                                (case (_whatBelow) of
+                                 { _lhsOwhatBelow ->
+                                 ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CExpr_Ann :: T_CExprAnn ->
                  T_CExpr ->
                  T_CExpr
@@ -2304,7 +2432,7 @@
                (case (_lhsIdataGam) of
                 { _exprOdataGam ->
                 (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                 { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                 { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                      (case (_lhsIopts) of
                       { _annOopts ->
                       (case (_lhsIlev) of
@@ -2323,11 +2451,13 @@
                                  { _lhsOisLamLifted ->
                                  (case (False) of
                                   { _lhsOlamBodyIsFreeOfLam ->
-                                  (case (_annIundefNmMp `undefmpUnion` _exprIundefNmMp) of
-                                   { _lhsOundefNmMp ->
-                                   (case (_exprIwhatBelow) of
-                                    { _lhsOwhatBelow ->
-                                    ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                  (case (_exprImodDefsRel) of
+                                   { _lhsOmodDefsRel ->
+                                   (case (_annIundefNmMp `undefmpUnion` _exprIundefNmMp) of
+                                    { _lhsOundefNmMp ->
+                                    (case (_exprIwhatBelow) of
+                                     { _lhsOwhatBelow ->
+                                     ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CExprAnn ----------------------------------------------------
 {-
    visit 0:
@@ -2406,6 +2536,7 @@
       synthesized attributes:
          errs                 : ErrSq
          impModNmL            : [HsName]
+         modImpL              : [ModImp]
          undefNmMp            : UndefNmMp
    alternatives:
       alternative Import:
@@ -2417,7 +2548,7 @@
 sem_CImport (CImport_Import _nm) =
     (sem_CImport_Import _nm)
 -- semantic domain
-type T_CImport = ( ErrSq,([HsName]),UndefNmMp)
+type T_CImport = ( ErrSq,([HsName]),([ModImp]),UndefNmMp)
 sem_CImport_Import :: HsName ->
                       T_CImport
 sem_CImport_Import nm_ =
@@ -2425,15 +2556,18 @@
      { _lhsOerrs ->
      (case ([nm_]) of
       { _lhsOimpModNmL ->
-      (case (Map.empty) of
-       { _lhsOundefNmMp ->
-       ( _lhsOerrs,_lhsOimpModNmL,_lhsOundefNmMp) }) }) })
+      (case ([ModImp True nm_ nm_ False [] emptyRange]) of
+       { _lhsOmodImpL ->
+       (case (Map.empty) of
+        { _lhsOundefNmMp ->
+        ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) })
 -- CImportL ----------------------------------------------------
 {-
    visit 0:
       synthesized attributes:
          errs                 : ErrSq
          impModNmL            : [HsName]
+         modImpL              : [ModImp]
          undefNmMp            : UndefNmMp
    alternatives:
       alternative Cons:
@@ -2447,31 +2581,35 @@
 sem_CImportL list =
     (Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list))
 -- semantic domain
-type T_CImportL = ( ErrSq,([HsName]),UndefNmMp)
+type T_CImportL = ( ErrSq,([HsName]),([ModImp]),UndefNmMp)
 sem_CImportL_Cons :: T_CImport ->
                      T_CImportL ->
                      T_CImportL
 sem_CImportL_Cons hd_ tl_ =
     (case (tl_) of
-     { ( _tlIerrs,_tlIimpModNmL,_tlIundefNmMp) ->
+     { ( _tlIerrs,_tlIimpModNmL,_tlImodImpL,_tlIundefNmMp) ->
          (case (hd_) of
-          { ( _hdIerrs,_hdIimpModNmL,_hdIundefNmMp) ->
+          { ( _hdIerrs,_hdIimpModNmL,_hdImodImpL,_hdIundefNmMp) ->
               (case (_hdIerrs `Seq.union` _tlIerrs) of
                { _lhsOerrs ->
                (case (_hdIimpModNmL ++ _tlIimpModNmL) of
                 { _lhsOimpModNmL ->
-                (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of
-                 { _lhsOundefNmMp ->
-                 ( _lhsOerrs,_lhsOimpModNmL,_lhsOundefNmMp) }) }) }) }) })
+                (case (_hdImodImpL ++ _tlImodImpL) of
+                 { _lhsOmodImpL ->
+                 (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of
+                  { _lhsOundefNmMp ->
+                  ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) }) }) })
 sem_CImportL_Nil :: T_CImportL
 sem_CImportL_Nil =
     (case (Seq.empty) of
      { _lhsOerrs ->
      (case ([]) of
       { _lhsOimpModNmL ->
-      (case (Map.empty) of
-       { _lhsOundefNmMp ->
-       ( _lhsOerrs,_lhsOimpModNmL,_lhsOundefNmMp) }) }) })
+      (case ([]) of
+       { _lhsOmodImpL ->
+       (case (Map.empty) of
+        { _lhsOundefNmMp ->
+        ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) })
 -- CMetaBind ---------------------------------------------------
 {-
    visit 0:
@@ -2717,6 +2855,7 @@
       inherited attributes:
          dataGam              : DataGam
          lev                  : Int
+         moduleNm             : HsName
          opts                 : EHCOpts
       synthesized attributes:
          errs                 : ErrSq
@@ -2725,36 +2864,42 @@
          impModNmL            : [HsName]
          isFreeOfLam          : Bool
          isLamLifted          : Bool
+         mod                  : Mod
          realModuleNm         : HsName
          undefNmMp            : UndefNmMp
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
             local dataGam     : _
+            local realModuleNm : _
 -}
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = DataGam ->
                  Int ->
+                 HsName ->
                  EHCOpts ->
-                 ( ErrSq,DataGam,Bool,([HsName]),Bool,Bool,HsName,UndefNmMp)
+                 ( ErrSq,DataGam,Bool,([HsName]),Bool,Bool,Mod,HsName,UndefNmMp)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIdataGam
        _lhsIlev
+       _lhsImoduleNm
        _lhsIopts ->
          (case (ExprIsOther) of
           { _whatAbove ->
@@ -2777,26 +2922,32 @@
                       (case (True) of
                        { _exprOisTopApp ->
                        (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
-                        { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->
+                        { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->
                             (case (imports_) of
-                             { ( _importsIerrs,_importsIimpModNmL,_importsIundefNmMp) ->
-                                 (case (_importsIerrs `Seq.union` _declMetasIerrs `Seq.union` _exprIerrs) of
-                                  { _lhsOerrs ->
-                                  (case (_declMetasIgathDataGam) of
-                                   { _lhsOgathDataGam ->
-                                   (case (_exprIhasMain) of
-                                    { _lhsOhasMain ->
-                                    (case (_importsIimpModNmL) of
-                                     { _lhsOimpModNmL ->
-                                     (case (_exprIisFreeOfLam) of
-                                      { _lhsOisFreeOfLam ->
-                                      (case (_exprIisLamLifted) of
-                                       { _lhsOisLamLifted ->
-                                       (case (moduleNm_) of
-                                        { _lhsOrealModuleNm ->
-                                        (case (_importsIundefNmMp `undefmpUnion` _declMetasIundefNmMp `undefmpUnion` _exprIundefNmMp) of
-                                         { _lhsOundefNmMp ->
-                                         ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOrealModuleNm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                             { ( _importsIerrs,_importsIimpModNmL,_importsImodImpL,_importsIundefNmMp) ->
+                                 (case (exports_) of
+                                  { ( _exportsIerrs,_exportsImodExpL,_exportsIundefNmMp) ->
+                                      (case (_exportsIerrs `Seq.union` _importsIerrs `Seq.union` _declMetasIerrs `Seq.union` _exprIerrs) of
+                                       { _lhsOerrs ->
+                                       (case (_declMetasIgathDataGam) of
+                                        { _lhsOgathDataGam ->
+                                        (case (_exprIhasMain) of
+                                         { _lhsOhasMain ->
+                                         (case (_importsIimpModNmL) of
+                                          { _lhsOimpModNmL ->
+                                          (case (_exprIisFreeOfLam) of
+                                           { _lhsOisFreeOfLam ->
+                                           (case (_exprIisLamLifted) of
+                                            { _lhsOisLamLifted ->
+                                            (case (moduleNm_) of
+                                             { _realModuleNm ->
+                                             (case (Mod _realModuleNm                     (Just _realModuleNm) (Just _exportsImodExpL) _importsImodImpL _exprImodDefsRel Rel.empty []) of
+                                              { _lhsOmod ->
+                                              (case (_realModuleNm) of
+                                               { _lhsOrealModuleNm ->
+                                               (case (_exportsIundefNmMp `undefmpUnion` _importsIundefNmMp `undefmpUnion` _declMetasIundefNmMp `undefmpUnion` _exprIundefNmMp) of
+                                                { _lhsOundefNmMp ->
+                                                ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
@@ -2996,7 +3147,7 @@
                       (case (acoreBindcategPlain) of
                        { _bindOletBindingsCateg ->
                        (case (bind_ _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of
-                        { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindInm,_bindIundefNmMp) ->
+                        { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindImodDefsRel,_bindInm,_bindIundefNmMp) ->
                             (case (ExprIsOther) of
                              { _whatAbove ->
                              (case (_whatAbove) of
@@ -3014,7 +3165,7 @@
                                    (case (True) of
                                     { _offsetOisTopApp ->
                                     (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of
-                                     { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->
+                                     { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->
                                          (case (_offsetIerrs `Seq.union` _bindIerrs `Seq.union` _fldAnnsIerrs) of
                                           { _lhsOerrs ->
                                           (case (_bindInm) of
@@ -3158,6 +3309,7 @@
    visit 0:
       inherited attributes:
          dataGam              : DataGam
+         moduleNm             : HsName
          opts                 : EHCOpts
       synthesized attributes:
          errs                 : ErrSq
@@ -3165,6 +3317,7 @@
          hasMain              : Bool
          impModNmL            : [HsName]
          isLamLifted          : Bool
+         mod                  : Mod
          realModuleNm         : HsName
    alternatives:
       alternative AGItf:
@@ -3177,39 +3330,45 @@
     (sem_CodeAGItf_AGItf (sem_CModule _module))
 -- semantic domain
 type T_CodeAGItf = DataGam ->
+                   HsName ->
                    EHCOpts ->
-                   ( ErrSq,DataGam,Bool,([HsName]),Bool,HsName)
-data Inh_CodeAGItf = Inh_CodeAGItf {dataGam_Inh_CodeAGItf :: !(DataGam),opts_Inh_CodeAGItf :: !(EHCOpts)}
-data Syn_CodeAGItf = Syn_CodeAGItf {errs_Syn_CodeAGItf :: !(ErrSq),gathDataGam_Syn_CodeAGItf :: !(DataGam),hasMain_Syn_CodeAGItf :: !(Bool),impModNmL_Syn_CodeAGItf :: !(([HsName])),isLamLifted_Syn_CodeAGItf :: !(Bool),realModuleNm_Syn_CodeAGItf :: !(HsName)}
+                   ( ErrSq,DataGam,Bool,([HsName]),Bool,Mod,HsName)
+data Inh_CodeAGItf = Inh_CodeAGItf {dataGam_Inh_CodeAGItf :: !(DataGam),moduleNm_Inh_CodeAGItf :: !(HsName),opts_Inh_CodeAGItf :: !(EHCOpts)}
+data Syn_CodeAGItf = Syn_CodeAGItf {errs_Syn_CodeAGItf :: !(ErrSq),gathDataGam_Syn_CodeAGItf :: !(DataGam),hasMain_Syn_CodeAGItf :: !(Bool),impModNmL_Syn_CodeAGItf :: !(([HsName])),isLamLifted_Syn_CodeAGItf :: !(Bool),mod_Syn_CodeAGItf :: !(Mod),realModuleNm_Syn_CodeAGItf :: !(HsName)}
 wrap_CodeAGItf :: T_CodeAGItf ->
                   Inh_CodeAGItf ->
                   Syn_CodeAGItf
-wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIdataGam _lhsIopts) =
-    (let ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOrealModuleNm) = sem _lhsIdataGam _lhsIopts
-     in  (Syn_CodeAGItf _lhsOerrs _lhsOgathDataGam _lhsOhasMain _lhsOimpModNmL _lhsOisLamLifted _lhsOrealModuleNm))
+wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIdataGam _lhsImoduleNm _lhsIopts) =
+    (let ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm) = sem _lhsIdataGam _lhsImoduleNm _lhsIopts
+     in  (Syn_CodeAGItf _lhsOerrs _lhsOgathDataGam _lhsOhasMain _lhsOimpModNmL _lhsOisLamLifted _lhsOmod _lhsOrealModuleNm))
 sem_CodeAGItf_AGItf :: T_CModule ->
                        T_CodeAGItf
 sem_CodeAGItf_AGItf module_ =
     (\ _lhsIdataGam
+       _lhsImoduleNm
        _lhsIopts ->
          (case (_lhsIopts) of
           { _moduleOopts ->
-          (case (_lhsIdataGam) of
-           { _moduleOdataGam ->
-           (case (cLevModule) of
-            { _moduleOlev ->
-            (case (module_ _moduleOdataGam _moduleOlev _moduleOopts) of
-             { ( _moduleIerrs,_moduleIgathDataGam,_moduleIhasMain,_moduleIimpModNmL,_moduleIisFreeOfLam,_moduleIisLamLifted,_moduleIrealModuleNm,_moduleIundefNmMp) ->
-                 (case (_moduleIerrs) of
-                  { _lhsOerrs ->
-                  (case (_moduleIgathDataGam) of
-                   { _lhsOgathDataGam ->
-                   (case (_moduleIhasMain) of
-                    { _lhsOhasMain ->
-                    (case (_moduleIimpModNmL) of
-                     { _lhsOimpModNmL ->
-                     (case (_moduleIisLamLifted) of
-                      { _lhsOisLamLifted ->
-                      (case (_moduleIrealModuleNm) of
-                       { _lhsOrealModuleNm ->
-                       ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOrealModuleNm) }) }) }) }) }) }) }) }) }) }))
+          (case (_lhsImoduleNm) of
+           { _moduleOmoduleNm ->
+           (case (_lhsIdataGam) of
+            { _moduleOdataGam ->
+            (case (cLevModule) of
+             { _moduleOlev ->
+             (case (module_ _moduleOdataGam _moduleOlev _moduleOmoduleNm _moduleOopts) of
+              { ( _moduleIerrs,_moduleIgathDataGam,_moduleIhasMain,_moduleIimpModNmL,_moduleIisFreeOfLam,_moduleIisLamLifted,_moduleImod,_moduleIrealModuleNm,_moduleIundefNmMp) ->
+                  (case (_moduleIerrs) of
+                   { _lhsOerrs ->
+                   (case (_moduleIgathDataGam) of
+                    { _lhsOgathDataGam ->
+                    (case (_moduleIhasMain) of
+                     { _lhsOhasMain ->
+                     (case (_moduleIimpModNmL) of
+                      { _lhsOimpModNmL ->
+                      (case (_moduleIisLamLifted) of
+                       { _lhsOisLamLifted ->
+                       (case (_moduleImod) of
+                        { _lhsOmod ->
+                        (case (_moduleIrealModuleNm) of
+                         { _lhsOrealModuleNm ->
+                         ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm) }) }) }) }) }) }) }) }) }) }) }) }))
diff --git a/src/UHC/Light/Compiler/Core/ExtractFFE.hs b/src/UHC/Light/Compiler/Core/ExtractFFE.hs
--- a/src/UHC/Light/Compiler/Core/ExtractFFE.hs
+++ b/src/UHC/Light/Compiler/Core/ExtractFFE.hs
@@ -673,6 +673,46 @@
 sem_CDeclMetaL_Nil :: T_CDeclMetaL
 sem_CDeclMetaL_Nil =
     ( )
+-- CExport -----------------------------------------------------
+{-
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( )
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    ( )
+-- CExportL ----------------------------------------------------
+{-
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( )
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    ( )
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    ( )
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1497,6 +1537,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1504,16 +1545,17 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( ([ExtractFFE]),FvS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (case (expr_) of
      { ( _exprIffeBinds,_exprIfvS,_exprIself) ->
          (case (_exprIffeBinds) of
diff --git a/src/UHC/Light/Compiler/Core/FvS.hs b/src/UHC/Light/Compiler/Core/FvS.hs
--- a/src/UHC/Light/Compiler/Core/FvS.hs
+++ b/src/UHC/Light/Compiler/Core/FvS.hs
@@ -508,6 +508,46 @@
 sem_CDeclMetaL_Nil :: T_CDeclMetaL
 sem_CDeclMetaL_Nil =
     ( )
+-- CExport -----------------------------------------------------
+{-
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( )
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    ( )
+-- CExportL ----------------------------------------------------
+{-
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( )
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    ( )
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    ( )
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1075,6 +1115,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1082,16 +1123,17 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( FvS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (case (expr_) of
      { ( _exprIfvS) ->
          (case (_exprIfvS) of
diff --git a/src/UHC/Light/Compiler/Core/Merge.hs b/src/UHC/Light/Compiler/Core/Merge.hs
--- a/src/UHC/Light/Compiler/Core/Merge.hs
+++ b/src/UHC/Light/Compiler/Core/Merge.hs
@@ -25,10 +25,10 @@
 instance ModPuller
            CModule
            (CModuleDatabase, Map.Map HsName CModuleDatabase)
-           (HsName,CImportL,CDeclMetaL)
+           (HsName,CExportL,CImportL,CDeclMetaL)
            CModule CExpr CBindCateg CBind
   where
-    mpullSplit mmain@(CModule_Mod modNm _ _ _) mimpL =
+    mpullSplit mmain@(CModule_Mod modNm _ _ _ _) mimpL =
         ( cmoddbMainExpr modDbMain
         ,
           Just (CBindCateg_FFE, [ (effeBind e, effeFvS e) | m <- mmain : mimpL, e <- cmodExtractFFE m ])
@@ -36,6 +36,8 @@
           , Map.unions [ Map.singleton (cmoddbModNm db) db | db <- modDbMain : modDbImp ]
           )
         , ( modNm
+          -- TBD: combine this in some way with the FFE implicit exports...
+          , Set.toList $ Set.fromList $ concatMap cmoddbExports $ modDbMain : modDbImp
           , Set.toList $ Set.fromList $ concatMap cmoddbImports $ modDbMain : modDbImp
           , concatMap cmoddbMeta $ modDbMain : modDbImp
         ) )
@@ -57,9 +59,9 @@
 
     mpullFreeVars = cexprFvS
 
-    mpullBindingsAddToMod (modNm,allImports,allMeta) rootExpr bs _ = CModule_Mod modNm allImports allMeta (acoreLetN bs $ rootExpr)
+    mpullBindingsAddToMod (modNm,allExports,allImports,allMeta) rootExpr bs _ = CModule_Mod modNm allExports allImports allMeta (acoreLetN bs $ rootExpr)
 
-{-# LINE 88 "src/ehc/Core/Merge.chs" #-}
+{-# LINE 90 "src/ehc/Core/Merge.chs" #-}
 -- | merge by pulling
 cModMerge :: (CModule,[CModule]) -> CModule
 cModMerge mods@(mmain,mimpL)
diff --git a/src/UHC/Light/Compiler/Core/ModAsMap.hs b/src/UHC/Light/Compiler/Core/ModAsMap.hs
--- a/src/UHC/Light/Compiler/Core/ModAsMap.hs
+++ b/src/UHC/Light/Compiler/Core/ModAsMap.hs
@@ -552,6 +552,74 @@
      (case (_copy) of
       { _lhsOcopy ->
       ( _lhsOcopy) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         copy                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local copy        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _copy ->
+     (case (_copy) of
+      { _lhsOcopy ->
+      ( _lhsOcopy) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         copy                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local copy        : _
+      alternative Nil:
+         visit 0:
+            local copy        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcopy) ->
+         (case (hd_) of
+          { ( _hdIcopy) ->
+              (case ((:) _hdIcopy _tlIcopy) of
+               { _copy ->
+               (case (_copy) of
+                { _lhsOcopy ->
+                ( _lhsOcopy) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _copy ->
+     (case (_copy) of
+      { _lhsOcopy ->
+      ( _lhsOcopy) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1357,6 +1425,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1366,45 +1435,49 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( CModule,CModuleDatabase)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (case (expr_) of
      { ( _exprIbindSq,_exprIcopy,_exprIexpr) ->
          (case (declMetas_) of
           { ( _declMetasIcopy) ->
               (case (imports_) of
                { ( _importsIcopy) ->
-                   (case (CModule_Mod moduleNm_ _importsIcopy _declMetasIcopy _exprIcopy) of
-                    { _copy ->
-                    (case (_copy) of
-                     { _lhsOcopy ->
-                     (case (let binds = Seq.toList _exprIbindSq
-                                nrBinds = length binds
-                                (refs,arrs)
-                                      = unzip
-                                          [ (Map.unions refs, (cat, listArray (0, nrSubBinds-1) bs))
-                                          | (bi,(cat,bs)) <- zip [0 .. nrBinds-1] binds
-                                          , let nrSubBinds = length bs
-                                          , let refs = zipWith (\b i -> Map.singleton (cbindNm b) (bi,i)) bs [0 .. nrSubBinds-1]
-                                          ]
-                            in  emptyCModuleDatabase
-                                    { cmoddbModNm       = moduleNm_
-                                    , cmoddbBindMp      = Map.unions refs
-                                    , cmoddbBindArr     = listArray (0, nrBinds-1) arrs
-                                    , cmoddbMainExpr    = _exprIexpr
-                                    , cmoddbImports             = _importsIcopy
-                                    , cmoddbMeta                = _declMetasIcopy
-                                    }) of
-                      { _lhsOdb ->
-                      ( _lhsOcopy,_lhsOdb) }) }) }) }) }) })
+                   (case (exports_) of
+                    { ( _exportsIcopy) ->
+                        (case (CModule_Mod moduleNm_ _exportsIcopy _importsIcopy _declMetasIcopy _exprIcopy) of
+                         { _copy ->
+                         (case (_copy) of
+                          { _lhsOcopy ->
+                          (case (let binds = Seq.toList _exprIbindSq
+                                     nrBinds = length binds
+                                     (refs,arrs)
+                                           = unzip
+                                               [ (Map.unions refs, (cat, listArray (0, nrSubBinds-1) bs))
+                                               | (bi,(cat,bs)) <- zip [0 .. nrBinds-1] binds
+                                               , let nrSubBinds = length bs
+                                               , let refs = zipWith (\b i -> Map.singleton (cbindNm b) (bi,i)) bs [0 .. nrSubBinds-1]
+                                               ]
+                                 in  emptyCModuleDatabase
+                                         { cmoddbModNm       = moduleNm_
+                                         , cmoddbBindMp      = Map.unions refs
+                                         , cmoddbBindArr     = listArray (0, nrBinds-1) arrs
+                                         , cmoddbMainExpr    = _exprIexpr
+                                         , cmoddbExports             = _exportsIcopy
+                                         , cmoddbImports             = _importsIcopy
+                                         , cmoddbMeta                = _declMetasIcopy
+                                         }) of
+                           { _lhsOdb ->
+                           ( _lhsOcopy,_lhsOdb) }) }) }) }) }) }) })
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Parser.hs b/src/UHC/Light/Compiler/Core/Parser.hs
--- a/src/UHC/Light/Compiler/Core/Parser.hs
+++ b/src/UHC/Light/Compiler/Core/Parser.hs
@@ -41,14 +41,19 @@
 {-# LINE 60 "src/ehc/Core/Parser.chs" #-}
 pCModule :: CParser CModule
 pCModule
-  = (\m mt e -> CModule_Mod m mt e)
+  = CModule_Mod
     <$  pMODULE <*> pDollNm <* pSEMI
+    <*> pE
     <*> pI
     <*> pM
     <*> pCExpr -- <*> pA (pA pCTag)
-  where -- pA pE = pOCURLY *> pListSep pSEMI ((,) <$> pDollNm <* pEQUAL <*> pE) <* pCCURLY
-        pM    = pList pCDeclMeta -- pMaybe [] id $ pOCURLY *> pListSep pSEMI pCDeclMeta <* pCCURLY
+  where pM    = pList pCDeclMeta -- pMaybe [] id $ pOCURLY *> pListSep pSEMI pCDeclMeta <* pCCURLY
         pI    = pList pCImport
+        pE    = pList pCExport
+
+pCExport :: CParser CExport
+pCExport
+  =   CExport_Export <$ pEXPORT <*> pDollNm <* pSEMI
 
 pCImport :: CParser CImport
 pCImport
diff --git a/src/UHC/Light/Compiler/Core/Pretty.hs b/src/UHC/Light/Compiler/Core/Pretty.hs
--- a/src/UHC/Light/Compiler/Core/Pretty.hs
+++ b/src/UHC/Light/Compiler/Core/Pretty.hs
@@ -1280,6 +1280,80 @@
           (case ([]) of
            { _lhsOppL ->
            ( _lhsOpp,_lhsOppL) }) }))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      inherited attribute:
+         opts                 : EHCOpts
+      synthesized attribute:
+         pp                   : PP_Doc
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = EHCOpts ->
+                 ( PP_Doc)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (\ _lhsIopts ->
+         (case ("export" >#< ppCNm nm_) of
+          { _lhsOpp ->
+          ( _lhsOpp) }))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      inherited attribute:
+         opts                 : EHCOpts
+      synthesized attributes:
+         pp                   : PP_Doc
+         ppL                  : [PP_Doc]
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = EHCOpts ->
+                  ( PP_Doc,([PP_Doc]))
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (\ _lhsIopts ->
+         (case (_lhsIopts) of
+          { _tlOopts ->
+          (case (tl_ _tlOopts) of
+           { ( _tlIpp,_tlIppL) ->
+               (case (_lhsIopts) of
+                { _hdOopts ->
+                (case (hd_ _hdOopts) of
+                 { ( _hdIpp) ->
+                     (case (_hdIpp >-< _tlIpp) of
+                      { _lhsOpp ->
+                      (case (_hdIpp : _tlIppL) of
+                       { _lhsOppL ->
+                       ( _lhsOpp,_lhsOppL) }) }) }) }) }) }))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (\ _lhsIopts ->
+         (case (empty) of
+          { _lhsOpp ->
+          (case ([]) of
+           { _lhsOppL ->
+           ( _lhsOpp,_lhsOppL) }) }))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2613,6 +2687,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2620,19 +2695,20 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = MetaLev ->
                  EHCOpts ->
                  HowPP ->
                  ( PP_Doc)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsImlev
        _lhsIopts
        _lhsIppHow ->
@@ -2656,12 +2732,17 @@
                           { _importsOopts ->
                           (case (imports_ _importsOopts) of
                            { ( _importsIpp,_importsIppL) ->
-                               (case (ppSemi ("module" >#< ppCNm moduleNm_)
-                                      >-< (vlist $ map ppSemi _importsIppL)
-                                      >-< (vlist $ map ppSemi _declMetasIppL)
-                                      >-< _exprIpp) of
-                                { _lhsOpp ->
-                                ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }))
+                               (case (_lhsIopts) of
+                                { _exportsOopts ->
+                                (case (exports_ _exportsOopts) of
+                                 { ( _exportsIpp,_exportsIppL) ->
+                                     (case (ppSemi ("module" >#< ppCNm moduleNm_)
+                                            >-< (vlist $ map ppSemi _exportsIppL)
+                                            >-< (vlist $ map ppSemi _importsIppL)
+                                            >-< (vlist $ map ppSemi _declMetasIppL)
+                                            >-< _exprIpp) of
+                                      { _lhsOpp ->
+                                      ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Subst.hs b/src/UHC/Light/Compiler/Core/Subst.hs
--- a/src/UHC/Light/Compiler/Core/Subst.hs
+++ b/src/UHC/Light/Compiler/Core/Subst.hs
@@ -965,6 +965,74 @@
      (case (_cRepl) of
       { _lhsOcRepl ->
       ( _lhsOcRepl) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cRepl                : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cRepl       : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cRepl ->
+     (case (_cRepl) of
+      { _lhsOcRepl ->
+      ( _lhsOcRepl) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cRepl                : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cRepl       : _
+      alternative Nil:
+         visit 0:
+            local cRepl       : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcRepl) ->
+         (case (hd_) of
+          { ( _hdIcRepl) ->
+              (case ((:) _hdIcRepl _tlIcRepl) of
+               { _cRepl ->
+               (case (_cRepl) of
+                { _lhsOcRepl ->
+                ( _lhsOcRepl) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cRepl ->
+     (case (_cRepl) of
+      { _lhsOcRepl ->
+      ( _lhsOcRepl) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2157,6 +2225,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2166,19 +2235,20 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = CSubst ->
                  CExpr ->
                  Bool ->
                  ( CModule)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIcSubst
        _lhsIcoeArg
        _lhsIdoDeepSubst ->
@@ -2194,11 +2264,13 @@
                   { ( _declMetasIcRepl) ->
                       (case (imports_) of
                        { ( _importsIcRepl) ->
-                           (case (CModule_Mod moduleNm_ _importsIcRepl _declMetasIcRepl _exprIcRepl) of
-                            { _cRepl ->
-                            (case (_cRepl) of
-                             { _lhsOcRepl ->
-                             ( _lhsOcRepl) }) }) }) }) }) }) }) }))
+                           (case (exports_) of
+                            { ( _exportsIcRepl) ->
+                                (case (CModule_Mod moduleNm_ _exportsIcRepl _importsIcRepl _declMetasIcRepl _exprIcRepl) of
+                                 { _cRepl ->
+                                 (case (_cRepl) of
+                                  { _lhsOcRepl ->
+                                  ( _lhsOcRepl) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/ToCoreRun.hs b/src/UHC/Light/Compiler/Core/ToCoreRun.hs
--- a/src/UHC/Light/Compiler/Core/ToCoreRun.hs
+++ b/src/UHC/Light/Compiler/Core/ToCoreRun.hs
@@ -1534,6 +1534,46 @@
 sem_CDeclMetaL_Nil :: T_CDeclMetaL
 sem_CDeclMetaL_Nil =
     ( )
+-- CExport -----------------------------------------------------
+{-
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( )
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    ( )
+-- CExportL ----------------------------------------------------
+{-
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( )
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    ( )
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    ( )
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -4974,6 +5014,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -4987,8 +5028,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  Int ->
@@ -4996,11 +5037,12 @@
                  EHCOpts ->
                  ( (CR.Mod),(CR.Nm2RefMp))
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev
        _lhsImodNr
        _lhsInm2ref
diff --git a/src/UHC/Light/Compiler/Core/ToGrin.hs b/src/UHC/Light/Compiler/Core/ToGrin.hs
--- a/src/UHC/Light/Compiler/Core/ToGrin.hs
+++ b/src/UHC/Light/Compiler/Core/ToGrin.hs
@@ -1421,6 +1421,46 @@
     (case (emptyGam) of
      { _lhsOgathDataGam ->
      ( _lhsOgathDataGam) })
+-- CExport -----------------------------------------------------
+{-
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( )
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    ( )
+-- CExportL ----------------------------------------------------
+{-
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( )
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    ( )
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    ( )
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -3775,6 +3815,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -3785,8 +3826,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( LamMp,T_CModule_1)
 type T_CModule_1 = DataGam ->
@@ -3797,11 +3838,12 @@
                    EHCOpts ->
                    ( FvS,UID,DataGam)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (case (expr_) of
      { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) ->
          (case (_exprIgathLamMp) of
diff --git a/src/UHC/Light/Compiler/Core/Trf/ANormal.hs b/src/UHC/Light/Compiler/Core/Trf/ANormal.hs
--- a/src/UHC/Light/Compiler/Core/Trf/ANormal.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/ANormal.hs
@@ -2220,6 +2220,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -6370,6 +6449,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -6380,8 +6460,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = CVarIntroMp ->
                  UID ->
@@ -6390,11 +6470,12 @@
                  HsName ->
                  ( CModule,FvS,UID,LevBindSq,Int)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIcvarIntroMp
        _lhsIgUniq
        _lhsIintroCVarIntroMp
@@ -6418,6 +6499,7 @@
               _exprOlev :: Int
               _exprOmodNm :: HsName
               _exprOwhatAbove :: WhatExpr
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIcTrf :: CExpr
@@ -6458,7 +6540,7 @@
                   _exprIlevOf
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -6483,6 +6565,8 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/AnaRelevance.hs b/src/UHC/Light/Compiler/Core/Trf/AnaRelevance.hs
--- a/src/UHC/Light/Compiler/Core/Trf/AnaRelevance.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/AnaRelevance.hs
@@ -3671,6 +3671,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -9977,6 +10056,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -9988,8 +10068,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = DataGam ->
                  REnv ->
@@ -10002,11 +10082,12 @@
                  ([WhatToRelevInfer]) ->
                  ( CModule,FvS,UID,LamMp,RelevQualS,RVarMp)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIdataGam
        _lhsIenv
        _lhsIfinalRVarMp
@@ -10039,6 +10120,7 @@
               _exprOrvarMp :: RVarMp
               _exprOwhatAbove :: WhatExpr
               _exprOwhatTo :: ([WhatToRelevInfer])
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIappFunKind :: AppFunKind
@@ -10092,7 +10174,7 @@
                   _exprIqualS
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -10138,6 +10220,8 @@
               -- copy rule (down)
               _exprOwhatTo =
                   _lhsIwhatTo
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/AnnBasedSimplify.hs b/src/UHC/Light/Compiler/Core/Trf/AnnBasedSimplify.hs
--- a/src/UHC/Light/Compiler/Core/Trf/AnnBasedSimplify.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/AnnBasedSimplify.hs
@@ -961,6 +961,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2867,6 +2935,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2877,18 +2946,19 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  EHCOpts ->
                  ( CModule)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev
        _lhsIopts ->
          (case (_lhsIopts) of
@@ -2913,11 +2983,13 @@
                        { ( _declMetasIcTrf) | True ->
                            (case (imports_) of
                             { ( _importsIcTrf) | True ->
-                                (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                (case (exports_) of
+                                 { ( _exportsIcTrf) | True ->
+                                     (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                      { _cTrf | _cTrf `seq` (True) ->
+                                      (case (_cTrf) of
+                                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                       ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.hs b/src/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.hs
--- a/src/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.hs
@@ -2535,6 +2535,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -6691,6 +6770,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -6701,8 +6781,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = CVarReplNmMp ->
                  CVarIntroMp ->
@@ -6714,11 +6794,12 @@
                  FvS ->
                  ( CModule,FvS,Int,Int)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIargMp
        _lhsIcvarIntroMp
        _lhsIfvSCafMp
@@ -6744,6 +6825,7 @@
               _exprOlev :: Int
               _exprOvarS :: FvS
               _exprOwhatAbove :: WhatExpr
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIappFunKind :: AppFunKind
@@ -6775,7 +6857,7 @@
                   _exprIlevOf
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -6809,6 +6891,8 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/ConstProp.hs b/src/UHC/Light/Compiler/Core/Trf/ConstProp.hs
--- a/src/UHC/Light/Compiler/Core/Trf/ConstProp.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/ConstProp.hs
@@ -877,6 +877,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2388,6 +2456,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2398,18 +2467,19 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  EHCOpts ->
                  ( CModule)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev
        _lhsIopts ->
          (case (_lhsIopts) of
@@ -2432,11 +2502,13 @@
                       { ( _declMetasIcTrf) | True ->
                           (case (imports_) of
                            { ( _importsIcTrf) | True ->
-                               (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                                { _cTrf | _cTrf `seq` (True) ->
-                                (case (_cTrf) of
-                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                 ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }))
+                               (case (exports_) of
+                                { ( _exportsIcTrf) | True ->
+                                    (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                     { _cTrf | _cTrf `seq` (True) ->
+                                     (case (_cTrf) of
+                                      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                      ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/ElimNonCodegenConstructs.hs b/src/UHC/Light/Compiler/Core/Trf/ElimNonCodegenConstructs.hs
--- a/src/UHC/Light/Compiler/Core/Trf/ElimNonCodegenConstructs.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/ElimNonCodegenConstructs.hs
@@ -628,6 +628,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1440,6 +1508,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1449,17 +1518,18 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = EHCOpts ->
                  ( CModule)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIopts ->
          (case (_lhsIopts) of
           { _exprOopts | _exprOopts `seq` (True) ->
@@ -1469,11 +1539,13 @@
                 { ( _declMetasIcTrf) | True ->
                     (case (imports_) of
                      { ( _importsIcTrf) | True ->
-                         (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                          { _cTrf | _cTrf `seq` (True) ->
-                          (case (_cTrf) of
-                           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                           ( _lhsOcTrf) }) }) }) }) }) }))
+                         (case (exports_) of
+                          { ( _exportsIcTrf) | True ->
+                              (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                               { _cTrf | _cTrf `seq` (True) ->
+                               (case (_cTrf) of
+                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                ( _lhsOcTrf) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/ElimTrivApp.hs b/src/UHC/Light/Compiler/Core/Trf/ElimTrivApp.hs
--- a/src/UHC/Light/Compiler/Core/Trf/ElimTrivApp.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/ElimTrivApp.hs
@@ -984,6 +984,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2716,6 +2784,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2726,18 +2795,19 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  EHCOpts ->
                  ( CModule,FvS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev
        _lhsIopts ->
          (case (_lhsIopts) of
@@ -2760,13 +2830,15 @@
                       { ( _declMetasIcTrf) | True ->
                           (case (imports_) of
                            { ( _importsIcTrf) | True ->
-                               (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                                { _cTrf | _cTrf `seq` (True) ->
-                                (case (_cTrf) of
-                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                 (case (_exprIfvS) of
-                                  { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                                  ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                               (case (exports_) of
+                                { ( _exportsIcTrf) | True ->
+                                    (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                     { _cTrf | _cTrf `seq` (True) ->
+                                     (case (_cTrf) of
+                                      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                      (case (_exprIfvS) of
+                                       { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                                       ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/EraseExtractTysigCore.hs b/src/UHC/Light/Compiler/Core/Trf/EraseExtractTysigCore.hs
--- a/src/UHC/Light/Compiler/Core/Trf/EraseExtractTysigCore.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/EraseExtractTysigCore.hs
@@ -928,6 +928,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1897,6 +1965,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1906,18 +1975,19 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = LamMp ->
                  EHCOpts ->
                  ( CModule,LamMp)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlamMp
        _lhsIopts ->
          (case (_lhsIopts) of
@@ -1930,13 +2000,15 @@
                  { ( _declMetasIcTrf) | True ->
                      (case (imports_) of
                       { ( _importsIcTrf) | True ->
-                          (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                           { _cTrf | _cTrf `seq` (True) ->
-                           (case (_cTrf) of
-                            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                            (case (_exprIgathLamMp) of
-                             { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
-                             ( _lhsOcTrf,_lhsOgathLamMp) }) }) }) }) }) }) }) }))
+                          (case (exports_) of
+                           { ( _exportsIcTrf) | True ->
+                               (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                { _cTrf | _cTrf `seq` (True) ->
+                                (case (_cTrf) of
+                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                 (case (_exprIgathLamMp) of
+                                  { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
+                                  ( _lhsOcTrf,_lhsOgathLamMp) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/EtaRed.hs b/src/UHC/Light/Compiler/Core/Trf/EtaRed.hs
--- a/src/UHC/Light/Compiler/Core/Trf/EtaRed.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/EtaRed.hs
@@ -919,6 +919,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2569,6 +2637,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2579,17 +2648,18 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  ( CModule,FvS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev ->
          (case (ExprIsOther) of
           { _whatAbove | _whatAbove `seq` (True) ->
@@ -2609,13 +2679,15 @@
                      { ( _declMetasIcTrf) | True ->
                          (case (imports_) of
                           { ( _importsIcTrf) | True ->
-                              (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                               { _cTrf | _cTrf `seq` (True) ->
-                               (case (_cTrf) of
-                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                (case (_exprIfvS) of
-                                 { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                                 ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }))
+                              (case (exports_) of
+                               { ( _exportsIcTrf) | True ->
+                                   (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                    { _cTrf | _cTrf `seq` (True) ->
+                                    (case (_cTrf) of
+                                     { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                     (case (_exprIfvS) of
+                                      { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                                      ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.hs b/src/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.hs
--- a/src/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.hs
@@ -1817,6 +1817,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -5164,6 +5243,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -5175,8 +5255,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = LamMp ->
                  Int ->
@@ -5184,11 +5264,12 @@
                  Int ->
                  ( CModule,LamMp,LamMp,Int)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlamMp
        _lhsIlev
        _lhsIopts
@@ -5207,6 +5288,7 @@
               _exprOopts :: EHCOpts
               _exprOuniq :: Int
               _exprOwhatAbove :: WhatExpr
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIcTrf :: CExpr
@@ -5237,7 +5319,7 @@
                   _exprIdebugLamMp
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -5265,6 +5347,8 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/FixAfterParse.hs b/src/UHC/Light/Compiler/Core/Trf/FixAfterParse.hs
--- a/src/UHC/Light/Compiler/Core/Trf/FixAfterParse.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/FixAfterParse.hs
@@ -634,6 +634,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1450,6 +1518,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1459,17 +1528,18 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = DataGam ->
                  ( CModule)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIdataGam ->
          (case (_lhsIdataGam) of
           { _exprOdataGam | _exprOdataGam `seq` (True) ->
@@ -1479,11 +1549,13 @@
                 { ( _declMetasIcTrf) | True ->
                     (case (imports_) of
                      { ( _importsIcTrf) | True ->
-                         (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                          { _cTrf | _cTrf `seq` (True) ->
-                          (case (_cTrf) of
-                           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                           ( _lhsOcTrf) }) }) }) }) }) }))
+                         (case (exports_) of
+                          { ( _exportsIcTrf) | True ->
+                              (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                               { _cTrf | _cTrf `seq` (True) ->
+                               (case (_cTrf) of
+                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                ( _lhsOcTrf) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/FloatToGlobal.hs b/src/UHC/Light/Compiler/Core/Trf/FloatToGlobal.hs
--- a/src/UHC/Light/Compiler/Core/Trf/FloatToGlobal.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/FloatToGlobal.hs
@@ -1120,6 +1120,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2933,6 +3001,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2943,17 +3012,18 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  ( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CModule,FvS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev ->
          (case (_lhsIlev) of
           { _exprOlev | _exprOlev `seq` (True) ->
@@ -2977,13 +3047,15 @@
                        { ( _declMetasIcTrf) | True ->
                            (case (imports_) of
                             { ( _importsIcTrf) | True ->
-                                (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  (case (_exprIfvS) of
-                                   { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                                   ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                (case (exports_) of
+                                 { ( _exportsIcTrf) | True ->
+                                     (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                      { _cTrf | _cTrf `seq` (True) ->
+                                      (case (_cTrf) of
+                                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                       (case (_exprIfvS) of
+                                        { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                                        ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/InlineLetAlias.hs b/src/UHC/Light/Compiler/Core/Trf/InlineLetAlias.hs
--- a/src/UHC/Light/Compiler/Core/Trf/InlineLetAlias.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/InlineLetAlias.hs
@@ -2019,6 +2019,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -4672,6 +4751,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -4681,8 +4761,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = CVarIntroMp ->
                  CVarIntroMp ->
@@ -4691,11 +4771,12 @@
                  HsNameS ->
                  ( CModule,FvS,Int)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIcvarIntroMp
        _lhsIintroCVarIntroMp
        _lhsIlev
@@ -4711,6 +4792,7 @@
               _exprOlev :: Int
               _exprOnmMp :: NmMp
               _exprOnoTrfNmS :: HsNameS
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIbindNmMp :: NmMp
@@ -4732,7 +4814,7 @@
                   _exprIlevOf
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -4751,6 +4833,8 @@
               -- copy rule (down)
               _exprOnoTrfNmS =
                   _lhsInoTrfNmS
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.hs b/src/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.hs
--- a/src/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.hs
@@ -2776,6 +2776,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -7539,6 +7618,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -7549,8 +7629,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = CVarReplNmMp ->
                  CVarIntroMp ->
@@ -7563,11 +7643,12 @@
                  FvS ->
                  ( CModule,FvS,Int,Int)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIargMp
        _lhsIcvarIntroMp
        _lhsIgUniq
@@ -7597,6 +7678,7 @@
               _exprOlev :: Int
               _exprOvarS :: FvS
               _exprOwhatAbove :: WhatExpr
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIappFunKind :: AppFunKind
@@ -7635,7 +7717,7 @@
                   _exprIlevOf
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -7672,6 +7754,8 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/LetDefBeforeUse.hs b/src/UHC/Light/Compiler/Core/Trf/LetDefBeforeUse.hs
--- a/src/UHC/Light/Compiler/Core/Trf/LetDefBeforeUse.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/LetDefBeforeUse.hs
@@ -848,6 +848,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1897,6 +1965,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1907,17 +1976,18 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = Int ->
                  ( CModule,FvS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlev ->
          (case (_lhsIlev) of
           { _exprOlev | _exprOlev `seq` (True) ->
@@ -1930,19 +2000,22 @@
                  { ( _declMetasIcTrf) | True ->
                      (case (imports_) of
                       { ( _importsIcTrf) | True ->
-                          (case (let mk ds@(_:_:_) e = acoreLetRec              (map defCore ds) e
-                                     mk    [d]     e = acoreLet    (defCateg d) [defCore d]      e
-                                 in  CModule_Mod
-                                       moduleNm_
-                                       _importsIcTrf
-                                       _declMetasIcTrf
-                                       (foldr mk _exprIletBody _sccDefs)) of
-                           { _cTrf | _cTrf `seq` (True) ->
-                           (case (_cTrf) of
-                            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                            (case (_exprIfvS) of
-                             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                             ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }))
+                          (case (exports_) of
+                           { ( _exportsIcTrf) | True ->
+                               (case (let mk ds@(_:_:_) e = acoreLetRec              (map defCore ds) e
+                                          mk    [d]     e = acoreLet    (defCateg d) [defCore d]      e
+                                      in  CModule_Mod
+                                            moduleNm_
+                                            _exportsIcTrf
+                                            _importsIcTrf
+                                            _declMetasIcTrf
+                                            (foldr mk _exprIletBody _sccDefs)) of
+                                { _cTrf | _cTrf `seq` (True) ->
+                                (case (_cTrf) of
+                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                 (case (_exprIfvS) of
+                                  { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                                  ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/LetFlattenStrict.hs b/src/UHC/Light/Compiler/Core/Trf/LetFlattenStrict.hs
--- a/src/UHC/Light/Compiler/Core/Trf/LetFlattenStrict.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/LetFlattenStrict.hs
@@ -667,6 +667,74 @@
      (case (_cTrf) of
       { _lhsOcTrf ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf ->
+     (case (_cTrf) of
+      { _lhsOcTrf ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) ->
+         (case (hd_) of
+          { ( _hdIcTrf) ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf ->
+               (case (_cTrf) of
+                { _lhsOcTrf ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf ->
+     (case (_cTrf) of
+      { _lhsOcTrf ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1711,6 +1779,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1721,16 +1790,17 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( CModule)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (case (False) of
      { _isStrictChain ->
      (case (_isStrictChain) of
@@ -1741,11 +1811,13 @@
             { ( _declMetasIcTrf) ->
                 (case (imports_) of
                  { ( _importsIcTrf) ->
-                     (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                      { _cTrf ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf ->
-                       ( _lhsOcTrf) }) }) }) }) }) }) })
+                     (case (exports_) of
+                      { ( _exportsIcTrf) ->
+                          (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                           { _cTrf ->
+                           (case (_cTrf) of
+                            { _lhsOcTrf ->
+                            ( _lhsOcTrf) }) }) }) }) }) }) }) })
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/LetUnrec.hs b/src/UHC/Light/Compiler/Core/Trf/LetUnrec.hs
--- a/src/UHC/Light/Compiler/Core/Trf/LetUnrec.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/LetUnrec.hs
@@ -930,6 +930,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -2048,6 +2116,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -2057,18 +2126,19 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ([HsName]) ->
                  Int ->
                  ( CModule,FvS,UseMp)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIinNmL
        _lhsIlev ->
          (case (_lhsIinNmL) of
@@ -2081,15 +2151,17 @@
                  { ( _declMetasIcTrf) | True ->
                      (case (imports_) of
                       { ( _importsIcTrf) | True ->
-                          (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                           { _cTrf | _cTrf `seq` (True) ->
-                           (case (_cTrf) of
-                            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                            (case (_exprIfvS) of
-                             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                             (case (_exprIuseMp) of
-                              { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-                              ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }) }) }) }) }) }))
+                          (case (exports_) of
+                           { ( _exportsIcTrf) | True ->
+                               (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                { _cTrf | _cTrf `seq` (True) ->
+                                (case (_cTrf) of
+                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                 (case (_exprIfvS) of
+                                  { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                                  (case (_exprIuseMp) of
+                                   { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
+                                   ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf/OptimizeStrictness.hs b/src/UHC/Light/Compiler/Core/Trf/OptimizeStrictness.hs
--- a/src/UHC/Light/Compiler/Core/Trf/OptimizeStrictness.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/OptimizeStrictness.hs
@@ -1227,6 +1227,85 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_Export nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CExportL
+         _hdIcTrf :: CExport
+         _tlIcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (let _lhsOcTrf :: CExportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -3342,6 +3421,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -3353,18 +3433,19 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = LamMp ->
                  EHCOpts ->
                  ( CModule,LamMp)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIlamMp
        _lhsIopts ->
          (let _anaEvalCtxt :: AnaEval
@@ -3374,6 +3455,7 @@
               _exprOlamArgAnaEvalL :: ([AnaEval])
               _exprOlamMp :: LamMp
               _exprOopts :: EHCOpts
+              _exportsIcTrf :: CExportL
               _importsIcTrf :: CImportL
               _declMetasIcTrf :: CDeclMetaL
               _exprIappArgAnaEvalL :: ([AnaEval])
@@ -3391,7 +3473,7 @@
                   []
               -- self rule
               _cTrf =
-                  CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -3410,6 +3492,8 @@
               -- copy rule (down)
               _exprOopts =
                   _lhsIopts
+              ( _exportsIcTrf) =
+                  exports_
               ( _importsIcTrf) =
                   imports_
               ( _declMetasIcTrf) =
diff --git a/src/UHC/Light/Compiler/Core/Trf/RenUniq.hs b/src/UHC/Light/Compiler/Core/Trf/RenUniq.hs
--- a/src/UHC/Light/Compiler/Core/Trf/RenUniq.hs
+++ b/src/UHC/Light/Compiler/Core/Trf/RenUniq.hs
@@ -1335,6 +1335,74 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( CExport)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (case (CExport_Export nm_) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( CExportL)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (case (tl_) of
+     { ( _tlIcTrf) | True ->
+         (case (hd_) of
+          { ( _hdIcTrf) | True ->
+              (case ((:) _hdIcTrf _tlIcTrf) of
+               { _cTrf | _cTrf `seq` (True) ->
+               (case (_cTrf) of
+                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                ( _lhsOcTrf) }) }) }) })
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (case ([]) of
+     { _cTrf | _cTrf `seq` (True) ->
+     (case (_cTrf) of
+      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+      ( _lhsOcTrf) }) })
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -3302,6 +3370,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -3312,8 +3381,8 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ARenMp ->
                  Int ->
@@ -3321,11 +3390,12 @@
                  RenUniqOpts ->
                  ( CModule,Int)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (\ _lhsIaRenMp
        _lhsIgIniq
        _lhsIlev
@@ -3356,13 +3426,15 @@
                                  { ( _declMetasIcTrf) | True ->
                                      (case (imports_) of
                                       { ( _importsIcTrf) | True ->
-                                          (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of
-                                           { _cTrf | _cTrf `seq` (True) ->
-                                           (case (_cTrf) of
-                                            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                            (case (_exprIgIniq) of
-                                             { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-                                             ( _lhsOcTrf,_lhsOgIniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                          (case (exports_) of
+                                           { ( _exportsIcTrf) | True ->
+                                               (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
+                                                { _cTrf | _cTrf `seq` (True) ->
+                                                (case (_cTrf) of
+                                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                                 (case (_exprIgIniq) of
+                                                  { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
+                                                  ( _lhsOcTrf,_lhsOgIniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CPat --------------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/UsedModNms.hs b/src/UHC/Light/Compiler/Core/UsedModNms.hs
--- a/src/UHC/Light/Compiler/Core/UsedModNms.hs
+++ b/src/UHC/Light/Compiler/Core/UsedModNms.hs
@@ -463,6 +463,46 @@
 sem_CDeclMetaL_Nil :: T_CDeclMetaL
 sem_CDeclMetaL_Nil =
     ( )
+-- CExport -----------------------------------------------------
+{-
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+-- semantic domain
+type T_CExport = ( )
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    ( )
+-- CExportL ----------------------------------------------------
+{-
+   alternatives:
+      alternative Cons:
+         child hd             : CExport 
+         child tl             : CExportL 
+      alternative Nil:
+-}
+-- cata
+sem_CExportL :: CExportL ->
+                T_CExportL
+sem_CExportL list =
+    (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
+-- semantic domain
+type T_CExportL = ( )
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    ( )
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    ( )
 -- CExpr -------------------------------------------------------
 {-
    visit 0:
@@ -1074,6 +1114,7 @@
    alternatives:
       alternative Mod:
          child moduleNm       : {HsName}
+         child exports        : CExportL 
          child imports        : CImportL 
          child declMetas      : CDeclMetaL 
          child expr           : CExpr 
@@ -1081,16 +1122,17 @@
 -- cata
 sem_CModule :: CModule ->
                T_CModule
-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =
-    (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
+    (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
 -- semantic domain
 type T_CModule = ( HsNameS,HsNameS)
 sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
                    T_CImportL ->
                    T_CDeclMetaL ->
                    T_CExpr ->
                    T_CModule
-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
     (case (expr_) of
      { ( _exprIintroducedNmS,_exprIusedNmS) ->
          (case (_exprIintroducedNmS) of
diff --git a/src/UHC/Light/Compiler/EH/MainAG.hs b/src/UHC/Light/Compiler/EH/MainAG.hs
--- a/src/UHC/Light/Compiler/EH/MainAG.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG.hs
@@ -69,6 +69,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
@@ -114,13 +116,13 @@
              T_AGItf
 sem_AGItf (AGItf_AGItf _expr) | (AGItf_AGItf _expr) `seq` (True) =
     (sem_AGItf_AGItf (sem_Expr _expr))
-data Inh_AGItf = Inh_AGItf {chrStore_Inh_AGItf :: !(ScopedPredStore),clDfGam_Inh_AGItf :: !(ClassDefaultGam),clGam_Inh_AGItf :: !(ClGam),dataGam_Inh_AGItf :: !(DataGam),gUniq_Inh_AGItf :: !(UID),idQualGam_Inh_AGItf :: !(IdQualGam),isMainMod_Inh_AGItf :: !(Bool),kiGam_Inh_AGItf :: !(KiGam),moduleNm_Inh_AGItf :: !(HsName),opts_Inh_AGItf :: !(EHCOpts),polGam_Inh_AGItf :: !(PolGam),tyGam_Inh_AGItf :: !(TyGam),tyKiGam_Inh_AGItf :: !(TyKiGam),valGam_Inh_AGItf :: !(ValGam)}
+data Inh_AGItf = Inh_AGItf {chrStore_Inh_AGItf :: !(ScopedPredStore),clDfGam_Inh_AGItf :: !(ClassDefaultGam),clGam_Inh_AGItf :: !(ClGam),dataGam_Inh_AGItf :: !(DataGam),gUniq_Inh_AGItf :: !(UID),idQualGam_Inh_AGItf :: !(IdQualGam),importUsedModules_Inh_AGItf :: !(ImportUsedModules),isMainMod_Inh_AGItf :: !(Bool),kiGam_Inh_AGItf :: !(KiGam),moduleImportExportImpl_Inh_AGItf :: !(ModuleImportExportImpl),moduleNm_Inh_AGItf :: !(HsName),opts_Inh_AGItf :: !(EHCOpts),polGam_Inh_AGItf :: !(PolGam),tyGam_Inh_AGItf :: !(TyGam),tyKiGam_Inh_AGItf :: !(TyKiGam),valGam_Inh_AGItf :: !(ValGam)}
 data Syn_AGItf = Syn_AGItf {allErrSq_Syn_AGItf :: !(ErrSq),cmodule_Syn_AGItf :: !(CModule),gUniq_Syn_AGItf :: !(UID),gathChrStore_Syn_AGItf :: !(ScopedPredStore),gathClDfGam_Syn_AGItf :: !(ClassDefaultGam),gathClGam_Syn_AGItf :: !(ClGam),gathDataGam_Syn_AGItf :: !(DataGam),gathHiddenExports_Syn_AGItf :: !((Seq.Seq (HsName,IdOccKind))),gathKiGam_Syn_AGItf :: !(KiGam),gathLamMp_Syn_AGItf :: !(LamMp),gathMentrelFilterMp_Syn_AGItf :: !(ModEntRelFilterMp),gathPolGam_Syn_AGItf :: !(PolGam),gathTyGam_Syn_AGItf :: !(TyGam),gathTyKiGam_Syn_AGItf :: !(TyKiGam),gathValGam_Syn_AGItf :: !(ValGam),mbOrphan_Syn_AGItf :: !((Maybe (Set.Set HsName))),pp_Syn_AGItf :: !(PP_Doc),topTyPP_Syn_AGItf :: !(PP_Doc)}
 wrap_AGItf :: T_AGItf ->
               Inh_AGItf ->
               Syn_AGItf
-wrap_AGItf sem (Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIisMainMod _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) | sem `seq` ((Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIisMainMod _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) `seq` (True)) =
-    (let ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) | True = sem _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIisMainMod _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam
+wrap_AGItf sem (Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) | sem `seq` ((Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) `seq` (True)) =
+    (let ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) | True = sem _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam
      in  (Syn_AGItf _lhsOallErrSq _lhsOcmodule _lhsOgUniq _lhsOgathChrStore _lhsOgathClDfGam _lhsOgathClGam _lhsOgathDataGam _lhsOgathHiddenExports _lhsOgathKiGam _lhsOgathLamMp _lhsOgathMentrelFilterMp _lhsOgathPolGam _lhsOgathTyGam _lhsOgathTyKiGam _lhsOgathValGam _lhsOmbOrphan _lhsOpp _lhsOtopTyPP))
 -- CaseAlt -----------------------------------------------------
 -- cata
diff --git a/src/UHC/Light/Compiler/EH/MainAG_AGItf.hs b/src/UHC/Light/Compiler/EH/MainAG_AGItf.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_AGItf.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_AGItf.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
@@ -89,8 +91,10 @@
          clGam                : ClGam
          dataGam              : DataGam
          idQualGam            : IdQualGam
+         importUsedModules    : ImportUsedModules
          isMainMod            : Bool
          kiGam                : KiGam
+         moduleImportExportImpl : ModuleImportExportImpl
          moduleNm             : HsName
          opts                 : EHCOpts
          polGam               : PolGam
@@ -192,8 +196,10 @@
        _lhsIdataGam
        _lhsIgUniq
        _lhsIidQualGam
+       _lhsIimportUsedModules
        _lhsIisMainMod
        _lhsIkiGam
+       _lhsImoduleImportExportImpl
        _lhsImoduleNm
        _lhsIopts
        _lhsIpolGam
@@ -206,309 +212,314 @@
            (_lhsIdataGam `seq`
             (_lhsIgUniq `seq`
              (_lhsIidQualGam `seq`
-              (_lhsIisMainMod `seq`
-               (_lhsIkiGam `seq`
-                (_lhsImoduleNm `seq`
-                 (_lhsIopts `seq`
-                  (_lhsIpolGam `seq`
-                   (_lhsItyGam `seq`
-                    (_lhsItyKiGam `seq`
-                     (_lhsIvalGam `seq`
-                      ((case (_lhsIvalGam) of
-                        { _valGam | _valGam `seq` (True) ->
-                        (case (_valGam) of
-                         { _exprOvalGam | _exprOvalGam `seq` (True) ->
-                         (case (_lhsItyKiGam) of
-                          { _tyKiGam | _tyKiGam `seq` (True) ->
-                          (case (_tyKiGam) of
-                           { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
-                           (case (_lhsItyGam) of
-                            { _tyGam | _tyGam `seq` (True) ->
-                            (case (_tyGam) of
-                             { _exprOtyGam | _exprOtyGam `seq` (True) ->
-                             (case (_lhsIclGam) of
-                              { _clGam | _clGam `seq` (True) ->
-                              (case (emptyToSysfEnv
-                                         { sysfenvTyKiGam    = _tyKiGam
-                                         , sysfenvClGam      = _clGam
-                                         }) of
-                               { _sysfEnv | _sysfEnv `seq` (True) ->
-                               (case (_sysfEnv) of
-                                { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
-                                (case (initPredScope) of
-                                 { _predScope | _predScope `seq` (True) ->
-                                 (case (_predScope) of
-                                  { _exprOpredScope | _exprOpredScope `seq` (True) ->
-                                  (case (0) of
-                                   { _predSameScopeCounter | _predSameScopeCounter `seq` (True) ->
-                                   (case (_predSameScopeCounter) of
-                                    { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
-                                    (case (_lhsIpolGam) of
-                                     { _polGam | _polGam `seq` (True) ->
-                                     (case (_polGam) of
-                                      { _exprOpolGam | _exprOpolGam `seq` (True) ->
-                                      (case (-1) of
-                                       { _lexLev | _lexLev `seq` (True) ->
-                                       (case (_lexLev) of
-                                        { _exprOlexLev | _exprOlexLev `seq` (True) ->
-                                        (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_98_IO_tvar) -> case nextUnique __cont of { (__cont, lUniq_98_fitsIn_ty) -> case nextUnique __cont of { (__cont, lUniq_9_simplify) -> (__cont,lUniq,lUniq_98_IO_tvar,lUniq_98_fitsIn_ty,lUniq_9_simplify)}}}} )) of
-                                         { __tup8 | __tup8 `seq` (True) ->
-                                         (case (expr_) of
-                                          { ( _exprIrange,expr_1) | True ->
-                                              (case (__tup8) of
-                                               { (_exprOgUniq,_,_,_,_) | _exprOgUniq `seq` (True) ->
-                                               (case (_lhsIkiGam) of
-                                                { _kiGam | _kiGam `seq` (True) ->
-                                                (case (expr_1 _exprOgUniq) of
-                                                 { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
-                                                     (case (_kiGam) of
-                                                      { _exprOkiGam | _exprOkiGam `seq` (True) ->
-                                                      (case (True) of
-                                                       { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
-                                                       (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
-                                                        { ( _exprIpredSameScopeCounter,expr_3) | True ->
-                                                            (case (_lhsIopts) of
-                                                             { _exprOopts | _exprOopts `seq` (True) ->
-                                                             (case (emptyVarMp) of
-                                                              { _kiVarMp | _kiVarMp `seq` (True) ->
-                                                              (case (_kiVarMp) of
-                                                               { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
-                                                               (case (_clGam) of
-                                                                { _exprOclGam | _exprOclGam `seq` (True) ->
-                                                                (case (Set.empty) of
-                                                                 { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
-                                                                 (case (emptyVarMp) of
-                                                                  { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
-                                                                  (case (expr_3 _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
-                                                                   { ( _exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
-                                                                       (case (emptyGam) of
-                                                                        { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
-                                                                        (case (_exprIkiVarMp) of
-                                                                         { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
-                                                                         (case (Set.empty) of
-                                                                          { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
-                                                                          (case (emptyGam) of
-                                                                           { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
-                                                                           (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
-                                                                            { ( _exprIgathDataGam,expr_5) | True ->
-                                                                                (case (_exprIgathDataGam `gamUnion` _lhsIdataGam) of
-                                                                                 { _exprOdataGam | _exprOdataGam `seq` (True) ->
-                                                                                 (case (expr_5 _exprOdataGam) of
-                                                                                  { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
-                                                                                      (case (_exprIgathClDfGam `gamUnion` _lhsIclDfGam) of
-                                                                                       { _clDfGam | _clDfGam `seq` (True) ->
-                                                                                       (case (_clDfGam) of
-                                                                                        { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
-                                                                                        (case (__tup8) of
-                                                                                         { (_,_lUniq,_,_,_) | _lUniq `seq` (True) ->
-                                                                                         (case (_exprIchrFIIn {fiUniq = _lUniq}) of
-                                                                                          { _chrFIIn | _chrFIIn `seq` (True) ->
-                                                                                          (case (partition (\(_,_,_,sc) -> sc == initPredScope) $ Seq.toList _exprIchrInstDeclSq) of
-                                                                                           { __tup4 | __tup4 `seq` (True) ->
-                                                                                           (case (__tup4) of
-                                                                                            { (_instsOuter,_) | _instsOuter `seq` (True) ->
-                                                                                            (case (_lhsIchrStore) of
-                                                                                             { _initChrStore | _initChrStore `seq` (True) ->
-                                                                                             (case (mkScopedCHR2 _chrFIIn (Seq.toList _exprIchrClassDeclSq) _instsOuter _initChrStore) of
-                                                                                              { __tup5 | __tup5 `seq` (True) ->
-                                                                                              (case (__tup5) of
-                                                                                               { (_chrStoreOuterScope,_) | _chrStoreOuterScope `seq` (True) ->
-                                                                                               (case (__tup4) of
-                                                                                                { (_,_instsInner) | _instsInner `seq` (True) ->
-                                                                                                (case (mkScopedCHR2 _chrFIIn [] _instsInner _chrStoreOuterScope) of
-                                                                                                 { __tup6 | __tup6 `seq` (True) ->
-                                                                                                 (case (__tup6) of
-                                                                                                  { (_chrStore,_) | _chrStore `seq` (True) ->
-                                                                                                  (case (_chrStore) of
-                                                                                                   { _exprOchrStore | _exprOchrStore `seq` (True) ->
-                                                                                                   (case (emptyVarMp) of
-                                                                                                    { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
-                                                                                                    (case (Ty_Any) of
-                                                                                                     { _exprOknTy | _exprOknTy `seq` (True) ->
-                                                                                                     (case (strongFIOpts) of
-                                                                                                      { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
-                                                                                                      (case (_exprIkiVarMp) of
-                                                                                                       { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
-                                                                                                       (case (Set.empty) of
-                                                                                                        { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
-                                                                                                        (case (Set.empty) of
-                                                                                                         { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
-                                                                                                         (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
-                                                                                                          { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
-                                                                                                              (case (Map.unionsWith (++)
-                                                                                                                     $ map (\(c,r) -> Map.singleton (_exprItyVarMp `varUpd` c) r)
-                                                                                                                     $ Map.toList
-                                                                                                                     $ _exprIgathRangeMp
-                                                                                                                       `Map.union` cnstrMpToRangeMp _exprIgathCnstrMp) of
-                                                                                                               { _rangeMp | _rangeMp `seq` (True) ->
-                                                                                                               (case (_rangeMp) of
-                                                                                                                { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
-                                                                                                                (case (_exprIgathValGam `gamUnion` _lhsIvalGam) of
-                                                                                                                 { _finValGam | _finValGam `seq` (True) ->
-                                                                                                                 (case (_finValGam) of
-                                                                                                                  { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
-                                                                                                                  (case (__tup8) of
-                                                                                                                   { (_,_,_,_,_lUniq_9_simplify) | _lUniq_9_simplify `seq` (True) ->
-                                                                                                                   (case (_exprItyVarMp `varUpd` _exprIgathCnstrMp) of
-                                                                                                                    { _toProveCnstrMp | _toProveCnstrMp `seq` (True) ->
-                                                                                                                    (case (_toProveCnstrMp) of
-                                                                                                                     { _toProveHereCnstrMp | _toProveHereCnstrMp `seq` (True) ->
-                                                                                                                     (case (_chrFIIn {fiVarMp = _exprItyVarMp}) of
-                                                                                                                      { _chrProveFIIn | _chrProveFIIn `seq` (True) ->
-                                                                                                                      (case (ehcOptTrace _lhsIopts "AGItf.simplify" $
-                                                                                                                             simplify [SimplifyHow_Canonicalize] (_chrProveFIIn {fiUniq = _lUniq_9_simplify}) _chrStore _clDfGam (heurScopedEHC _chrProveFIIn) (\x -> (x,[])) Map.empty _toProveHereCnstrMp emptySimplifyResult) of
-                                                                                                                       { __tup1 | __tup1 `seq` (True) ->
-                                                                                                                       (case (__tup1) of
-                                                                                                                        { (_,_,_,_chrSolveSimpTyVarMp,_,_,_,_,_,_) | _chrSolveSimpTyVarMp `seq` (True) ->
-                                                                                                                        (case (_chrSolveSimpTyVarMp `varUpd`
-                                                                                                                               _exprItyVarMp) of
-                                                                                                                         { _finTyVarMp | _finTyVarMp `seq` (True) ->
-                                                                                                                         (case (_finTyVarMp) of
-                                                                                                                          { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
-                                                                                                                          (case (__tup8) of
-                                                                                                                           { (_,_,_,_lUniq_98_fitsIn_ty,_) | _lUniq_98_fitsIn_ty `seq` (True) ->
-                                                                                                                           (case (__tup8) of
-                                                                                                                            { (_,_,_lUniq_98_IO_tvar,_,_) | _lUniq_98_IO_tvar `seq` (True) ->
-                                                                                                                            (case (_lhsImoduleNm) of
-                                                                                                                             { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
-                                                                                                                             (case (__tup1) of
-                                                                                                                              { (_,_,_,_,_,_,_,_,_chrSolveMainScopeBindMp,_) | _chrSolveMainScopeBindMp `seq` (True) ->
-                                                                                                                              (case (mkScopeBindings True _predScope _chrSolveMainScopeBindMp) of
-                                                                                                                               { __tup3 | __tup3 `seq` (True) ->
-                                                                                                                               (case (__tup3) of
-                                                                                                                                { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
-                                                                                                                                (case (_chrScopeBindMp) of
-                                                                                                                                 { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
-                                                                                                                                 (case (__tup1) of
-                                                                                                                                  { (_,_,_,_,_,_,_,_chrSolveMainEvidBindMp,_,_) | _chrSolveMainEvidBindMp `seq` (True) ->
-                                                                                                                                  (case (_chrSolveMainEvidBindMp) of
-                                                                                                                                   { _chrEvidBindMp | _chrEvidBindMp `seq` (True) ->
-                                                                                                                                   (case (_chrEvidBindMp) of
-                                                                                                                                    { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
-                                                                                                                                    (case (emptyCSubst) of
-                                                                                                                                     { _cSubst | _cSubst `seq` (True) ->
-                                                                                                                                     (case (_cSubst) of
-                                                                                                                                      { _exprOcSubst | _exprOcSubst `seq` (True) ->
-                                                                                                                                      (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 ->
-                                                                                                                                            (case (defaultFIEnv
-                                                                                                                                                       { feEHCOpts = _lhsIopts
-                                                                                                                                                       , fePredScope = _predScope
-                                                                                                                                                       , feTyGam = _exprIgathTyGam
-                                                                                                                                                       , fePolGam = _exprIgathPolGam
-                                                                                                                                                       , feRange = emptyRange
-                                                                                                                                                       }) of
-                                                                                                                                             { _fe | _fe `seq` (True) ->
-                                                                                                                                             (case (if _lhsIisMainMod
-                                                                                                                                                    then let (t,e) = valGamLookupTy hsnMain _exprIgathValGam
-                                                                                                                                                         in  (fitsIn strongFIOpts _fe _lUniq_98_fitsIn_ty _exprItyVarMp t (tyTopLevelMain _lhsIopts _lUniq_98_IO_tvar), e)
-                                                                                                                                                    else (emptyFO,[])) of
-                                                                                                                                              { __tup7 | __tup7 `seq` (True) ->
-                                                                                                                                              (case (__tup7) of
-                                                                                                                                               { (_,_nmErrs) | _nmErrs `seq` (True) ->
-                                                                                                                                               (case (__tup7) of
-                                                                                                                                                { (_foMain,_) | _foMain `seq` (True) ->
-                                                                                                                                                (case (__tup1) of
-                                                                                                                                                 { (_,_chrSolveMainRemCnstrMp,_,_,_,_,_,_,_,_) | _chrSolveMainRemCnstrMp `seq` (True) ->
-                                                                                                                                                 (case (_chrSolveMainRemCnstrMp) of
-                                                                                                                                                  { _cannotProveCnstrMp | _cannotProveCnstrMp `seq` (True) ->
-                                                                                                                                                  (case (mkPrvErr _rangeMp emptyRange _cannotProveCnstrMp) of
-                                                                                                                                                   { _predNotPrfErrs | _predNotPrfErrs `seq` (True) ->
-                                                                                                                                                   (case (__tup1) of
-                                                                                                                                                    { (_,_,_,_,_chrSolveMainErrs,_,_,_,_,_) | _chrSolveMainErrs `seq` (True) ->
-                                                                                                                                                    (case (Seq.unions [ Seq.fromList _predNotPrfErrs
-                                                                                                                                                                      , Seq.fromList _chrSolveMainErrs
-                                                                                                                                                                      , Seq.fromList _nmErrs
-                                                                                                                                                                      , foErrSq _foMain
-                                                                                                                                                                      ]) of
-                                                                                                                                                     { _lErrSq | _lErrSq `seq` (True) ->
-                                                                                                                                                     (case (Seq.unions [_lErrSq, _exprIallErrSq]) of
-                                                                                                                                                      { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
-                                                                                                                                                      (case (__tup3) of
-                                                                                                                                                       { (_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
-                                                                                                                                                                           []
-                                                                                                                                                                           [ 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
+              (_lhsIimportUsedModules `seq`
+               (_lhsIisMainMod `seq`
+                (_lhsIkiGam `seq`
+                 (_lhsImoduleImportExportImpl `seq`
+                  (_lhsImoduleNm `seq`
+                   (_lhsIopts `seq`
+                    (_lhsIpolGam `seq`
+                     (_lhsItyGam `seq`
+                      (_lhsItyKiGam `seq`
+                       (_lhsIvalGam `seq`
+                        ((case (_lhsIvalGam) of
+                          { _valGam | _valGam `seq` (True) ->
+                          (case (_valGam) of
+                           { _exprOvalGam | _exprOvalGam `seq` (True) ->
+                           (case (_lhsItyKiGam) of
+                            { _tyKiGam | _tyKiGam `seq` (True) ->
+                            (case (_tyKiGam) of
+                             { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
+                             (case (_lhsItyGam) of
+                              { _tyGam | _tyGam `seq` (True) ->
+                              (case (_tyGam) of
+                               { _exprOtyGam | _exprOtyGam `seq` (True) ->
+                               (case (_lhsIclGam) of
+                                { _clGam | _clGam `seq` (True) ->
+                                (case (emptyToSysfEnv
+                                           { sysfenvTyKiGam    = _tyKiGam
+                                           , sysfenvClGam      = _clGam
+                                           }) of
+                                 { _sysfEnv | _sysfEnv `seq` (True) ->
+                                 (case (_sysfEnv) of
+                                  { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
+                                  (case (initPredScope) of
+                                   { _predScope | _predScope `seq` (True) ->
+                                   (case (_predScope) of
+                                    { _exprOpredScope | _exprOpredScope `seq` (True) ->
+                                    (case (0) of
+                                     { _predSameScopeCounter | _predSameScopeCounter `seq` (True) ->
+                                     (case (_predSameScopeCounter) of
+                                      { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
+                                      (case (_lhsIpolGam) of
+                                       { _polGam | _polGam `seq` (True) ->
+                                       (case (_polGam) of
+                                        { _exprOpolGam | _exprOpolGam `seq` (True) ->
+                                        (case (-1) of
+                                         { _lexLev | _lexLev `seq` (True) ->
+                                         (case (_lexLev) of
+                                          { _exprOlexLev | _exprOlexLev `seq` (True) ->
+                                          (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_98_IO_tvar) -> case nextUnique __cont of { (__cont, lUniq_98_fitsIn_ty) -> case nextUnique __cont of { (__cont, lUniq_9_simplify) -> (__cont,lUniq,lUniq_98_IO_tvar,lUniq_98_fitsIn_ty,lUniq_9_simplify)}}}} )) of
+                                           { __tup8 | __tup8 `seq` (True) ->
+                                           (case (expr_) of
+                                            { ( _exprIrange,expr_1) | True ->
+                                                (case (__tup8) of
+                                                 { (_exprOgUniq,_,_,_,_) | _exprOgUniq `seq` (True) ->
+                                                 (case (_lhsIkiGam) of
+                                                  { _kiGam | _kiGam `seq` (True) ->
+                                                  (case (expr_1 _exprOgUniq) of
+                                                   { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
+                                                       (case (_kiGam) of
+                                                        { _exprOkiGam | _exprOkiGam `seq` (True) ->
+                                                        (case (True) of
+                                                         { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
+                                                         (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
+                                                          { ( _exprIpredSameScopeCounter,expr_3) | True ->
+                                                              (case (_lhsIopts) of
+                                                               { _exprOopts | _exprOopts `seq` (True) ->
+                                                               (case (emptyVarMp) of
+                                                                { _kiVarMp | _kiVarMp `seq` (True) ->
+                                                                (case (_kiVarMp) of
+                                                                 { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
+                                                                 (case (_clGam) of
+                                                                  { _exprOclGam | _exprOclGam `seq` (True) ->
+                                                                  (case (Set.empty) of
+                                                                   { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
+                                                                   (case (emptyVarMp) of
+                                                                    { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
+                                                                    (case (expr_3 _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
+                                                                     { ( _exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
+                                                                         (case (emptyGam) of
+                                                                          { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
+                                                                          (case (_exprIkiVarMp) of
+                                                                           { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
+                                                                           (case (Set.empty) of
+                                                                            { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
+                                                                            (case (emptyGam) of
+                                                                             { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
+                                                                             (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
+                                                                              { ( _exprIgathDataGam,expr_5) | True ->
+                                                                                  (case (_exprIgathDataGam `gamUnion` _lhsIdataGam) of
+                                                                                   { _exprOdataGam | _exprOdataGam `seq` (True) ->
+                                                                                   (case (expr_5 _exprOdataGam) of
+                                                                                    { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
+                                                                                        (case (_exprIgathClDfGam `gamUnion` _lhsIclDfGam) of
+                                                                                         { _clDfGam | _clDfGam `seq` (True) ->
+                                                                                         (case (_clDfGam) of
+                                                                                          { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
+                                                                                          (case (__tup8) of
+                                                                                           { (_,_lUniq,_,_,_) | _lUniq `seq` (True) ->
+                                                                                           (case (_exprIchrFIIn {fiUniq = _lUniq}) of
+                                                                                            { _chrFIIn | _chrFIIn `seq` (True) ->
+                                                                                            (case (partition (\(_,_,_,sc) -> sc == initPredScope) $ Seq.toList _exprIchrInstDeclSq) of
+                                                                                             { __tup4 | __tup4 `seq` (True) ->
+                                                                                             (case (__tup4) of
+                                                                                              { (_instsOuter,_) | _instsOuter `seq` (True) ->
+                                                                                              (case (_lhsIchrStore) of
+                                                                                               { _initChrStore | _initChrStore `seq` (True) ->
+                                                                                               (case (mkScopedCHR2 _chrFIIn (Seq.toList _exprIchrClassDeclSq) _instsOuter _initChrStore) of
+                                                                                                { __tup5 | __tup5 `seq` (True) ->
+                                                                                                (case (__tup5) of
+                                                                                                 { (_chrStoreOuterScope,_) | _chrStoreOuterScope `seq` (True) ->
+                                                                                                 (case (__tup4) of
+                                                                                                  { (_,_instsInner) | _instsInner `seq` (True) ->
+                                                                                                  (case (mkScopedCHR2 _chrFIIn [] _instsInner _chrStoreOuterScope) of
+                                                                                                   { __tup6 | __tup6 `seq` (True) ->
+                                                                                                   (case (__tup6) of
+                                                                                                    { (_chrStore,_) | _chrStore `seq` (True) ->
+                                                                                                    (case (_chrStore) of
+                                                                                                     { _exprOchrStore | _exprOchrStore `seq` (True) ->
+                                                                                                     (case (emptyVarMp) of
+                                                                                                      { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
+                                                                                                      (case (Ty_Any) of
+                                                                                                       { _exprOknTy | _exprOknTy `seq` (True) ->
+                                                                                                       (case (strongFIOpts) of
+                                                                                                        { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
+                                                                                                        (case (_exprIkiVarMp) of
+                                                                                                         { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
+                                                                                                         (case (Set.empty) of
+                                                                                                          { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
+                                                                                                          (case (Set.empty) of
+                                                                                                           { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
+                                                                                                           (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
+                                                                                                            { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
+                                                                                                                (case (Map.unionsWith (++)
+                                                                                                                       $ map (\(c,r) -> Map.singleton (_exprItyVarMp `varUpd` c) r)
+                                                                                                                       $ Map.toList
+                                                                                                                       $ _exprIgathRangeMp
+                                                                                                                         `Map.union` cnstrMpToRangeMp _exprIgathCnstrMp) of
+                                                                                                                 { _rangeMp | _rangeMp `seq` (True) ->
+                                                                                                                 (case (_rangeMp) of
+                                                                                                                  { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
+                                                                                                                  (case (_exprIgathValGam `gamUnion` _lhsIvalGam) of
+                                                                                                                   { _finValGam | _finValGam `seq` (True) ->
+                                                                                                                   (case (_finValGam) of
+                                                                                                                    { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
+                                                                                                                    (case (__tup8) of
+                                                                                                                     { (_,_,_,_,_lUniq_9_simplify) | _lUniq_9_simplify `seq` (True) ->
+                                                                                                                     (case (_exprItyVarMp `varUpd` _exprIgathCnstrMp) of
+                                                                                                                      { _toProveCnstrMp | _toProveCnstrMp `seq` (True) ->
+                                                                                                                      (case (_toProveCnstrMp) of
+                                                                                                                       { _toProveHereCnstrMp | _toProveHereCnstrMp `seq` (True) ->
+                                                                                                                       (case (_chrFIIn {fiVarMp = _exprItyVarMp}) of
+                                                                                                                        { _chrProveFIIn | _chrProveFIIn `seq` (True) ->
+                                                                                                                        (case (ehcOptTrace _lhsIopts "AGItf.simplify" $
+                                                                                                                               simplify [SimplifyHow_Canonicalize] (_chrProveFIIn {fiUniq = _lUniq_9_simplify}) _chrStore _clDfGam (heurScopedEHC _chrProveFIIn) (\x -> (x,[])) Map.empty _toProveHereCnstrMp emptySimplifyResult) of
+                                                                                                                         { __tup1 | __tup1 `seq` (True) ->
+                                                                                                                         (case (__tup1) of
+                                                                                                                          { (_,_,_,_chrSolveSimpTyVarMp,_,_,_,_,_,_) | _chrSolveSimpTyVarMp `seq` (True) ->
+                                                                                                                          (case (_chrSolveSimpTyVarMp `varUpd`
+                                                                                                                                 _exprItyVarMp) of
+                                                                                                                           { _finTyVarMp | _finTyVarMp `seq` (True) ->
+                                                                                                                           (case (_finTyVarMp) of
+                                                                                                                            { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
+                                                                                                                            (case (__tup8) of
+                                                                                                                             { (_,_,_,_lUniq_98_fitsIn_ty,_) | _lUniq_98_fitsIn_ty `seq` (True) ->
+                                                                                                                             (case (__tup8) of
+                                                                                                                              { (_,_,_lUniq_98_IO_tvar,_,_) | _lUniq_98_IO_tvar `seq` (True) ->
+                                                                                                                              (case (_lhsImoduleNm) of
+                                                                                                                               { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
+                                                                                                                               (case (__tup1) of
+                                                                                                                                { (_,_,_,_,_,_,_,_,_chrSolveMainScopeBindMp,_) | _chrSolveMainScopeBindMp `seq` (True) ->
+                                                                                                                                (case (mkScopeBindings True _predScope _chrSolveMainScopeBindMp) of
+                                                                                                                                 { __tup3 | __tup3 `seq` (True) ->
+                                                                                                                                 (case (__tup3) of
+                                                                                                                                  { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
+                                                                                                                                  (case (_chrScopeBindMp) of
+                                                                                                                                   { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
+                                                                                                                                   (case (__tup1) of
+                                                                                                                                    { (_,_,_,_,_,_,_,_chrSolveMainEvidBindMp,_,_) | _chrSolveMainEvidBindMp `seq` (True) ->
+                                                                                                                                    (case (_chrSolveMainEvidBindMp) of
+                                                                                                                                     { _chrEvidBindMp | _chrEvidBindMp `seq` (True) ->
+                                                                                                                                     (case (_chrEvidBindMp) of
+                                                                                                                                      { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
+                                                                                                                                      (case (emptyCSubst) of
+                                                                                                                                       { _cSubst | _cSubst `seq` (True) ->
+                                                                                                                                       (case (_cSubst) of
+                                                                                                                                        { _exprOcSubst | _exprOcSubst `seq` (True) ->
+                                                                                                                                        (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 ->
+                                                                                                                                              (case (defaultFIEnv
+                                                                                                                                                         { feEHCOpts = _lhsIopts
+                                                                                                                                                         , fePredScope = _predScope
+                                                                                                                                                         , feTyGam = _exprIgathTyGam
+                                                                                                                                                         , fePolGam = _exprIgathPolGam
+                                                                                                                                                         , feRange = emptyRange
+                                                                                                                                                         }) of
+                                                                                                                                               { _fe | _fe `seq` (True) ->
+                                                                                                                                               (case (if _lhsIisMainMod
+                                                                                                                                                      then let (t,e) = valGamLookupTy hsnMain _exprIgathValGam
+                                                                                                                                                           in  (fitsIn strongFIOpts _fe _lUniq_98_fitsIn_ty _exprItyVarMp t (tyTopLevelMain _lhsIopts _lUniq_98_IO_tvar), e)
+                                                                                                                                                      else (emptyFO,[])) of
+                                                                                                                                                { __tup7 | __tup7 `seq` (True) ->
+                                                                                                                                                (case (__tup7) of
+                                                                                                                                                 { (_,_nmErrs) | _nmErrs `seq` (True) ->
+                                                                                                                                                 (case (__tup7) of
+                                                                                                                                                  { (_foMain,_) | _foMain `seq` (True) ->
+                                                                                                                                                  (case (__tup1) of
+                                                                                                                                                   { (_,_chrSolveMainRemCnstrMp,_,_,_,_,_,_,_,_) | _chrSolveMainRemCnstrMp `seq` (True) ->
+                                                                                                                                                   (case (_chrSolveMainRemCnstrMp) of
+                                                                                                                                                    { _cannotProveCnstrMp | _cannotProveCnstrMp `seq` (True) ->
+                                                                                                                                                    (case (mkPrvErr _rangeMp emptyRange _cannotProveCnstrMp) of
+                                                                                                                                                     { _predNotPrfErrs | _predNotPrfErrs `seq` (True) ->
+                                                                                                                                                     (case (__tup1) of
+                                                                                                                                                      { (_,_,_,_,_chrSolveMainErrs,_,_,_,_,_) | _chrSolveMainErrs `seq` (True) ->
+                                                                                                                                                      (case (Seq.unions [ Seq.fromList _predNotPrfErrs
+                                                                                                                                                                        , Seq.fromList _chrSolveMainErrs
+                                                                                                                                                                        , Seq.fromList _nmErrs
+                                                                                                                                                                        , foErrSq _foMain
+                                                                                                                                                                        ]) of
+                                                                                                                                                       { _lErrSq | _lErrSq `seq` (True) ->
+                                                                                                                                                       (case (Seq.unions [_lErrSq, _exprIallErrSq]) of
+                                                                                                                                                        { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
+                                                                                                                                                        (case (__tup3) of
+                                                                                                                                                         { (_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
+                                                                                                                                                                                  )
                                                                                                                                                                                 )
-                                                                                                                                                                              )
-                                                                                                                                                                              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) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))))))))
 
diff --git a/src/UHC/Light/Compiler/EH/MainAG_CaseAlt.hs b/src/UHC/Light/Compiler/EH/MainAG_CaseAlt.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_CaseAlt.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_CaseAlt.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_CaseAlts.hs b/src/UHC/Light/Compiler/EH/MainAG_CaseAlts.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_CaseAlts.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_CaseAlts.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_DataConstr.hs b/src/UHC/Light/Compiler/EH/MainAG_DataConstr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_DataConstr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_DataConstr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_DataConstrs.hs b/src/UHC/Light/Compiler/EH/MainAG_DataConstrs.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_DataConstrs.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_DataConstrs.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_DataField.hs b/src/UHC/Light/Compiler/EH/MainAG_DataField.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_DataField.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_DataField.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_DataFieldExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_DataFieldExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_DataFieldExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_DataFieldExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_DataFieldPatExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_DataFieldPatExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_DataFieldPatExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_DataFieldPatExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_DataFields.hs b/src/UHC/Light/Compiler/EH/MainAG_DataFields.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_DataFields.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_DataFields.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_Decl.hs b/src/UHC/Light/Compiler/EH/MainAG_Decl.hs
# file too large to diff: src/UHC/Light/Compiler/EH/MainAG_Decl.hs
diff --git a/src/UHC/Light/Compiler/EH/MainAG_Decls.hs b/src/UHC/Light/Compiler/EH/MainAG_Decls.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_Decls.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_Decls.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_Expr.hs b/src/UHC/Light/Compiler/EH/MainAG_Expr.hs
# file too large to diff: src/UHC/Light/Compiler/EH/MainAG_Expr.hs
diff --git a/src/UHC/Light/Compiler/EH/MainAG_ExprAnn.hs b/src/UHC/Light/Compiler/EH/MainAG_ExprAnn.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_ExprAnn.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_ExprAnn.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_FuncDep.hs b/src/UHC/Light/Compiler/EH/MainAG_FuncDep.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_FuncDep.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_FuncDep.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_FuncDeps.hs b/src/UHC/Light/Compiler/EH/MainAG_FuncDeps.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_FuncDeps.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_FuncDeps.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_KiExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_KiExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_KiExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_KiExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_KiExprAnn.hs b/src/UHC/Light/Compiler/EH/MainAG_KiExprAnn.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_KiExprAnn.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_KiExprAnn.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_MbTyExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_MbTyExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_MbTyExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_MbTyExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_PatExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_PatExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_PatExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_PatExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_PatExprAnn.hs b/src/UHC/Light/Compiler/EH/MainAG_PatExprAnn.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_PatExprAnn.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_PatExprAnn.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_PrExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_PrExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_PrExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_PrExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_PrExprs.hs b/src/UHC/Light/Compiler/EH/MainAG_PrExprs.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_PrExprs.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_PrExprs.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_RecExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_RecExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_RecExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_RecExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_RecPatExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_RecPatExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_RecPatExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_RecPatExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_RowTyExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_RowTyExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_RowTyExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_RowTyExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_TyExpr.hs b/src/UHC/Light/Compiler/EH/MainAG_TyExpr.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_TyExpr.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_TyExpr.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_TyExprAnn.hs b/src/UHC/Light/Compiler/EH/MainAG_TyExprAnn.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_TyExprAnn.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_TyExprAnn.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_TyExprs.hs b/src/UHC/Light/Compiler/EH/MainAG_TyExprs.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_TyExprs.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_TyExprs.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_TyVar.hs b/src/UHC/Light/Compiler/EH/MainAG_TyVar.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_TyVar.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_TyVar.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_TyVars.hs b/src/UHC/Light/Compiler/EH/MainAG_TyVars.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_TyVars.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_TyVars.hs
@@ -70,6 +70,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
diff --git a/src/UHC/Light/Compiler/EH/MainAG_common.hs b/src/UHC/Light/Compiler/EH/MainAG_common.hs
--- a/src/UHC/Light/Compiler/EH/MainAG_common.hs
+++ b/src/UHC/Light/Compiler/EH/MainAG_common.hs
@@ -69,6 +69,8 @@
 import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
 import UHC.Light.Compiler.Module.ImportExport
 import UHC.Light.Compiler.Ty.UsedNames
+import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.CodeGen.BuiltinPrims
 import UHC.Light.Compiler.Foreign
 import UHC.Light.Compiler.Foreign
@@ -1281,6 +1283,8 @@
 
 
 
+
+
 data ExprCtxt
   = ExprCtxt_Top | ExprCtxt_Lam | ExprCtxt_Internal
   deriving Eq
@@ -1294,8 +1298,10 @@
                DataGam ->
                UID ->
                IdQualGam ->
+               ImportUsedModules ->
                Bool ->
                KiGam ->
+               ModuleImportExportImpl ->
                HsName ->
                EHCOpts ->
                PolGam ->
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Common.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Common.hs
new file mode 100644
--- /dev/null
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Common.hs
@@ -0,0 +1,47 @@
+module UHC.Light.Compiler.EHC.CompilePhase.Common
+( cpGenModuleImportExportImpl )
+where
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import qualified UHC.Util.FastSeq as Seq
+import Control.Monad.State
+import UHC.Light.Compiler.EHC.Common
+import UHC.Light.Compiler.Base.Optimize
+import UHC.Light.Compiler.CodeGen.RefGenerator
+import UHC.Light.Compiler.EHC.CompileRun
+import UHC.Light.Compiler.EHC.CompilePhase.Module
+import UHC.Light.Compiler.EHC.CompileUnit
+import qualified UHC.Light.Compiler.Core.ToGrin as Core2GrSem
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
+
+{-# LINE 43 "src/ehc/EHC/CompilePhase/Common.chs" #-}
+-- | Compute impl info for module codegen
+cpGenModuleImportExportImpl :: HsName -> EHCompilePhase ModuleImportExportImpl
+cpGenModuleImportExportImpl modNm
+  = do { cr <- get
+       ; cpMsg modNm VerboseDebug "cpGenModuleImportExportImpl"
+       ; impNmL <- cpGenImpNmInfo modNm
+       ; let (ecu,crsi,opts,fp) = crBaseInfo modNm cr
+             isWholeProg = ehcOptOptimizationScope opts > OptimizationScope_PerModule
+             expNmFldMp | ecuIsMainMod ecu = Map.empty
+                        | otherwise        = crsiExpNmOffMp modNm crsi
+             modOffMp   | isWholeProg = Map.filterWithKey (\n _ -> n == modNm) $ crsiModOffMp crsi
+                        | otherwise   = crsiModOffMp crsi
+       -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl " ++ show impNmL
+       -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl ecuHSDeclImpNmS " ++ show (ecuHSDeclImpNmS ecu)
+       -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl ecuHIDeclImpNmS " ++ show (ecuHIDeclImpNmS ecu)
+       -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl ecuHIUsedImpNmS " ++ show (ecuHIUsedImpNmS ecu)
+       -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl modOffMp " ++ show modOffMp
+       -- ecuHSDeclImpNmS ecu, ecuHIDeclImpNmS ecu, ecuHIUsedImpNmS ecu
+       ; return $ emptyModuleImportExportImpl
+           { mieimplLamMp 			= Core2GrSem.lamMp_Inh_CodeAGItf $ crsiCoreInh crsi
+           , mieimplUsedModNmL 		= if ecuIsMainMod ecu then [ m | (m,_) <- sortOn snd $ Map.toList $ Map.map fst modOffMp ] else []
+           , mieimplHsName2FldMpMp 	= Map.fromList
+               [ (n,(o,mp))
+               | (n,o) <- refGen 0 1 impNmL
+               , let (_,mp) = panicJust ("cpGenGrinGenInfo: " ++ show n) (Map.lookup n (crsiModOffMp crsi))
+               ]
+           , mieimplHsName2FldMp 	= expNmFldMp
+           }
+       }
+
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/FlowBetweenPhase.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/FlowBetweenPhase.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/FlowBetweenPhase.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/FlowBetweenPhase.hs
@@ -263,7 +263,7 @@
                           )
          }
 
-{-# LINE 373 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-}
+{-# LINE 371 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-}
 cpFlowHILamMp :: HsName -> EHCompilePhase ()
 cpFlowHILamMp modNm
   = do { cr <- get
@@ -275,7 +275,7 @@
        ; cpUpdSI (\crsi -> crsi {crsiCoreInh = coreInh {Core2GrSem.lamMp_Inh_CodeAGItf = HI.hiiLamMp hii `lamMpUnionBindAspMp` Core2GrSem.lamMp_Inh_CodeAGItf coreInh}})
        }
 
-{-# LINE 386 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-}
+{-# LINE 384 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-}
 cpFlowOptim :: HsName -> EHCompilePhase ()
 cpFlowOptim modNm
   =  do  {  cr <- get
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Module.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Module.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Module.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Module.hs
@@ -1,6 +1,8 @@
 module UHC.Light.Compiler.EHC.CompilePhase.Module
-( cpCheckMods'
-, cpCheckMods
+( cpCheckModsModWith
+, cpCheckModsWithOrWithoutBuiltin
+, cpCheckModsWithBuiltin
+, cpCheckModsWithoutBuiltin
 , GetMeta (..), allGetMeta
 , cpGetCoreModnameAndImports
 , cpGetHsModnameAndImports, cpGetHsMod, cpGetMetaInfo
@@ -31,26 +33,39 @@
 
 
 {-# LINE 53 "src/ehc/EHC/CompilePhase/Module.chs" #-}
-cpCheckMods' :: (HsName -> ModMpInfo) -> [Mod] -> EHCompilePhase ()
-cpCheckMods' dfltMod modL@(Mod {modName = modNm} : _)
+-- | Check module dependencies for given 'Mod'
+cpCheckModsModWith :: (HsName -> ModMpInfo) -> [Mod] -> EHCompilePhase ()
+cpCheckModsModWith dfltMod modL@(Mod {modName = modNm} : _)
   = do { cr <- get
-       -- ; cpMsg modNm VerboseDebug $ "cpCheckMods' modL: " ++ show modL
+       ; cpMsg modNm VerboseDebug $ "cpCheckModsModWith modL: " ++ show modL
        ; let crsi   = crStateInfo cr
              (mm,e) = modMpCombine' dfltMod modL (crsiModMp crsi)
        ; cpUpdSI (\crsi -> crsi {crsiModMp = mm})
        ; cpSetLimitErrsWhen 5 "Module analysis" e
        }
 
-{-# LINE 72 "src/ehc/EHC/CompilePhase/Module.chs" #-}
-cpCheckMods :: [HsName] -> EHCompilePhase ()
-cpCheckMods modNmL
+{-# LINE 73 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+cpCheckModsWithOrWithoutBuiltin :: Bool -> [HsName] -> EHCompilePhase ()
+cpCheckModsWithOrWithoutBuiltin bltin modNmL@(modNm:_)
   = do { cr <- get
+       ; cpMsg modNm VerboseDebug $ "cpCheckModsWithOrWithoutBuiltin modNmL: " ++ show modNmL
        ; let modL   = [ addBuiltin $ ecuMod $ crCU n cr | n <- modNmL ]
-       ; cpCheckMods' (\n -> panic $ "cpCheckMods: " ++ show n) modL
+       ; cpCheckModsModWith (\n -> panic $ "cpCheckModsWithOrWithoutBuiltin: " ++ show n) modL
        }
-  where addBuiltin m = m { modImpL = modImpBuiltin : modImpL m }
+  where addBuiltin | bltin     = \m -> m { modImpL = modImpBuiltin : modImpL m }
+                   | otherwise = id
 
-{-# LINE 86 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 85 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+cpCheckModsWithBuiltin :: [HsName] -> EHCompilePhase ()
+cpCheckModsWithBuiltin = cpCheckModsWithOrWithoutBuiltin True
+{-# INLINE cpCheckModsWithBuiltin #-}
+
+{-# LINE 91 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+cpCheckModsWithoutBuiltin :: [HsName] -> EHCompilePhase ()
+cpCheckModsWithoutBuiltin = cpCheckModsWithOrWithoutBuiltin False
+{-# INLINE cpCheckModsWithoutBuiltin #-}
+
+{-# LINE 101 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 data GetMeta
   = GetMeta_Src
   | GetMeta_HI
@@ -64,7 +79,7 @@
     ]
 
 
-{-# LINE 107 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 122 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 cpGetCoreModnameAndImports :: HsName -> EHCompilePhase HsName
 cpGetCoreModnameAndImports modNm
   =  do  {  cr <- get
@@ -72,6 +87,7 @@
                  mbCrSemMod = ecuMbCoreSemMod ecu
                  crSemMod   = panicJust "cpGetCoreModnameAndImports" mbCrSemMod
                  modNm'     = Core2ChkSem.realModuleNm_Syn_CodeAGItf crSemMod
+         ;  cpMsg modNm VerboseDebug $ "cpGetCoreModnameAndImports: " ++ show modNm ++ " -> " ++ show modNm'
          ;  case mbCrSemMod of
               {-
               Just _ | ecuIsTopMod ecu -> cpUpdCUWithKey modNm (\_ ecu -> (modNm', upd $ cuUpdKey modNm' ecu))
@@ -85,7 +101,7 @@
               _      -> return modNm
          }
 
-{-# LINE 129 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 145 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 cpGetHsModnameAndImports :: HsName -> EHCompilePhase HsName
 cpGetHsModnameAndImports modNm
   =  do  {  cr <- get
@@ -158,7 +174,7 @@
                ; cpUpdCU modNm $ store (writable pm)
                }
 
-{-# LINE 225 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 241 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 cpGetDummyCheckSrcMod :: HsName -> EHCompilePhase ()
 cpGetDummyCheckSrcMod modNm
   = do { cr <- get
@@ -169,10 +185,11 @@
        ; cpUpdSI (\crsi -> crsi {crsiModMp = Map.insert modNm emptyModMpInfo mm})
        }
 
-{-# LINE 241 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 257 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 cpUpdateModOffMp :: [HsName] -> EHCompilePhase ()
-cpUpdateModOffMp modNmL
+cpUpdateModOffMp modNmL@(modNm:_)
   = do { cr <- get
+       ; cpMsg modNm VerboseDebug "cpUpdateModOffMp"
        ; let crsi   = crStateInfo cr
              offMp  = crsiModOffMp crsi
              (offMp',_)
@@ -186,7 +203,7 @@
        ; cpUpdSI (\crsi -> crsi {crsiModOffMp = offMp'})
        }
 
-{-# LINE 263 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 280 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 -- | Compute imported module names
 cpGenImpNmInfo :: HsName -> EHCompilePhase [HsName]
 cpGenImpNmInfo modNm
@@ -198,7 +215,7 @@
        ; return impNmL
        }
 
-{-# LINE 280 "src/ehc/EHC/CompilePhase/Module.chs" #-}
+{-# LINE 297 "src/ehc/EHC/CompilePhase/Module.chs" #-}
 cpUpdHiddenExports :: HsName -> [(HsName,IdOccKind)] -> EHCompilePhase ()
 cpUpdHiddenExports modNm exps
   = when (not $ null exps)
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Parsers.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Parsers.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Parsers.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Parsers.hs
@@ -196,6 +196,7 @@
 cpGetPrevHI :: HsName -> EHCompilePhase ()
 cpGetPrevHI modNm
   = do { cr <- get
+       ; cpMsg modNm VerboseDebug "cpGetPrevHI"
        ; let  ecu        = crCU modNm cr
        -- ; when (isJust (ecuMbHITime ecu))
        --        (cpParseHI modNm)
@@ -203,10 +204,11 @@
               (cpDecodeHIInfo modNm)
        }
 
-{-# LINE 333 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 334 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 cpGetPrevCore :: HsName -> EHCompilePhase ()
 cpGetPrevCore modNm
   = do { cr <- get
+       ; cpMsg modNm VerboseDebug "cpGetPrevCore"
        ; let  ecu    = crCU modNm cr
        ; when (isJust (ecuMbCoreTime ecu) && isNothing (ecuMbCore ecu))
               (cpDecodeCore (Just Cfg.suffixDotlessBinaryCore) modNm)
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Semantics.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Semantics.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Semantics.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Semantics.hs
@@ -16,6 +16,7 @@
 import qualified UHC.Light.Compiler.Core as Core
 import qualified UHC.Light.Compiler.Core.ToGrin as Core2GrSem
 import qualified Data.Set as Set
+import UHC.Light.Compiler.EHC.CompilePhase.Common
 import qualified UHC.Light.Compiler.Core.Check as Core2ChkSem
 import qualified UHC.Light.Compiler.HI as HI
 import qualified UHC.Util.Rel as Rel
@@ -30,7 +31,9 @@
 
 
 
-{-# LINE 61 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+
+
+{-# LINE 63 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldCore2Grin :: HsName -> EHCompilePhase ()
 cpFoldCore2Grin modNm
   =  do  {  cr <- get
@@ -49,7 +52,7 @@
                                 ))
          }
 
-{-# LINE 83 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 85 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldCoreMod :: HsName -> EHCompilePhase ()
 cpFoldCoreMod modNm
   =  do  {  cr <- get
@@ -58,35 +61,41 @@
                  core     = panicJust "cpFoldCoreMod" mbCore
                  inh      = Core2ChkSem.Inh_CodeAGItf
                                 { Core2ChkSem.opts_Inh_CodeAGItf = opts
+                                , Core2ChkSem.moduleNm_Inh_CodeAGItf = modNm
                                 , Core2ChkSem.dataGam_Inh_CodeAGItf = EHSem.dataGam_Inh_AGItf $ crsiEHInh crsi
                                 }
                  coreSem  = Core2ChkSem.cmodCheck' inh core
                  hasMain  = Core2ChkSem.hasMain_Syn_CodeAGItf coreSem
+                 mod      = Core2ChkSem.mod_Syn_CodeAGItf coreSem
          -- ;  lift $ putStrLn $ "cpFoldCoreMod " ++ show hasMain
          ;  when (isJust mbCore)
                  (cpUpdCU modNm ( ecuStoreCoreSemMod coreSem
                                 . ecuSetHasMain hasMain
+                                . ecuStoreMod mod
                                 ))
          }
 
-{-# LINE 104 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 109 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldEH :: HsName -> EHCompilePhase ()
 cpFoldEH modNm
   =  do  {  cr <- get
+         ;  mieimpl <- cpGenModuleImportExportImpl modNm
          ;  let  (ecu,crsi,opts,_) = crBaseInfo modNm cr
                  mbEH   = ecuMbEH ecu
                  ehSem  = EHSem.wrap_AGItf (EHSem.sem_AGItf $ panicJust "cpFoldEH" mbEH)
                                            ((crsiEHInh crsi)
-                                                  { EHSem.moduleNm_Inh_AGItf         = ecuModNm ecu
-                                                  , EHSem.gUniq_Inh_AGItf            = crsiHereUID crsi
-                                                  , EHSem.opts_Inh_AGItf             = opts
-                                                  , EHSem.isMainMod_Inh_AGItf        = ecuIsMainMod ecu
+                                                  { EHSem.moduleNm_Inh_AGItf         		= ecuModNm ecu
+                                                  , EHSem.gUniq_Inh_AGItf            		= crsiHereUID crsi
+                                                  , EHSem.opts_Inh_AGItf             		= opts
+                                                  , EHSem.importUsedModules_Inh_AGItf		= ecuImportUsedModules ecu
+                                                  , EHSem.moduleImportExportImpl_Inh_AGItf	= mieimpl
+                                                  , EHSem.isMainMod_Inh_AGItf        		= ecuIsMainMod ecu
                                                   })
          ;  when (isJust mbEH)
                  (cpUpdCU modNm $! ecuStoreEHSem $! ehSem)
          }
 
-{-# LINE 124 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 136 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldHs :: HsName -> EHCompilePhase ()
 cpFoldHs modNm
   =  do  {  cr <- get
@@ -122,7 +131,7 @@
                      })
          }
 
-{-# LINE 171 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 183 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldHsMod :: HsName -> EHCompilePhase ()
 cpFoldHsMod modNm
   =  do  {  cr <- get
@@ -145,7 +154,7 @@
                  )              )
          }
 
-{-# LINE 199 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 211 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldHIInfo :: HsName -> EHCompilePhase ()
 cpFoldHIInfo modNm
   =  do  {  cr <- get
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/TopLevelPhases.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/TopLevelPhases.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/TopLevelPhases.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/TopLevelPhases.hs
@@ -334,7 +334,7 @@
              |    st == HIStart || st == HSStart -- st /= HMOnlyMinimal
              -> do { let mod = emptyMod' modNm
                    ; cpUpdCU modNm (ecuStoreMod mod)
-                   -- ; cpCheckMods [modNm]
+                   -- ; cpCheckModsWithBuiltin [modNm]
                    ; cpUpdCU modNm (ecuStoreState (ECUS_Haskell HMOnlyMinimal))
                    ; return defaultResult
                    }
@@ -342,9 +342,11 @@
              | cst == CRStartText || isBinary
              -> do { cpMsg modNm VerboseNormal $ "Reading Core (" ++ (if isBinary then "binary" else "textual") ++ ")"
                    -- 20140605 AD, code below is temporary, to cater for minimal and working infrastructure first...
+                   -- ; cpGetDummyCheckSrcMod modNm		-- really dummy, should be based on actual import info to be extracted by cpEhcCoreImport
                    ; cpEhcHaskellModulePrepareSrc modNm
                    ; modNm2 <- cpEhcCoreImport isBinary modNm
-                   ; cpGetDummyCheckSrcMod modNm2		-- really dummy, should be based on actual import info to be extracted by cpEhcCoreImport
+                   -- ; cpGetDummyCheckSrcMod modNm2		-- really dummy, should be based on actual import info to be extracted by cpEhcCoreImport
+                   -- ; cpCheckModsWithBuiltin [modNm2]
                    ; cpUpdCU modNm2 (ecuStoreState (ECUS_Core CROnlyImports))
                    ; return modNm2
                    }
@@ -401,12 +403,12 @@
            _ -> return defaultResult
        }
 
-{-# LINE 607 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 609 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 {-|
 EH common phases: analysis + core + grin
 
 -}
-{-# LINE 611 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 613 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpEhcCoreModuleCommonPhases :: Bool -> Bool -> Bool -> EHCOpts -> HsName -> EHCompilePhase ()
 cpEhcCoreModuleCommonPhases isMainMod isTopMod doMkExec opts modNm
   = cpSeq ([
@@ -414,14 +416,14 @@
            ]
           )
 
-{-# LINE 628 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 630 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpEhcEhModuleCommonPhases :: Bool -> Bool -> Bool -> EHCOpts -> HsName -> EHCompilePhase ()
 cpEhcEhModuleCommonPhases isMainMod isTopMod doMkExec opts modNm
   = cpSeq [ cpEhcEhAnalyseModuleDefs modNm
           , cpEhcCoreModuleCommonPhases isMainMod isTopMod doMkExec opts modNm
           ]
 
-{-# LINE 636 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 638 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Common phases when starting with a Haskell module.
 -- HS common phases: HS analysis + EH common
 cpEhcHaskellModuleCommonPhases :: Bool -> Bool -> EHCOpts -> HsName -> EHCompilePhase ()
@@ -435,7 +437,7 @@
                }
           ]
 
-{-# LINE 655 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 657 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | All the work to be done after Haskell src imports have been read/analysed.
 -- Post module import common phases: Parse + Module analysis + HS common
 cpEhcHaskellModuleAfterImport
@@ -454,7 +456,7 @@
           , cpEhcHaskellModulePostlude modNm
           ]
 
-{-# LINE 681 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 683 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | All the work to be done after Core src/binary imports have been read/analysed
 cpEhcCoreModuleAfterImport
   :: Bool -> EHCOpts
@@ -475,13 +477,13 @@
           ]
        }
 
-{-# LINE 707 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 709 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 {-|
 Prepare module for compilation.
 This should be the first step before compilation of a module and is meant to obtain cached info from a previous compilation.
 
 -}
-{-# LINE 724 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 726 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpEhcHaskellModulePrepareSrc :: HsName -> EHCompilePhase ()
 cpEhcHaskellModulePrepareSrc modNm
   = cpGetMetaInfo [GetMeta_Src,GetMeta_Dir] modNm
@@ -513,14 +515,14 @@
           , cpEhcHaskellModulePrepareHS2 modNm
           ]
 
-{-# LINE 763 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 765 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpEhcHaskellModulePostlude :: HsName -> EHCompilePhase ()
 cpEhcHaskellModulePostlude modNm
   = cpSeq [ cpOutputHI "hi" modNm
           , cpCleanupCU modNm
           ]
 
-{-# LINE 773 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 775 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Get import information from Haskell module source text.
 cpEhcHaskellImport
   :: HSState
@@ -569,7 +571,7 @@
                ; cpGetHsModnameAndImports modNm
                }
 
-{-# LINE 838 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 840 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Parse a Haskell module
 cpEhcHaskellParse
   :: Bool -> Bool
@@ -587,40 +589,41 @@
              ]
           )
 
-{-# LINE 865 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 867 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpEhcEhParse :: HsName -> EHCompilePhase ()
 cpEhcEhParse modNm
   = cpSeq [ cpParseEH modNm
           , cpStopAt CompilePoint_Parse
           ]
 
-{-# LINE 873 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 875 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpEhcCoreParse :: HsName -> EHCompilePhase ()
 cpEhcCoreParse modNm
   = cpSeq [ cpParseCoreWithFPath Nothing modNm
           , cpStopAt CompilePoint_Parse
           ]
 
-{-# LINE 881 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 883 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Analyse a Haskell src module for
 --     (1) module information (import, export, etc),
 cpEhcHaskellAnalyseModuleItf :: HsName -> EHCompilePhase ()
 cpEhcHaskellAnalyseModuleItf modNm
   = cpSeq [ cpStepUID, cpFoldHsMod modNm, cpGetHsMod modNm
-          , cpCheckMods [modNm]
+          , cpCheckModsWithBuiltin [modNm]
           , cpCleanupHSMod modNm
           ]
 
-{-# LINE 897 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 899 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Analyse a Core text/binary src module for
 --     (1) module information (import, export, etc),
 cpEhcCoreAnalyseModuleItf :: HsName -> EHCompilePhase ()
 cpEhcCoreAnalyseModuleItf modNm
-  = cpSeq [ cpCheckMods [modNm]
+  = cpSeq [ cpMsg modNm VerboseDebug "cpEhcCoreAnalyseModuleItf"
+          , cpCheckModsWithoutBuiltin [modNm]
           -- , cpCleanupHSMod modNm
           ]
 
-{-# LINE 912 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 915 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Analyse a Haskell src module for
 --     (2) names + dependencies
 cpEhcHaskellAnalyseModuleDefs :: HsName -> EHCompilePhase ()
@@ -631,7 +634,7 @@
           , cpStopAt CompilePoint_AnalHS
           ]
 
-{-# LINE 924 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 927 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Analyse a Haskell src module for
 --     (3) types
 cpEhcEhAnalyseModuleDefs :: HsName -> EHCompilePhase ()
@@ -641,7 +644,7 @@
           , cpStopAt CompilePoint_AnalEH
           ]
 
-{-# LINE 935 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 938 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Part 1 Core processing, on a per module basis, part1 is done always
 cpEhcCorePerModulePart1 :: HsName -> EHCompilePhase ()
 cpEhcCorePerModulePart1 modNm
@@ -658,7 +661,7 @@
            )
        }
 
-{-# LINE 967 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 970 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Get import information from Core module source text.
 cpEhcCoreImport
   :: Bool -> HsName -> EHCompilePhase HsName
@@ -675,7 +678,7 @@
        ; cpGetCoreModnameAndImports modNm
        }
 
-{-# LINE 985 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 988 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Analyse a Core src module
 cpEhcCoreAnalyseModule :: HsName -> EHCompilePhase ()
 cpEhcCoreAnalyseModule modNm
@@ -687,7 +690,7 @@
        ; cpSetLimitErrsWhen 5 "Core analysis" errs
        }
 
-{-# LINE 998 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1001 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Part 2 Core processing, part2 is done either for per individual module compilation or after full program analysis
 cpEhcCorePerModulePart2 :: HsName -> EHCompilePhase ()
 cpEhcCorePerModulePart2 modNm
@@ -698,7 +701,7 @@
                ]
        }
 
-{-# LINE 1042 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1045 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Core+grin processing, on a per module basis, may only be done when full program analysis is done
 cpEhcCoreGrinPerModuleDoneFullProgAnalysis :: HsName -> EHCompilePhase ()
 cpEhcCoreGrinPerModuleDoneFullProgAnalysis modNm
@@ -708,7 +711,7 @@
              ]
           )
 
-{-# LINE 1053 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1056 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Make final executable code, either still partly or fully (i.e. also linking)
 cpEhcExecutablePerModule :: FinalCompileHow -> [HsName] -> HsName -> EHCompilePhase ()
 cpEhcExecutablePerModule how impModNmL modNm
@@ -718,7 +721,7 @@
               [ cpCompileWithGCC how impModNmL modNm ]
        }
 
-{-# LINE 1079 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1082 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessHs :: HsName -> EHCompilePhase ()
 cpProcessHs modNm
   = cpSeq [ cpFoldHs modNm
@@ -727,7 +730,7 @@
           , cpCleanupHS modNm
           ]
 
-{-# LINE 1093 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1096 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessEH :: HsName -> EHCompilePhase ()
 cpProcessEH modNm
   = do { cr <- get
@@ -754,7 +757,7 @@
                ]
        }
 
-{-# LINE 1155 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1158 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- unprocessed core -> folded core
 cpProcessCoreBasic :: HsName -> EHCompilePhase ()
 cpProcessCoreBasic modNm
@@ -762,13 +765,12 @@
        ; let (_,_,opts,_) = crBaseInfo modNm cr
        ; cpSeq [ cpTransformCore OptimizationScope_PerModule modNm
                , cpFlowHILamMp modNm
-               -- , when (ehcOptEmitCore opts) (void $ cpOutputCore CPOutputCoreHow_Binary "" "core" modNm)
                , void $ cpOutputCore CPOutputCoreHow_Binary [] "" Cfg.suffixDotlessBinaryCore modNm
                , cpProcessCoreFold modNm
                ]
         }
 
-{-# LINE 1175 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1174 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- unfolded core -> folded core
 -- (called on merged core, and on core directly generated from cached grin)
 cpProcessCoreFold :: HsName -> EHCompilePhase ()
@@ -778,7 +780,7 @@
       [ cpFoldCore2Grin modNm ]
 	  ++ [ cpFlowCoreSemAfterFold modNm ]
 
-{-# LINE 1190 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1189 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessCoreModFold :: HsName -> EHCompilePhase ()
 cpProcessCoreModFold modNm
   = cpSeq $
@@ -786,7 +788,7 @@
       , cpFlowCoreModSem modNm
       ]
 
-{-# LINE 1199 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1198 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- folded core -> grin, jazy, and the rest
 cpProcessCoreRest :: HsName -> EHCompilePhase ()
 cpProcessCoreRest modNm
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Transformations.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Transformations.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Transformations.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Transformations.hs
@@ -42,7 +42,7 @@
                              , trfstExtra = emptyTrfCoreExtra
                                  { trfcoreECUState		= ecuState ecu
                                  , trfcoreIsLamLifted	= maybe False Core2ChkSem.isLamLifted_Syn_CodeAGItf $ ecuMbCoreSemMod ecu
-                                 , trfcoreExpNmOffMp    = crsiExpNmOffMp modNm crsi
+                                 , trfcoreExpNmOffMp    = crsiExpNmOffMpDbg "cpTransformCore" modNm crsi
 								 , trfcoreInhLamMp      = Core2GrSem.lamMp_Inh_CodeAGItf $ crsiCoreInh crsi
                                  }
                              }
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Translations.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Translations.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Translations.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Translations.hs
@@ -19,6 +19,8 @@
 import UHC.Light.Compiler.EHC.CompilePhase.Module
 import UHC.Light.Compiler.CodeGen.ValAccess as VA
 import UHC.Light.Compiler.CodeGen.RefGenerator
+import UHC.Light.Compiler.EHC.CompilePhase.Common
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 
 
 
@@ -27,7 +29,8 @@
 
 
 
-{-# LINE 94 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
+
+{-# LINE 97 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
 cpTranslateHs2EH :: HsName -> EHCompilePhase ()
 cpTranslateHs2EH modNm
   =  do  {  cr <- get
@@ -46,7 +49,7 @@
                      })
          }
 
-{-# LINE 114 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
+{-# LINE 117 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
 cpTranslateEH2Output :: HsName -> EHCompilePhase ()
 cpTranslateEH2Output modNm
   =  do  {  cr <- get
@@ -65,7 +68,7 @@
                  )
          }
 
-{-# LINE 159 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
+{-# LINE 162 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
 cpTranslateEH2Core :: HsName -> EHCompilePhase ()
 cpTranslateEH2Core modNm
   =  do  {  cr <- get
diff --git a/src/UHC/Light/Compiler/EHC/CompileRun.hs b/src/UHC/Light/Compiler/EHC/CompileRun.hs
--- a/src/UHC/Light/Compiler/EHC/CompileRun.hs
+++ b/src/UHC/Light/Compiler/EHC/CompileRun.hs
@@ -2,14 +2,14 @@
 ( EHCompileRunStateInfo (..)
 , emptyEHCompileRunStateInfo
 , EHCompileRun, EHCompilePhase
-, crBaseInfo, crBaseInfo'
+, crBaseInfo, crMbBaseInfo, crBaseInfo'
 , cpUpdOpts
 , cpMsg, cpMsg'
 , cpStepUID, cpSetUID
 , cpSystem', cpSystem
 , cpSystemRaw
 , cpStopAt
-, crsiExpNmOffMp
+, crsiExpNmOffMpDbg, crsiExpNmOffMp
 , crModNeedsCompile
 , crModCanCompile
 , crSetAndCheckMain
@@ -129,58 +129,70 @@
       }
 
 {-# LINE 179 "src/ehc/EHC/CompileRun.chs" #-}
+crsiExpNmOffMpDbg :: String -> HsName -> EHCompileRunStateInfo -> VA.HsName2FldMp
+crsiExpNmOffMpDbg ctxt modNm crsi = mmiNmOffMp $ panicJust ("crsiExpNmOffMp." ++ ctxt ++ show ks ++ ": " ++ show modNm) $ Map.lookup modNm $ crsiModMp crsi
+  where ks = Map.keys $ crsiModMp crsi
+
 crsiExpNmOffMp :: HsName -> EHCompileRunStateInfo -> VA.HsName2FldMp
 crsiExpNmOffMp modNm crsi = mmiNmOffMp $ panicJust ("crsiExpNmOffMp: " ++ show modNm) $ Map.lookup modNm $ crsiModMp crsi
 
-{-# LINE 184 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 188 "src/ehc/EHC/CompileRun.chs" #-}
 instance Show EHCompileRunStateInfo where
   show _ = "EHCompileRunStateInfo"
 
 instance PP EHCompileRunStateInfo where
   pp i = "CRSI:" >#< ppModMp (crsiModMp i)
 
-{-# LINE 192 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 196 "src/ehc/EHC/CompileRun.chs" #-}
 instance CompileRunStateInfo EHCompileRunStateInfo HsName () where
   crsiImportPosOfCUKey n i = ()
 
-{-# LINE 197 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 201 "src/ehc/EHC/CompileRun.chs" #-}
 type EHCompileRun     = CompileRun   HsName EHCompileUnit EHCompileRunStateInfo Err
 type EHCompilePhase a = CompilePhase HsName EHCompileUnit EHCompileRunStateInfo Err a
 
-{-# LINE 206 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 210 "src/ehc/EHC/CompileRun.chs" #-}
 crBaseInfo' :: EHCompileRun -> (EHCompileRunStateInfo,EHCOpts)
 crBaseInfo' cr
   = (crsi,opts)
   where crsi   = crStateInfo cr
         opts   = crsiOpts  crsi
 
-crBaseInfo :: HsName -> EHCompileRun -> (EHCompileUnit,EHCompileRunStateInfo,EHCOpts,FPath)
-crBaseInfo modNm cr
-  = ( ecu ,crsi
+crMbBaseInfo :: HsName -> EHCompileRun -> (Maybe EHCompileUnit, EHCompileRunStateInfo, EHCOpts, Maybe FPath)
+crMbBaseInfo modNm cr
+  = ( mbEcu ,crsi
     -- if any per module opts are available, use those
-    , maybe opts id $ ecuMbOpts ecu
-    , fp
+    , maybe opts id $ mbEcu >>= ecuMbOpts
+    , fmap ecuFilePath mbEcu
     )
-  where ecu         = crCU modNm cr
+  where mbEcu       = crMbCU modNm cr
         (crsi,opts) = crBaseInfo' cr
-        fp          = ecuFilePath ecu
 
-{-# LINE 233 "src/ehc/EHC/CompileRun.chs" #-}
+crBaseInfo :: HsName -> EHCompileRun -> (EHCompileUnit,EHCompileRunStateInfo,EHCOpts,FPath)
+crBaseInfo modNm cr
+  = ( maybe (panic "crBaseInfo.mbEcu") id mbEcu
+    , crsi
+    , opts
+    , maybe (panic "crBaseInfo.mbFp") id mbFp
+    )
+  where (mbEcu, crsi, opts, mbFp) = crMbBaseInfo modNm cr
+
+{-# LINE 245 "src/ehc/EHC/CompileRun.chs" #-}
 cpMemUsage :: EHCompilePhase ()
 cpMemUsage
   = return ()
 
-{-# LINE 256 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 268 "src/ehc/EHC/CompileRun.chs" #-}
 cpUpdOpts :: (EHCOpts -> EHCOpts) -> EHCompilePhase ()
 cpUpdOpts upd
   = cpUpdSI (\crsi -> crsi {crsiOpts = upd $ crsiOpts crsi})
 
-{-# LINE 266 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 278 "src/ehc/EHC/CompileRun.chs" #-}
 cpRegisterFilesToRm :: [FPath] -> EHCompilePhase ()
 cpRegisterFilesToRm fpL
   = cpUpdSI (\crsi -> crsi {crsiFilesToRm = fpL ++ crsiFilesToRm crsi})
 
-{-# LINE 272 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 284 "src/ehc/EHC/CompileRun.chs" #-}
 cpRmFilesToRm :: EHCompilePhase ()
 cpRmFilesToRm
   = do { cr <- get
@@ -192,18 +204,18 @@
   where rm f = CE.catch (removeFile f)
                         (\(e :: SomeException) -> hPutStrLn stderr (show f ++ ": " ++ show e))
 
-{-# LINE 289 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 301 "src/ehc/EHC/CompileRun.chs" #-}
 cpMsg :: HsName -> Verbosity -> String -> EHCompilePhase ()
 cpMsg modNm v m
   = do { cr <- get
-       ; let (_,_,_,fp) = crBaseInfo modNm cr
-       ; cpMsg' modNm v m Nothing fp
+       ; let (_,_,_,mbFp) = crMbBaseInfo modNm cr
+       ; cpMsg' modNm v m Nothing (maybe emptyFPath id mbFp)
        }
 
 cpMsg' :: HsName -> Verbosity -> String -> Maybe String -> FPath -> EHCompilePhase ()
 cpMsg' modNm v m mbInfo fp
   = do { cr <- get
-       ; let (ecu,crsi,opts,_) = crBaseInfo modNm cr
+       ; let (mbEcu,crsi,opts,_) = crMbBaseInfo modNm cr
        ; ehcioinfo <- lift $ readIORef (crsiEHCIOInfo crsi)
        ; clockTime <- lift getEHCTime
        ; let clockStartTimePrev = ehcioinfoStartTime ehcioinfo
@@ -212,7 +224,7 @@
              clockTimeDiff      = ehcTimeDiff clockTime clockTimePrev
        ; let
              t				= if v >= VerboseALot then "<" ++ strBlankPad 35 (ehcTimeDiffFmt clockStartTimeDiff ++ "/" ++ ehcTimeDiffFmt clockTimeDiff) ++ ">" else ""
-             m'             = show (ecuSeqNr ecu) ++ t ++ " " ++ m
+             m'             = maybe "" (\ecu -> show (ecuSeqNr ecu) ++ t ++ " ") mbEcu ++ m
        ; lift $ putCompileMsg v (ehcOptVerbosity opts) m' mbInfo modNm fp
        ; clockTime <- lift getEHCTime
        ; lift $ writeIORef (crsiEHCIOInfo crsi) (ehcioinfo {ehcioinfoLastTime = clockTime})
@@ -220,7 +232,7 @@
        ; cpMemUsage
        }
 
-{-# LINE 330 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 342 "src/ehc/EHC/CompileRun.chs" #-}
 cpStepUID :: EHCompilePhase ()
 cpStepUID
   = cpUpdSI (\crsi -> let (n,h) = mkNewLevUID (crsiNextUID crsi)
@@ -231,7 +243,7 @@
 cpSetUID u
   = cpUpdSI (\crsi -> crsi {crsiNextUID = u})
 
-{-# LINE 346 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 358 "src/ehc/EHC/CompileRun.chs" #-}
 cpSystem' :: Maybe FilePath -> (FilePath,[String]) -> EHCompilePhase ()
 cpSystem' mbStdOut (cmd,args)
   = do { exitCode <- lift $ system $ showShellCmd $ (cmd,args ++ (maybe [] (\o -> [">", o]) mbStdOut))
@@ -243,7 +255,7 @@
 cpSystem :: (FilePath,[String]) -> EHCompilePhase ()
 cpSystem = cpSystem' Nothing
 
-{-# LINE 376 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 388 "src/ehc/EHC/CompileRun.chs" #-}
 cpSystemRaw :: String -> [String] -> EHCompilePhase ()
 cpSystemRaw cmd args
   = do { exitCode <- lift $ rawSystem cmd args
@@ -252,7 +264,7 @@
            _           -> cpSetErrs [rngLift emptyRange Err_PP $ pp $ show exitCode] -- cpSetFail
        }
 
-{-# LINE 390 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 402 "src/ehc/EHC/CompileRun.chs" #-}
 cpStopAt :: CompilePoint -> EHCompilePhase ()
 cpStopAt atPhase
   = do { cr <- get
@@ -261,7 +273,7 @@
                 cpSetStopAllSeq
        }
 
-{-# LINE 404 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 416 "src/ehc/EHC/CompileRun.chs" #-}
 crPartitionNewerOlderImports :: HsName -> EHCompileRun -> ([EHCompileUnit],[EHCompileUnit])
 crPartitionNewerOlderImports modNm cr
   = partition isNewer $ map (flip crCU cr) $ ecuImpNmL ecu
@@ -273,7 +285,7 @@
             where t' = panicJust "crPartitionNewerOlderImports2" $ ecuMbHIInfoTime ecu'
                   mbt = ecuMbHIInfoTime ecu'
 
-{-# LINE 421 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 433 "src/ehc/EHC/CompileRun.chs" #-}
 crModNeedsCompile :: HsName -> EHCompileRun -> Bool
 crModNeedsCompile modNm cr
   = ecuIsMainMod ecu -- ecuIsTopMod ecu
@@ -285,13 +297,13 @@
         (newer,_) = crPartitionNewerOlderImports modNm cr
         opts = crsiOpts $ crStateInfo cr
 
-{-# LINE 442 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 454 "src/ehc/EHC/CompileRun.chs" #-}
 crModCanCompile :: HsName -> EHCompileRun -> Bool
 crModCanCompile modNm cr
   = isJust (ecuMbSrcTime ecu) && ecuDirIsWritable ecu
   where ecu = crCU modNm cr
 
-{-# LINE 453 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 465 "src/ehc/EHC/CompileRun.chs" #-}
 -- | split module names in those part of a package, and others
 crPartitionIntoPkgAndOthers :: EHCompileRun -> [HsName] -> ([PkgModulePartition],[HsName])
 crPartitionIntoPkgAndOthers cr modNmL
@@ -306,7 +318,7 @@
                   FileLocKind_Pkg p d -> ([((p,d),[m])], [ ])
               where (ecu,_,_,_) = crBaseInfo m cr
 
-{-# LINE 473 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 485 "src/ehc/EHC/CompileRun.chs" #-}
 crSetAndCheckMain :: HsName -> EHCompilePhase ()
 crSetAndCheckMain modNm
   = do { cr <- get
diff --git a/src/UHC/Light/Compiler/EHC/InitialSetup.hs b/src/UHC/Light/Compiler/EHC/InitialSetup.hs
--- a/src/UHC/Light/Compiler/EHC/InitialSetup.hs
+++ b/src/UHC/Light/Compiler/EHC/InitialSetup.hs
@@ -13,6 +13,7 @@
 import qualified UHC.Light.Compiler.Gam.ClGam as Pr (initClGam)
 import qualified UHC.Light.Compiler.HS.ModImpExp as HSSemMod
 import UHC.Light.Compiler.CodeGen.ImportUsedModules
+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
 import UHC.Light.Compiler.Pred.ToCHR (initScopedPredStore)
 
 
@@ -43,23 +44,25 @@
 initialEHSem :: EHCOpts -> FPath -> EHSem.Inh_AGItf
 initialEHSem opts fp
   = EHSem.Inh_AGItf
-      { EHSem.moduleNm_Inh_AGItf        = mkHNm (fpathBase fp)
-      , EHSem.gUniq_Inh_AGItf           = uidStart
-      , EHSem.opts_Inh_AGItf            = opts
-      , EHSem.isMainMod_Inh_AGItf       = False
-      , EHSem.idQualGam_Inh_AGItf       = emptyGam
-      , EHSem.valGam_Inh_AGItf          = emptyGam
-      , EHSem.dataGam_Inh_AGItf         = emptyGam
-      , EHSem.tyGam_Inh_AGItf           = initTyGam
-      , EHSem.tyKiGam_Inh_AGItf         = initTyKiGam
-      , EHSem.polGam_Inh_AGItf          = initPolGam
-      , EHSem.kiGam_Inh_AGItf           = initKiGam
-      , EHSem.clGam_Inh_AGItf           = Pr.initClGam
-      , EHSem.clDfGam_Inh_AGItf         = emptyGam
-      , EHSem.chrStore_Inh_AGItf        = initScopedPredStore
+      { EHSem.moduleNm_Inh_AGItf        		= mkHNm (fpathBase fp)
+      , EHSem.gUniq_Inh_AGItf           		= uidStart
+      , EHSem.opts_Inh_AGItf            		= opts
+      , EHSem.isMainMod_Inh_AGItf       		= False
+      , EHSem.idQualGam_Inh_AGItf       		= emptyGam
+      , EHSem.valGam_Inh_AGItf          		= emptyGam
+      , EHSem.dataGam_Inh_AGItf         		= emptyGam
+      , EHSem.tyGam_Inh_AGItf           		= initTyGam
+      , EHSem.tyKiGam_Inh_AGItf         		= initTyKiGam
+      , EHSem.polGam_Inh_AGItf          		= initPolGam
+      , EHSem.kiGam_Inh_AGItf           		= initKiGam
+      , EHSem.clGam_Inh_AGItf           		= Pr.initClGam
+      , EHSem.clDfGam_Inh_AGItf         		= emptyGam
+      , EHSem.chrStore_Inh_AGItf        		= initScopedPredStore
+      , EHSem.importUsedModules_Inh_AGItf		= emptyImportUsedModules
+      , EHSem.moduleImportExportImpl_Inh_AGItf	= emptyModuleImportExportImpl
       }
 
-{-# LINE 98 "src/ehc/EHC/InitialSetup.chs" #-}
+{-# LINE 102 "src/ehc/EHC/InitialSetup.chs" #-}
 initialCore2GrSem :: EHCOpts -> Core2GrSem.Inh_CodeAGItf
 initialCore2GrSem opts
   = Core2GrSem.Inh_CodeAGItf
@@ -70,7 +73,7 @@
       , Core2GrSem.importUsedModules_Inh_CodeAGItf	= emptyImportUsedModules
       }
 
-{-# LINE 112 "src/ehc/EHC/InitialSetup.chs" #-}
+{-# LINE 116 "src/ehc/EHC/InitialSetup.chs" #-}
 initialHSSemMod :: EHCOpts -> HSSemMod.Inh_AGItf
 initialHSSemMod opts
   = HSSemMod.Inh_AGItf
diff --git a/src/UHC/Light/Compiler/Scanner/Common.hs b/src/UHC/Light/Compiler/Scanner/Common.hs
--- a/src/UHC/Light/Compiler/Scanner/Common.hs
+++ b/src/UHC/Light/Compiler/Scanner/Common.hs
@@ -163,6 +163,7 @@
                                         [ "let", "in", "case", "of", "rec", "foreign", "uniq"
                                         , "Int", "Char", "String", "Tag", "Rec"
                                         , "module", "default"
+                                        , "import", "export"
                                         , "BINDPLAIN", "BINDFUNCTION0", "BINDFUNCTION1", "BINDAPPLY0"
                                         , "VAL"
                                         , "FAIL"
@@ -182,7 +183,7 @@
   where hsScanOpts' = hsScanOpts opts
         ehScanOpts' = ehScanOpts opts
 
-{-# LINE 300 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 301 "src/ehc/Scanner/Common.chs" #-}
 tycoreScanOpts :: ScanOpts
 tycoreScanOpts
   =  defaultScanOpts
@@ -202,7 +203,7 @@
         ,   scoDollarIdent      =   True
         }
 
-{-# LINE 331 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 332 "src/ehc/Scanner/Common.chs" #-}
 grinScanOpts :: ScanOpts
 grinScanOpts
   =  defaultScanOpts
@@ -227,14 +228,14 @@
         ,   scoDollarIdent      =   True
         }
 
-{-# LINE 363 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 364 "src/ehc/Scanner/Common.chs" #-}
 tyScanOpts :: ScanOpts
 tyScanOpts
   =  defaultScanOpts
         {   scoKeywordsTxt      =   Set.fromList [ "uid" ]
         }
 
-{-# LINE 371 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 372 "src/ehc/Scanner/Common.chs" #-}
 hsnScanOpts :: ScanOpts
 hsnScanOpts
   =  defaultScanOpts
@@ -269,7 +270,7 @@
         }
   where hsScanOpts' = hsScanOpts emptyEHCOpts
 
-{-# LINE 420 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 421 "src/ehc/Scanner/Common.chs" #-}
 foreignEntScanOpts :: FFIWay -> ScanOpts
 foreignEntScanOpts way
   =  o {   scoKeywordsTxt      =   Set.fromList [ "dynamic", "wrapper", "h", "static", "new", "js" ]
@@ -285,7 +286,7 @@
               _                 -> ("" , "" )
 
 
-{-# LINE 459 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 460 "src/ehc/Scanner/Common.chs" #-}
 splitTokensOnModuleTrigger :: ScanOpts -> [Token] -> Maybe ([Token],[Token])
 splitTokensOnModuleTrigger scanOpts ts
   = case break ismod ts of
@@ -294,7 +295,7 @@
   where ismod (Reserved s _) | s == scoOffsideModule scanOpts = True
         ismod _                                               = False
 
-{-# LINE 469 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 470 "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
@@ -310,7 +311,7 @@
           triggers  =  [ (Trigger_IndentGT,reserved x noPos) | x <- scoOffsideTrigs   scanOpts ]
                     ++ [ (Trigger_IndentGE,reserved x noPos) | x <- scoOffsideTrigsGE scanOpts ]
 
-{-# LINE 494 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 495 "src/ehc/Scanner/Common.chs" #-}
 floatDenot2NomDenom :: String -> (Integer,Integer)
 floatDenot2NomDenom denot
   = (numerator f,denominator f)
@@ -329,7 +330,7 @@
 intDenot2Integer :: Int -> String -> Integer
 intDenot2Integer b s = getBaseNumber (toInteger b) s
 
-{-# LINE 519 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 520 "src/ehc/Scanner/Common.chs" #-}
 pKeyTk, pKeyTk'         ::  IsParser p Token
                               => String -> p Token
 pKeyTk  key             =   pCostReserved' 9 key
@@ -338,18 +339,18 @@
 pKeyw                   ::  (IsParser p Token,Show k) => k -> p Token
 pKeyw k                 =   pKeyTk (show k)
 
-{-# LINE 529 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 530 "src/ehc/Scanner/Common.chs" #-}
 pKeywHsNname            ::  (IsParser p Token,Show k) => k -> p HsName
 pKeywHsNname k          =   tokMkQName <$> pKeyw k
 
 
-{-# LINE 535 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 536 "src/ehc/Scanner/Common.chs" #-}
 pStringTk, pCharTk,
   pInteger8Tk, pInteger10Tk, pInteger16Tk, pFractionTk,
-{-# LINE 543 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 544 "src/ehc/Scanner/Common.chs" #-}
   pQVaridTk, pQConidTk,
   pQVarsymTk, pQConsymTk,
-{-# LINE 547 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 548 "src/ehc/Scanner/Common.chs" #-}
   pVaridTk , pConidTk ,
   pVaridTk', pConidTk',
   pTextnmTk, pTextlnTk, pIntegerTk, pVarsymTk, pConsymTk
@@ -370,13 +371,13 @@
 pTextnmTk     =   pHsCostValToken' 7 TkTextnm    "<name>"
 pTextlnTk     =   pHsCostValToken' 7 TkTextln    "<line>"
 pIntegerTk    =   pInteger10Tk
-{-# LINE 575 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 576 "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 586 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 587 "src/ehc/Scanner/Common.chs" #-}
 pCONID, pCONID', pCONSYM, pVARID, pVARID', pVARSYM :: IsParser p Token => p Token
 
 pCONID           = pConidTk
@@ -386,7 +387,7 @@
 pVARID'          = pVaridTk'
 pVARSYM          = pVarsymTk
 
-{-# LINE 606 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 607 "src/ehc/Scanner/Common.chs" #-}
 pQCONID, pQCONSYM, pQVARID, pQVARSYM :: IsParser p Token => p Token
 
 pQCONID          = pQConidTk
@@ -394,7 +395,7 @@
 pQVARID          = pQVaridTk
 pQVARSYM         = pQVarsymTk
 
-{-# LINE 619 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 620 "src/ehc/Scanner/Common.chs" #-}
 tokGetVal :: Token -> String
 tokGetVal x
   = tokenVal x
@@ -405,14 +406,14 @@
 pHNm :: (IsParser p Token) => p Token -> p HsName
 pHNm p = (hsnFromString . tokGetVal) <$> p
 
-{-# LINE 641 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 642 "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 653 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 654 "src/ehc/Scanner/Common.chs" #-}
 pMODULE        ,
     pWHERE     ,
     pSEMI      ,
@@ -446,7 +447,7 @@
     pIN
   :: IsParser p Token => p Token
 
-{-# LINE 688 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 689 "src/ehc/Scanner/Common.chs" #-}
 pMODULE          = pKeyTk "module"
 pWHERE           = pKeyTk "where"
 pSEMI            = pKeyTk ";"
@@ -484,29 +485,29 @@
 tokOpStrsEH1   = [ "=", "\\", show hsnArrow, "::", "@" ]
 tokOpStrsHS1   = [ "-", "*", "!", "_", "%", "." ]
 
-{-# LINE 727 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 728 "src/ehc/Scanner/Common.chs" #-}
 pTDOT    	,
     pQDOT
   :: IsParser p Token => p Token
 
-{-# LINE 733 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 734 "src/ehc/Scanner/Common.chs" #-}
 pTDOT            = pKeyTk "..."
 pQDOT            = pKeyTk "...."
 
 tokOpStrsEH2   = [ "...", "...." ]
 tokOpStrsHS2   = [  ]
 
-{-# LINE 741 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 742 "src/ehc/Scanner/Common.chs" #-}
 tokOpStrsEH3   = [ "%" ]
 tokOpStrsHS3   = [  ]
 
-{-# LINE 746 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 747 "src/ehc/Scanner/Common.chs" #-}
 pFORALL       ,
     pEXISTS   ,
     pTILDE
   :: IsParser p Token => p Token
 
-{-# LINE 753 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 754 "src/ehc/Scanner/Common.chs" #-}
 pFORALL          = pKeyTk "forall"
 pEXISTS          = pKeyTk "exists"
 pTILDE           = pKeyTk (show hsnEqTilde)
@@ -516,7 +517,7 @@
 tokOpStrsEH4   = [ ".", show hsnEqTilde ]
 tokOpStrsHS4   = [  ]
 
-{-# LINE 764 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 765 "src/ehc/Scanner/Common.chs" #-}
 pLARROW        ,
     pVBAR      ,
     pDATA      ,
@@ -529,7 +530,7 @@
     pDOTDOT
   :: IsParser p Token => p Token
 
-{-# LINE 778 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 779 "src/ehc/Scanner/Common.chs" #-}
 pLARROW          = pKeyTk "<-"
 pVBAR            = pKeyTk "|"
 pDATA            = pKeyTk "data"
@@ -546,12 +547,12 @@
 tokOpStrsEH5   = [ "|" ]
 tokOpStrsHS5   = [ "<-", "..", ":" ]
 
-{-# LINE 796 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 797 "src/ehc/Scanner/Common.chs" #-}
 pFFORALL      ,
     pEEXISTS
   :: IsParser p Token => p Token
 
-{-# LINE 802 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 803 "src/ehc/Scanner/Common.chs" #-}
 pFFORALL         = pKeyTk "Forall"
 pEEXISTS         = pKeyTk "Exists"
 
@@ -561,7 +562,7 @@
 tokOpStrsEH6   = [ "*" ]
 tokOpStrsHS6   = [  ]
 
-{-# LINE 813 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 814 "src/ehc/Scanner/Common.chs" #-}
 pOROWREC        ,
     pCROWREC    ,
     pOROWROW    ,
@@ -572,7 +573,7 @@
     pHASH
   :: IsParser p Token => p Token
 
-{-# LINE 825 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 826 "src/ehc/Scanner/Common.chs" #-}
 pOROWREC         = pKeyTk (show hsnORec)
 pCROWREC         = pKeyTk (show hsnCRec)
 pOROWROW         = pKeyTk (show hsnORow)
@@ -582,11 +583,11 @@
 pCOLEQUAL        = pKeyTk ":="
 pHASH            = pKeyTk "#"
 
-{-# LINE 836 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 837 "src/ehc/Scanner/Common.chs" #-}
 tokOpStrsEH7   = [ ":=", "#" ]
 tokOpStrsHS7   = [  ]
 
-{-# LINE 841 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 842 "src/ehc/Scanner/Common.chs" #-}
 pLABEL          ,
     pLETSTRICT  ,
     pSAFE       ,
@@ -596,7 +597,7 @@
     pEXPORT
   :: IsParser p Token => p Token
 
-{-# LINE 852 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 853 "src/ehc/Scanner/Common.chs" #-}
 pLABEL           = pKeyTk "label"
 pLETSTRICT       = pKeyTk "letstrict"
 pSAFE            = pKeyTk "safe"
@@ -610,13 +611,13 @@
   ++ map show allFFIWays
 tokKeywStrsHS8 = [ "default", "export", "label", "safe" ]
 
-{-# LINE 869 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 870 "src/ehc/Scanner/Common.chs" #-}
 pFFIWay :: IsParser p Token => p (FFIWay,Token)
 pFFIWay
   =   pAnyKey (\way -> (,) way <$> pKeyTk (show way)) allFFIWays
   <?> "pFFIWay"
 
-{-# LINE 879 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 880 "src/ehc/Scanner/Common.chs" #-}
 pDARROW         ,
     pLTCOLON    ,
     pOIMPL      ,
@@ -626,7 +627,7 @@
     pDO
   :: IsParser p Token => p Token
 
-{-# LINE 890 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 891 "src/ehc/Scanner/Common.chs" #-}
 pDARROW          = pKeyTk (show hsnPrArrow)
 pLTCOLON         = pKeyTk "<:"
 pOIMPL           = pKeyTk (show hsnOImpl)
@@ -640,31 +641,31 @@
 tokOpStrsEH9   = [ show hsnPrArrow, "<:" ]
 tokOpStrsHS9   = [  ]
 
-{-# LINE 905 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 906 "src/ehc/Scanner/Common.chs" #-}
 tokOpStrsEH10  = [] -- [ show hsnDynVar ]
 tokOpStrsHS10  = [  ]
 
-{-# LINE 913 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 914 "src/ehc/Scanner/Common.chs" #-}
 pTYPE
   :: IsParser p Token => p Token
 
-{-# LINE 918 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 919 "src/ehc/Scanner/Common.chs" #-}
 pTYPE            = pKeyTk "type"
 
-{-# LINE 922 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 923 "src/ehc/Scanner/Common.chs" #-}
 tokKeywStrsEH11 = [ "type" ]
 tokKeywStrsHS11 = [  ]
 tokOpStrsEH11   = [  ]
 tokOpStrsHS11   = [  ]
 
-{-# LINE 929 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 930 "src/ehc/Scanner/Common.chs" #-}
 pQUALIFIED      ,
     pQUESTQUEST ,
     pAS         ,
     pHIDING
   :: IsParser p Token => p Token
 
-{-# LINE 937 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 938 "src/ehc/Scanner/Common.chs" #-}
 pQUALIFIED       = pKeyTk "qualified"
 pAS              = pKeyTk "as"
 pHIDING          = pKeyTk "hiding"
@@ -673,7 +674,7 @@
 tokKeywStrsEH12 = [  ]
 tokKeywStrsHS12 = [ "qualified", "as", "hiding" ]
 
-{-# LINE 947 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 948 "src/ehc/Scanner/Common.chs" #-}
 pDERIVING
   :: IsParser p Token => p Token
 
@@ -681,7 +682,7 @@
 
 tokKeywStrsEH91 = [ "deriving" ]
 
-{-# LINE 956 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 957 "src/ehc/Scanner/Common.chs" #-}
 pUNSAFE     ,
     pTHREADSAFE ,
     pDYNAMIC    ,
@@ -706,7 +707,7 @@
 tokKeywStrsEH90  = [  ]
 tokKeywStrsHS90  = [ "unsafe", "threadsafe", "dynamic" ]
 
-{-# LINE 982 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 983 "src/ehc/Scanner/Common.chs" #-}
 pFUSE         ,
     -- pWITH     ,
     pCONVERT
@@ -719,7 +720,7 @@
 tokKeywStrsEH93  = [  ]
 tokKeywStrsHS93  = [ "fuse", "convert" ]
 
-{-# LINE 996 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 997 "src/ehc/Scanner/Common.chs" #-}
 pLANGUAGE_prag  		,
 	pOPTIONSUHC_prag  	,
 	pDERIVABLE_prag		,
diff --git a/src/UHC/Light/Compiler/SourceCodeSig.hs b/src/UHC/Light/Compiler/SourceCodeSig.hs
--- a/src/UHC/Light/Compiler/SourceCodeSig.hs
+++ b/src/UHC/Light/Compiler/SourceCodeSig.hs
@@ -1,3 +1,3 @@
 module UHC.Light.Compiler.SourceCodeSig where
-sig = "de8a05a61a5234b666f55ed72006ed9f"
-timestamp = "20141119 +0100 190726"
+sig = "34d166bebea7d73819cade937b1469a6"
+timestamp = "20141126 +0100 171750"
diff --git a/uhc-light.cabal b/uhc-light.cabal
--- a/uhc-light.cabal
+++ b/uhc-light.cabal
@@ -1,5 +1,5 @@
 Name:				uhc-light
-Version:			1.1.7.1
+Version:			1.1.7.2
 License:			BSD3
 Copyright:			Utrecht University, Department of Information and Computing Sciences, Software Technology group
 Build-Type:			 Simple 
@@ -12,18 +12,18 @@
 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.1/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.1/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.7.2/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.2/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.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.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.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 
+  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 
 
 Executable uhcl
   Hs-Source-Dirs:       src
-  Build-Depends:		uhc-light==1.1.7.1, 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.7.2, 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
