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
@@ -116,25 +116,6 @@
   | ImplsLam    uid             : {ImplsVarId}
                 body            : CExpr
 
-TYPE CMetas 	= (CMetaBind,CMetaVal)
-
-DATA CMetaBind
-  | Plain		-- by default a binding is Plain
-  | Function0   -- special case of Plain, indicating it is a nullary function on top level (that is, the RHS is the computational part for a CAF)
-  | Function1   -- special case of Plain, indicating it is a non-nullary function on top level (that is, the RHS is a lambda)
-  | Apply0	    -- special case of Plain, indicating it is an apply of a Function0 (intended to implement lazy behaviour for a CAF)
-
-DATA CMetaVal
-  | Val
-  | Dict
-  | DictClass     tracks : {[Track]}
-  | DictInstance  tracks : {[Track]}
-  | Track         track  : {Track}
-
-SET AllMetaVal	= CMetaVal CMetas
-SET AllMetaBind = CMetaBind CMetas
-SET AllMeta		= CMetaVal CMetaBind CMetas
-
 -- | on CExpr
 DATA CExpr
   | Ann         ann             : CExprAnn
@@ -162,12 +143,7 @@
 -- | That which is bound, of which may be multiple, of which exist the below varieties
 DATA CBound
   -- default: binding used when (1) no specialized version is available, (2) the one passed higher order
-  | Bind        bindMeta        : CMetas
-                expr            : CExpr
-
-  -- a (keyed) CMetas
-  | Meta		aspectKeyS		: {ACoreBindAspectKeyS}
-  				cmetas			: CMetas
+  | Bind        expr            : CExpr
 
 
   -- a (keyed) CExpr
@@ -237,7 +213,7 @@
 
 SET AllExpr
   = AllExprBase
-    AllMeta
+    -- AllMeta
 
 SET AllNT
   = AllCodeNT
diff --git a/103/lib/ag/Silly/AbsSyn.ag b/103/lib/ag/Silly/AbsSyn.ag
deleted file mode 100644
--- a/103/lib/ag/Silly/AbsSyn.ag
+++ /dev/null
@@ -1,1 +0,0 @@
-
diff --git a/103/lib/ag/TyCore/AbsSyn.ag b/103/lib/ag/TyCore/AbsSyn.ag
deleted file mode 100644
--- a/103/lib/ag/TyCore/AbsSyn.ag
+++ /dev/null
@@ -1,11 +0,0 @@
-DATA Expr
-  | HoleLet     bindsUid        : {UID}
-                body            : Expr
-  | ImplsApp    func            : Expr
-                uid             : {ImplsVarId}
-  | ImplsLam    uid             : {ImplsVarId}
-                body            : Expr
-
-DATA Pat
-  | BoolExpr    expr            : Expr
-
diff --git a/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.bcrr b/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.bcrr
Binary files a/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.bcrr and b/103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.bcrr differ
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.9.2 base-3.0.0.0
+build-depends: uhcbase-1.1.9.3 base-3.0.0.0
diff --git a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.bcrr differ
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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.bcrr 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.bcrr b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.bcrr
Binary files a/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.bcrr and b/103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.bcrr 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.9.2
+build-depends: uhcbase-1.1.9.3
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.bcrr
deleted file mode 100644
# file too large to diff: 103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.bcrr
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.bcrr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.bcrr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.bcrr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.cr b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.cr
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.cr and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.hi b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.hi
deleted file mode 100644
Binary files a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.hi and /dev/null differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/CTypes.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/CTypes.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/HsBase.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/HsBase.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/HsBaseConfig.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/HsBaseConfig.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/IntLikeInstance.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/IntLikeInstance.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/MachDeps.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/MachDeps.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/TupleInstance.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/TupleInstance.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/Typeable.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/Typeable.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/include/dirUtils.h b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/dirUtils.h
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.2/103/cr/plain/installed-pkg-config b/103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/installed-pkg-config
deleted file mode 100644
--- a/103/lib/pkg/uhcbase-1.1.9.2/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.9.3/103/cr/plain/Control/Monad.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.bcrr
new file mode 100644
# file too large to diff: 103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.bcrr
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.bcrr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.bcrr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.bcrr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.cr b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.cr
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.cr differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.hi b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.hi
new file mode 100644
Binary files /dev/null and b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.hi differ
diff --git a/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/CTypes.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/CTypes.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/HsBase.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/HsBase.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/HsBaseConfig.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/HsBaseConfig.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/IntLikeInstance.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/IntLikeInstance.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/MachDeps.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/MachDeps.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/TupleInstance.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/TupleInstance.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/Typeable.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/Typeable.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/include/dirUtils.h b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/dirUtils.h
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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.9.3/103/cr/plain/installed-pkg-config b/103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/installed-pkg-config
new file mode 100644
--- /dev/null
+++ b/103/lib/pkg/uhcbase-1.1.9.3/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,22 @@
 # Changelog
 
+## 1.1.9.3 - 20160219
+
+- [libs] Updated version lowerbound for hashable and fclabels, via uhc-util
+- [chr] Prep for new CHR solver, via uhc-util
+- [doc] Cleanup: doc moved to separate repo https://github.com/atzedijkstra/uhc-doc
+- [ruler] Cleanup: ruler based impl part and examples moved to separate repo https://github.com/atzedijkstra/ruler-uhc-examples
+- [experiments] Cleanup: unused/obsolete code/experiments moved to separate repo https://github.com/atzedijkstra/uhc-obsolete
+- [tycore] Cleanup: TyCore stuff removed
+- [impredicativity] Cleanup: variant 4_2 (impredicativity 2 pass analysis) removed
+- [annotations] Cleanup: variant 7_2 (annotations, strictness) mostly removed, utilities for html pretty printing left in, bit of AST as well
+- [whole prog analysis] Cleanup: removal of HPT analysis, Silly, Cil, last version still having this code tagged with 'lastversionwith-wholeproggrin'
+- [core] Pretty printing/dump of Core AST (for debugging purposes), accessible via --coreopt=dump-ast
+- [uhc-util] Move of LexScope encoding via RLList to separate module in uhc-util
+- [corerun] Additional API calls
+- [grin] No longer .grin files generated, any whole grin progr stuff disabled (to be removed)
+- [serialize] Serialization instances now mostly generically defined
+
 ## 1.1.9.2 - 20151027
 
 - [corerun] CoreRun specific options via --corerunopt=...
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
@@ -1,7 +1,6 @@
 module UHC.Light.Compiler.AbstractCore
 ( AbstractCore (..)
 , ACoreAppLikeMetaBound
-, acoreMetaLift
 , ACoreBindAspectKey (..), ACoreBindAspectKeyS, ACoreBindAspMp
 , acbaspkeyMetaLev
 , acbaspkeyDefaultTy, acbaspkeyTy, acbaspkeyDefaultCore, acbaspkeyNone, acbaspkeyDefault, acbaspkeyStrict, acbaspkeyDebug
@@ -13,18 +12,16 @@
 , acore1App, acoreApp, acoreAppBound
 , acoreLamBind, acoreLam1Ty, acoreLam1, acoreLamTy, acoreLam
 , acoreTagTupTy, acoreTagTup, acoreTupTy, acoreTup, acoreTag
-, acoreBind1CatLevMetaTyWith, acoreBind1CatLevMetaTy, acoreBind1CatLevTy, acoreBind1CatMetaTy, acoreBind1CatTy, acoreBind1Cat, acoreBind1LevTy, acoreBind1Ty, acoreBind1
-, acoreBind1MetasTy, acoreBind1CatMeta, acoreBind1MetaTy
+, acoreBind1CatTy, acoreBind1Cat, acoreBind1LevTy, acoreBind1Ty, acoreBind1
 , acoreBind1Asp1, acoreBind1NmLevTy1, acoreBind1Nm1
-, acoreBoundVal1CatLevMetaTy, acoreBoundVal1CatLevTy, acoreBoundVal1CatMetaTy, acoreBoundVal1CatTy, acoreBoundVal1Cat
-, acoreBoundVal1Metas, acoreBoundVal1Meta
+, acoreBoundVal1CatTy, acoreBoundVal1Cat, acoreBoundVal1Ty, acoreBoundVal1
 , acoreBound1AspkeyVal, acoreBound1Val
 , acoreTyErrLift
 , acoreLetMerge, acoreLet, acoreLetRec
 , acoreLetN
 , acoreLet1PlainTy, acoreLet1Plain
 , acoreLet1StrictTy, acoreLet1Strict
-, acoreLet1StrictInMetaTyWith, acoreLet1StrictInMetaTy, acoreLet1StrictInMeta, acoreLet1StrictIn, acoreLet1StrictInTy
+, acoreLet1StrictIn, acoreLet1StrictInTy
 , acoreBindcategDflt
 , acoreChar, acoreInt, acoreInt2
 , acoreBuiltinApp
@@ -69,7 +66,6 @@
 , whatExprIsWHNF
 , whatExprIsLam, whatExprIsTup, whatExprIsBind
 , whatExprIsFFI
-, acoreMetaLiftDict
 , acoreNmHolePred, acoreNmHole
 , acoreCoeLamLetTy, acoreCoeLamLet, acoreCoeLetRec
 , acoreCoePoiLApp, acoreCoeImplsApp
@@ -103,14 +99,12 @@
 
 
 {-# LINE 36 "src/ehc/AbstractCore.chs" #-}
-class AbstractCore  expr metaval bind bound boundmeta bindcateg metabind ty pat patrest patfld alt
-    | expr       ->      metaval bind bound boundmeta bindcateg metabind ty pat patrest patfld alt
-    , metaval    -> expr
+class AbstractCore  expr bind bound boundmeta bindcateg ty pat patrest patfld alt
+    | expr       ->      bind bound boundmeta bindcateg ty pat patrest patfld alt
     , bind       -> expr
     , bound      -> expr
     , boundmeta  -> expr
     , bindcateg  -> expr
-    , metabind   -> expr
     , ty         -> expr
     , pat        -> expr
     , patrest    -> expr
@@ -131,10 +125,10 @@
   acoreTagTyTupBound :: CTag -> ty -> [bound] -> expr
 
   -- | a value binding, for a name to value + type + metas + meta level
-  acoreBind1CatLevMetasTy :: bindcateg -> HsName -> MetaLev -> (metabind,metaval) -> ty -> expr -> bind
+  acoreBind1CatLevTy :: bindcateg -> HsName -> MetaLev -> ty -> expr -> bind
 
   -- | a value binding aspect, for a name + value, optionally type + metas + meta level
-  acoreBoundVal1CatLevMetasTy :: bindcateg -> HsName -> MetaLev -> (metabind,metaval) -> ty -> expr -> bound
+  acoreBoundVal1CatLevTy :: bindcateg -> HsName -> MetaLev -> ty -> expr -> bound
 
   -- | a type for value binding aspect, for a name + type, optionally meta level
   acoreBoundValTy1CatLev :: bindcateg -> HsName -> MetaLev -> ty -> bound
@@ -143,7 +137,7 @@
   acoreBoundmeta :: ACoreBindAspectKeyS -> MetaLev -> CLbl -> boundmeta
 
   -- | a expr binding aspect, for a name, meta level and label
-  acoreBound1MetaVal :: boundmeta -> expr -> bound
+  acoreBound1Boundmeta :: boundmeta -> expr -> bound
 
   -- | a binding, for/from a single aspect (for now, later multiple)
   acoreBind1Asp :: HsName -> [bound] -> bind
@@ -249,16 +243,7 @@
   acoreTy2ty :: EHCOpts -> Ty -> ty
 
   ------------------------- defaults -------------------------
-  -- | get default for metaval
-  acoreMetavalDflt :: metaval
-
-  -- | get default for metaval, for dicts
-  acoreMetavalDfltDict :: metaval
-
-  -- | get default for metabind
-  acoreMetabindDflt :: metabind
-
-  -- | get default for metabind
+  -- | get default for boundmeta
   acoreDfltBoundmeta :: boundmeta
   acoreDfltBoundmeta = panic "AbstractCore.acoreDfltBoundmeta not implemented"
 
@@ -361,11 +346,11 @@
   acoreExprIsCoeArg :: expr -> Bool
 
 
-{-# LINE 319 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 306 "src/ehc/AbstractCore.chs" #-}
 type ACoreAppLikeMetaBound = (ACoreBindAspectKeyS,MetaLev,CLbl)
 
-{-# LINE 323 "src/ehc/AbstractCore.chs" #-}
-instance {-# OVERLAPPABLE  #-} AbstractCore e m b bound boundmeta bcat mbind t p pr pf a => AppLike e boundmeta {- () () -} where
+{-# LINE 310 "src/ehc/AbstractCore.chs" #-}
+instance {-# OVERLAPPABLE  #-} AbstractCore e b bound boundmeta bcat t p pr pf a => AppLike e boundmeta {- () () -} where
   app1App       = acore1App
   appTop        = id
   appCon        = acoreVar . mkHNm
@@ -381,22 +366,14 @@
                      (_,a) <- acoreBoundMbVal b
                      return (f,a)
 
-{-# LINE 354 "src/ehc/AbstractCore.chs" #-}
-instance {-# OVERLAPPABLE  #-} AbstractCore e m b bound boundmeta bcat mbind t p pr pf a => RecLike e boundmeta {- () () -} where
-  recRow _ fs   = acoreTagTyTupBound CTagRec (acoreTyErr "AbstractCore.RecLike.recRow") [ acoreBound1MetaVal (acoreBoundmeta acbaspkeyDefault 0 (CLbl_Nm n)) e | (n,e) <- fs ]
+{-# LINE 341 "src/ehc/AbstractCore.chs" #-}
+instance {-# OVERLAPPABLE  #-} AbstractCore e b bound boundmeta bcat t p pr pf a => RecLike e boundmeta {- () () -} where
+  recRow _ fs   = acoreTagTyTupBound CTagRec (acoreTyErr "AbstractCore.RecLike.recRow") [ acoreBound1Boundmeta (acoreBoundmeta acbaspkeyDefault 0 (CLbl_Nm n)) e | (n,e) <- fs ]
 
   recMbRecRow  _= Nothing -- tyMbRecRowWithLkup (const Nothing)
   recUnRowExts e= (e,[])
 
-{-# LINE 366 "src/ehc/AbstractCore.chs" #-}
-acoreMetaLift :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Functor f) => f x -> f (x,m)
-acoreMetaLift = fmap2Tuple acoreMetavalDflt
-
-{-# LINE 371 "src/ehc/AbstractCore.chs" #-}
-acoreMetaLiftDict :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Functor f) => f x -> f (x,m)
-acoreMetaLiftDict = fmap2Tuple acoreMetavalDfltDict
-
-{-# LINE 381 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 354 "src/ehc/AbstractCore.chs" #-}
 -- | A ACoreBindAspectKeyS formed out of multiple ACoreBindAspectKey identifies a particular binding aspect
 data ACoreBindAspectKey
   = ACoreBindAspectKey_Default              -- identifies the default binding, if omitted in a reference this aspect is the one chosen.
@@ -405,7 +382,7 @@
   | ACoreBindAspectKey_Debug                -- internal debugging only
   | ACoreBindAspectKey_Core                 -- core
   | ACoreBindAspectKey_FusionRole           -- fusion role
-  deriving (Eq,Ord)
+  deriving (Eq,Ord,Generic)
 
 instance Show ACoreBindAspectKey where
   show ACoreBindAspectKey_Default       = "dft"
@@ -424,11 +401,11 @@
 acbaspkeyMk :: [ACoreBindAspectKey] -> ACoreBindAspectKeyS
 acbaspkeyMk = Set.fromList
 
-{-# LINE 426 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 399 "src/ehc/AbstractCore.chs" #-}
 acbaspkeyMetaLev :: MetaLev -> ACoreBindAspectKeyS -> MetaLev
 acbaspkeyMetaLev mlev _ = mlev
 
-{-# LINE 444 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 417 "src/ehc/AbstractCore.chs" #-}
 -- | predefined:
 acbaspkeyNone :: ACoreBindAspectKeyS
 acbaspkeyNone = acbaspkeyMk
@@ -464,17 +441,17 @@
 acbaspkeyDebug = acbaspkeyMk
   [ ACoreBindAspectKey_Debug ]
 
-{-# LINE 498 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 471 "src/ehc/AbstractCore.chs" #-}
 -- | predefined:
 acbaspkeyFusionRole :: ACoreBindAspectKeyS
 acbaspkeyFusionRole = acbaspkeyMk
   [ ACoreBindAspectKey_FusionRole ]
 
-{-# LINE 505 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 478 "src/ehc/AbstractCore.chs" #-}
 ppACBaspKeyS :: ACoreBindAspectKeyS -> PP_Doc
 ppACBaspKeyS = ppCurlysCommas . Set.toList
 
-{-# LINE 510 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 483 "src/ehc/AbstractCore.chs" #-}
 -- | uniqify with ACoreBindAspectKeyS, omitting the default
 hsnUniqifyACoreBindAspectKeyS :: ACoreBindAspectKeyS -> HsName -> HsName
 hsnUniqifyACoreBindAspectKeyS as n
@@ -482,10 +459,10 @@
   where mk ACoreBindAspectKey_Strict = hsnUniqify    HsNameUniqifier_Strict
         mk a                         = hsnUniqifyStr HsNameUniqifier_BindAspect (show a)
 
-{-# LINE 519 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 492 "src/ehc/AbstractCore.chs" #-}
 deriving instance Typeable ACoreBindAspectKey
 
-{-# LINE 527 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 500 "src/ehc/AbstractCore.chs" #-}
 -- | reference to binding aspect: name + aspect keys
 data ACoreBindRef
   = ACoreBindRef
@@ -506,211 +483,155 @@
 instance Show ACoreBindRef where
   show = show . mkHNm
 
-{-# LINE 549 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 522 "src/ehc/AbstractCore.chs" #-}
 acbrefAspKey :: ACoreBindRef -> ACoreBindAspectKeyS
 acbrefAspKey = maybe acbaspkeyNone id . acbrefMbAspKey
 {-# INLINE acbrefAspKey #-}
 
-{-# LINE 555 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 528 "src/ehc/AbstractCore.chs" #-}
 -- | narrow down aspects by adding more to ref; assume extra aspects non empty
 acbrefAspAnd :: ACoreBindAspectKeyS -> ACoreBindRef -> ACoreBindRef
 acbrefAspAnd a r = r {acbrefMbAspKey = Just $ a `Set.union` acbrefAspKey r }
 
-{-# LINE 561 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 534 "src/ehc/AbstractCore.chs" #-}
 ppACoreBindRef :: (HsName -> PP_Doc) -> ACoreBindRef -> PP_Doc
 ppACoreBindRef ppN r = ppN (acbrefNm r) >|< (maybe empty (ppCurlysCommas . Set.toList) $ acbrefMbAspKey r)
 
 instance PP ACoreBindRef where
   pp = ppACoreBindRef pp
 
-{-# LINE 569 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 542 "src/ehc/AbstractCore.chs" #-}
 deriving instance Typeable ACoreBindRef
 
-{-# LINE 577 "src/ehc/AbstractCore.chs" #-}
-acore1App :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> e -> e
+{-# LINE 550 "src/ehc/AbstractCore.chs" #-}
+acore1App :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => e -> e -> e
 acore1App f a = acore1AppBound f (acoreBound1Val a)
 {-# INLINE acore1App #-}
 
 -- | Applies the first expression to all given arguments.
-acoreApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)
+acoreApp :: (AbstractCore e b bound boundmeta bcat t p pr pf a)
     => e    -- ^ The lambda to apply.
     -> [e]  -- ^ The arguments (the empty list is allowed).
     -> e
 acoreApp f as = foldl (\f a -> acore1App f a) f as
 
-acoreAppBound :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> [bound] -> e
+acoreAppBound :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => e -> [bound] -> e
 acoreAppBound f as = foldl (\f a -> acore1AppBound f a) f as
 
-{-# LINE 597 "src/ehc/AbstractCore.chs" #-}
-acoreLamBind :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [b] -> e -> e
+{-# LINE 570 "src/ehc/AbstractCore.chs" #-}
+acoreLamBind :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [b] -> e -> e
 acoreLamBind = flip (foldr acoreLam1Bind)
 {-# INLINE acoreLamBind #-}
 
-acoreLam1Ty :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> e
+acoreLam1Ty :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> e -> e
 acoreLam1Ty a t e = acoreLam1Bind (acoreBind1NmTy1 a t) e
 -- acoreLam1Ty a t e = acoreLam1Bind (acoreBind1Nm1 a) e
 -- acoreLam1Ty a t e = acoreLam1Bind (acoreBind1Ty a t) e       -- 20120418, TBD: ignore type for now
 {-# INLINE acoreLam1Ty #-}
 
-acoreLam1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> e -> e
+acoreLam1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> e -> e
 acoreLam1 a e = acoreLam1Ty a (acoreTyErr "acoreLam1") e
 {-# INLINE acoreLam1 #-}
 
-acoreLamTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [(HsName,t)] -> e -> e
+acoreLamTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [(HsName,t)] -> e -> e
 acoreLamTy as e = foldr (\(n,t) e -> acoreLam1Ty n t e) e as
 
-acoreLam :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [HsName] -> e -> e
+acoreLam :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [HsName] -> e -> e
 acoreLam as e = foldr (\(n) e -> acoreLam1 n e) e as
 
-{-# LINE 619 "src/ehc/AbstractCore.chs" #-}
-acoreTagTupTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => CTag -> t -> [e] -> e
+{-# LINE 592 "src/ehc/AbstractCore.chs" #-}
+acoreTagTupTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => CTag -> t -> [e] -> e
 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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => CTag -> [e] -> e
 acoreTagTup tg es = acoreTagTupTy tg (acoreTyErr "acoreTupTy") es
 
-acoreTupTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => t -> [e] -> e
+acoreTupTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => t -> [e] -> e
 acoreTupTy t es = acoreTagTupTy CTagRec t es
 {-# INLINE acoreTupTy #-}
 
-acoreTup :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [e] -> e
+acoreTup :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [e] -> e
 acoreTup es = acoreTagTup CTagRec es
 {-# INLINE acoreTup #-}
 
-acoreTag :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => CTag -> e
+acoreTag :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => CTag -> e
 acoreTag tg = acoreTagTup tg []
 {-# INLINE acoreTag #-}
 
-{-# LINE 652 "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 #-}
-
-acoreBind1CatLevMetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> MetaLev -> m -> t -> e -> b
-acoreBind1CatLevMetaTy = acoreBind1CatLevMetaTyWith id id
-{-# INLINE acoreBind1CatLevMetaTy #-}
-
-acoreBind1CatLevTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> MetaLev -> t -> e -> b
-acoreBind1CatLevTy cat n l t e = acoreBind1CatLevMetaTy cat n l acoreMetavalDflt t e
-{-# INLINE acoreBind1CatLevTy #-}
-
-acoreBind1CatMetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> m -> t -> e -> b
-acoreBind1CatMetaTy cat n m t e = acoreBind1CatLevMetaTy cat n metaLevVal m t e
-{-# INLINE acoreBind1CatMetaTy #-}
-
-acoreBind1CatTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> t -> e -> b
+{-# LINE 625 "src/ehc/AbstractCore.chs" #-}
+acoreBind1CatTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => bcat -> HsName -> t -> e -> b
 acoreBind1CatTy cat n t e = acoreBind1CatLevTy cat n metaLevVal t e
 {-# INLINE acoreBind1CatTy #-}
 
-acoreBind1LevTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> MetaLev -> t -> e -> b
+acoreBind1LevTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> MetaLev -> t -> e -> b
 acoreBind1LevTy n l t e = acoreBind1CatLevTy (acoreBindcategDflt e) n l t e
 {-# INLINE acoreBind1LevTy #-}
 
-acoreBind1Ty :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> b
+acoreBind1Ty :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> e -> b
 acoreBind1Ty n t e = acoreBind1LevTy n metaLevVal t e
 {-# INLINE acoreBind1Ty #-}
 
-acoreBind1Cat :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> e -> b
+acoreBind1Cat :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => bcat -> HsName -> e -> b
 acoreBind1Cat cat n e = acoreBind1CatTy cat n acoreTyNone {- (acoreTyErr "acoreBind1Cat") -} e
 {-# INLINE acoreBind1Cat #-}
 
-acoreBind1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> e -> b
+acoreBind1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> e -> b
 acoreBind1 n e = acoreBind1Cat (acoreBindcategDflt e) n e
 {-# INLINE acoreBind1 #-}
 
-{-# LINE 690 "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 #-}
-
-{-
-acoreBind1Metas :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> (mbind,m) -> e -> b
-acoreBind1Metas n m e = aacoreBind1MetasTy n m acoreTyNone e
-{-# INLINE acoreBind1Metas #-}
--}
-
-acoreBind1CatMeta :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> m -> e -> b
-acoreBind1CatMeta cat n m e = acoreBind1CatLevMetaTy cat n metaLevVal m (acoreTyErr "acoreBind1CatMeta") e
-{-# INLINE acoreBind1CatMeta #-}
-
-acoreBind1MetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> m -> t -> e -> b
-acoreBind1MetaTy n m t e = acoreBind1MetasTy n (acoreMetabindDflt,m) t e
-{-# INLINE acoreBind1MetaTy #-}
-
-{-
-acoreBind1Meta :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> m -> e -> b
-acoreBind1Meta n m e = acoreBind1MetaTy n m acoreTyNone e
-{-# INLINE acoreBind1Meta #-}
--}
-
-
-{-# LINE 717 "src/ehc/AbstractCore.chs" #-}
-acoreBind1Asp1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> bound -> b
+{-# LINE 647 "src/ehc/AbstractCore.chs" #-}
+acoreBind1Asp1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> bound -> b
 acoreBind1Asp1 n ba = acoreBind1Asp n [ba]
 {-# INLINE acoreBind1Asp1 #-}
 
-acoreBind1NmLevTy1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> MetaLev -> t -> b
+acoreBind1NmLevTy1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> MetaLev -> t -> b
 acoreBind1NmLevTy1 n l t = acoreBind1Asp n [acoreBoundValTy1CatLev acoreBindcategPlain n l t]
 -- {-# INLINE acoreBind1NmLevTy1 #-}
 
-acoreBind1NmTy1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> b
+acoreBind1NmTy1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> b
 acoreBind1NmTy1 n t = acoreBind1NmLevTy1 n metaLevTy t
 {-# INLINE acoreBind1NmTy1 #-}
 
-acoreBind1Nm1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> b
+acoreBind1Nm1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> b
 acoreBind1Nm1 n = acoreBind1Asp n []
 {-# INLINE acoreBind1Nm1 #-}
 
-{-# LINE 739 "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 #-}
-
-acoreBoundVal1CatLevTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> MetaLev -> t -> e -> bound
-acoreBoundVal1CatLevTy cat n l t e = acoreBoundVal1CatLevMetaTy cat n l acoreMetavalDflt t e
-{-# INLINE acoreBoundVal1CatLevTy #-}
-
-acoreBoundVal1CatMetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> m -> t -> e -> bound
-acoreBoundVal1CatMetaTy cat n m t e = acoreBoundVal1CatLevMetaTy cat n metaLevVal m t e
-{-# INLINE acoreBoundVal1CatMetaTy #-}
-
-acoreBoundVal1CatTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> t -> e -> bound
+{-# LINE 669 "src/ehc/AbstractCore.chs" #-}
+acoreBoundVal1CatTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => bcat -> HsName -> t -> e -> bound
 acoreBoundVal1CatTy cat n t e = acoreBoundVal1CatLevTy cat n metaLevVal t e
 {-# INLINE acoreBoundVal1CatTy #-}
 
-acoreBoundVal1Cat :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> e -> bound
+acoreBoundVal1Cat :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => bcat -> HsName -> e -> bound
 acoreBoundVal1Cat cat n e = acoreBoundVal1CatTy cat n (acoreTyErr "acoreBoundVal1Cat") e
 {-# INLINE acoreBoundVal1Cat #-}
 
-{-# LINE 761 "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 #-}
-
-acoreBoundVal1Meta :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> m -> e -> bound
-acoreBoundVal1Meta n m e = acoreBoundVal1Metas n (acoreMetabindDflt,m) e
-{-# INLINE acoreBoundVal1Meta #-}
+acoreBoundVal1Ty :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> e -> bound
+acoreBoundVal1Ty n t e = acoreBoundVal1CatTy (acoreBindcategDflt e) n t e
+{-# INLINE acoreBoundVal1Ty #-}
 
+acoreBoundVal1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> e -> bound
+acoreBoundVal1 n e = acoreBoundVal1Ty n (acoreTyErr "acoreBoundVal1") e
+{-# INLINE acoreBoundVal1 #-}
 
-{-# LINE 772 "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
+{-# LINE 687 "src/ehc/AbstractCore.chs" #-}
+acoreBound1AspkeyVal :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => ACoreBindAspectKeyS -> e -> bound
+acoreBound1AspkeyVal a e = acoreBound1Boundmeta (acoreBoundmeta a 0 CLbl_None) e
 {-# INLINE acoreBound1AspkeyVal #-}
 
-acoreBound1Val :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> bound
+acoreBound1Val :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => e -> bound
 acoreBound1Val e = acoreBound1AspkeyVal acbaspkeyDefault e
 {-# INLINE acoreBound1Val #-}
 
-{-# LINE 792 "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)
+{-# LINE 701 "src/ehc/AbstractCore.chs" #-}
+acoreTyErrLift :: (AbstractCore e b bound boundmeta bcat t p pr pf a, Functor f) => String -> f x -> f (x,t)
 acoreTyErrLift msg = fmap (\n -> (n,acoreTyErr msg))
 {-# INLINE acoreTyErrLift #-}
 
-{-# LINE 802 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 711 "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 :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => Bool -> bcat -> [b] -> e -> e
 acoreLetMerge merge c bs e
   = if null bs
     then e
@@ -728,30 +649,30 @@
               Just c -> acoreLetBase c bs e
               _      -> foldr (\b e -> acoreLetBase c [b] e) e bs
 
-acoreLet :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> [b] -> e -> e
+acoreLet :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => bcat -> [b] -> e -> e
 acoreLet c bs e = acoreLetMerge False c bs e
 {-# INLINE acoreLet #-}
 
 -- | Creates a let binding, where the bindings may be mutually recursive.
-acoreLetRec :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)
+acoreLetRec :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a)
     => [b]  -- ^ The bindings.
     -> e    -- ^ The body.
     -> e
 acoreLetRec bs e = acoreLet (acoreBindcategRec) bs e
 {-# INLINE acoreLetRec #-}
 
-{-# LINE 835 "src/ehc/AbstractCore.chs" #-}
-acoreLetN :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [(bcat,[b])] -> e -> e
+{-# LINE 744 "src/ehc/AbstractCore.chs" #-}
+acoreLetN :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => [(bcat,[b])] -> e -> e
 acoreLetN cbs e = foldr (\(c,bs) e -> acoreLet c bs e) e cbs
 
-{-# LINE 840 "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
+{-# LINE 749 "src/ehc/AbstractCore.chs" #-}
+acoreLet1PlainTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> e -> e -> e
 acoreLet1PlainTy nm t e
   = acoreLet cat [acoreBind1CatTy cat nm t e]
   where cat = acoreBindcategPlain
 
 -- | Creates a (non-recursive) let binding.
-acoreLet1Plain :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)
+acoreLet1Plain :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a)
     => HsName   -- ^ The identifier.
     -> e       -- ^ The expression to bind.
     -> e       -- ^ The body.
@@ -759,14 +680,14 @@
 acoreLet1Plain nm e = acoreLet1PlainTy nm (acoreTyErr "acoreLet1Plain") e
 {-# INLINE acoreLet1Plain #-}
 
-{-# LINE 856 "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
+{-# LINE 765 "src/ehc/AbstractCore.chs" #-}
+acoreLet1StrictTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> e -> e -> e
 acoreLet1StrictTy nm t e
   = acoreLet cat [acoreBind1CatTy cat nm t e]
   where cat = acoreBindcategStrict
 
 -- | Creates a let binding, which is strict in the bound expression.
-acoreLet1Strict :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)
+acoreLet1Strict :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a)
     => HsName   -- ^ The identifer.
     -> e        -- ^ The expression to bind. Will be evaluated to WHNF, before the body is evaluated.
     -> e        -- ^ The body.
@@ -774,63 +695,55 @@
 acoreLet1Strict nm e = acoreLet1StrictTy nm (acoreTyErr "acoreLet1Strict") e
 {-# INLINE acoreLet1Strict #-}
 
-{-# LINE 872 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 781 "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
-  = acoreLetBase cat [acoreBind1CatMetaTy cat nm m (mkT t) (mkE e)] (mkC (acoreVar nm))
+acoreLet1StrictInTyWith :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => (t->t) -> (e->e) -> HsName -> t -> e -> (e -> e) -> e
+acoreLet1StrictInTyWith mkT mkE nm t e mkC
+  = acoreLetBase cat [acoreBind1CatTy cat nm (mkT t) (mkE e)] (mkC (acoreVar nm))
   where cat = acoreBindcategStrict
 
-acoreMbLet1StrictInMetaTyWith :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => (t->t) -> (e->e) -> Maybe (HsName,t) -> m -> e -> (e -> e) -> e
-acoreMbLet1StrictInMetaTyWith mkT mkE (Just (nm,t)) m e mkC = acoreLet1StrictInMetaTyWith mkT mkE nm m t e mkC
-acoreMbLet1StrictInMetaTyWith _   _   _             m e mkC = mkC e
-
-acoreLet1StrictInMetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> m -> t -> e -> (e -> e) -> e
-acoreLet1StrictInMetaTy = acoreLet1StrictInMetaTyWith acoreTyUnThunk acoreExprUnThunk
-{-# INLINE acoreLet1StrictInMetaTy #-}
-
-acoreLet1StrictInMeta :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> m -> e -> (e -> e) -> e
-acoreLet1StrictInMeta nm m e mkC = acoreLet1StrictInMetaTy nm m (acoreTyErr "acoreLet1StrictInMeta") e mkC
-{-# INLINE acoreLet1StrictInMeta #-}
+acoreMbLet1StrictInTyWith :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => (t->t) -> (e->e) -> Maybe (HsName,t) -> e -> (e -> e) -> e
+acoreMbLet1StrictInTyWith mkT mkE (Just (nm,t)) e mkC = acoreLet1StrictInTyWith mkT mkE nm t e mkC
+acoreMbLet1StrictInTyWith _   _   _             e mkC = mkC e
 
-acoreLet1StrictInTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> (e -> e) -> e
-acoreLet1StrictInTy nm t e mkC = acoreLet1StrictInMetaTy nm acoreMetavalDflt t e mkC
+acoreLet1StrictInTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> e -> (e -> e) -> e
+acoreLet1StrictInTy = acoreLet1StrictInTyWith acoreTyUnThunk acoreExprUnThunk
 {-# INLINE acoreLet1StrictInTy #-}
 
-acoreLet1StrictIn :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> e -> (e -> e) -> e
-acoreLet1StrictIn nm e mkC = acoreLet1StrictInMeta nm acoreMetavalDflt e mkC
+acoreLet1StrictIn :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> e -> (e -> e) -> e
+acoreLet1StrictIn nm e mkC = acoreLet1StrictInTy nm (acoreTyErr "acoreLet1StrictIn") e mkC
 {-# INLINE acoreLet1StrictIn #-}
 
-{-# LINE 904 "src/ehc/AbstractCore.chs" #-}
-acoreNmHole :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => UID -> e
+{-# LINE 805 "src/ehc/AbstractCore.chs" #-}
+acoreNmHole :: (AbstractCore e b bound boundmeta bcat 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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => PredOccId -> e
 acoreNmHolePred = acoreNmHole . poiId
 
-{-# LINE 916 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 817 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => e -> bcat
 acoreBindcategDflt _ = acoreBindcategPlain
 {-# INLINE acoreBindcategDflt #-}
 
-{-# LINE 927 "src/ehc/AbstractCore.chs" #-}
-acoreChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Char -> e
+{-# LINE 828 "src/ehc/AbstractCore.chs" #-}
+acoreChar :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> Char -> e
 acoreChar opts i = let x = acoreCharTy (acoreTyChar opts) i in x
 
 -- | Creates an `Int` constant.
-acoreInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Int -> e
+acoreInt :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> Int -> e
 acoreInt opts i = let x = acoreIntTy (acoreTyInt opts) i in x
 
-acoreInt2 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Integer -> e
+acoreInt2 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> Integer -> e
 acoreInt2 opts i = let x = acoreIntTy2 (acoreTyInt opts) i in x
 
-{-# LINE 943 "src/ehc/AbstractCore.chs" #-}
-acoreBuiltinApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> (EHBuiltinNames -> HsName) -> [e] -> e
+{-# LINE 844 "src/ehc/AbstractCore.chs" #-}
+acoreBuiltinApp :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> (EHBuiltinNames -> HsName) -> [e] -> e
 acoreBuiltinApp opts bnmOf args = acoreVar (ehcOptBuiltin opts bnmOf) `acoreApp` args
 
-{-# LINE 948 "src/ehc/AbstractCore.chs" #-}
-acoreBuiltinAddInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> Int -> e
+{-# LINE 849 "src/ehc/AbstractCore.chs" #-}
+acoreBuiltinAddInt :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> e -> Int -> e
 acoreBuiltinAddInt opts e i
   = if i == 0
     then e
@@ -838,84 +751,84 @@
            Just (t,i') -> acoreIntTy2 t (toInteger i + i')
            _           -> acoreBuiltinApp opts ehbnPrimAddInt [e,acoreInt opts i]
 
-{-# LINE 958 "src/ehc/AbstractCore.chs" #-}
-acoreBuiltinGtInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> Int -> e
+{-# LINE 859 "src/ehc/AbstractCore.chs" #-}
+acoreBuiltinGtInt :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> e -> Int -> e
 acoreBuiltinGtInt opts e i = acoreBuiltinApp opts ehbnPrimGtInt [e,acoreInt opts i]
 
-{-# LINE 963 "src/ehc/AbstractCore.chs" #-}
-acoreBuiltinEqChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Char -> e -> e
+{-# LINE 864 "src/ehc/AbstractCore.chs" #-}
+acoreBuiltinEqChar :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> Char -> e -> e
 acoreBuiltinEqChar opts c e = acoreBuiltinApp opts ehbnPrimEqChar [e,acoreChar opts c]
 
-{-# LINE 968 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 869 "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)
+acoreBuiltinString :: (AbstractCore e b bound boundmeta bcat t p pr pf a)
     => EHCOpts
     -> String   -- ^ The string.
     -> e
 acoreBuiltinString opts m = let x = acoreBuiltinApp opts ehbnPackedStringToString [acoreStringTy (acoreTyString opts) m] in x
 
-{-# LINE 978 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 879 "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)
+acoreBuiltinError :: (AbstractCore e b bound boundmeta bcat t p pr pf a)
     => EHCOpts
     -> String -- ^ The error message.
     -> e
 acoreBuiltinError opts m = acoreBuiltinApp opts ehbnError [acoreBuiltinString opts m]
 
 -- | Generates an undefined expression, failing when evaluated. ('undefined' in haskell)
-acoreBuiltinUndefined :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e
+acoreBuiltinUndefined :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> e
 acoreBuiltinUndefined opts = acoreBuiltinApp opts ehbnUndefined []
 
-{-# LINE 991 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 892 "src/ehc/AbstractCore.chs" #-}
 -- | Creates a Core 'Integer' constant.
-acoreBuiltinInteger :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)
+acoreBuiltinInteger :: (AbstractCore e b bound boundmeta bcat t p pr pf a)
     => EHCOpts
     -> Integer  -- ^ The integer.
     -> e
 acoreBuiltinInteger opts i = acoreBuiltinApp opts ehbnPackedStringToInteger [acoreStringTy (acoreTyString opts) (show i)]
 
-{-# LINE 1000 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 901 "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 :: (AbstractCore e b bound boundmeta bcat 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 1011 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 912 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => p -> Maybe CTag
 acorePatConMbTag = fmap (\(tg,_,_) -> tg) . acorePatMbCon
 
 -- | possibly get tag of alt
-acoreAltMbTag :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => a -> Maybe CTag
+acoreAltMbTag :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => a -> Maybe CTag
 acoreAltMbTag = (\p ->     (\(tg,_,_) -> tg) <$> acorePatMbCon  p
                        <|> (const ctagInt)   <$> acorePatMbInt  p
                        -- <|> (const ctagChar)  <$> acorePatMbChar p
                 ) . fst . acoreUnAlt
 
-{-# LINE 1028 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 929 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => b -> HsName
 acoreBindNm = fst . acoreUnBind
 {-# INLINE acoreBindNm #-}
 
-{-# LINE 1039 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 940 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => t -> (HsName,e) -> HsName -> pf
 acorePatFldTy t lbloff n = acorePatFldBind lbloff (acoreBind1NmTy1 n t)
 {-# INLINE acorePatFldTy #-}
 
-{-# LINE 1050 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 951 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => bound -> e
 acoreUnBoundVal = maybe (panic "acoreBoundMbVal") (\(_,a) -> a) . acoreBoundMbVal
 {-# INLINE acoreUnBoundVal #-}
 
-{-# LINE 1061 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 962 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> Maybe HsName -> e -> e -> e -> e
 acoreIf opts cn c t f
-  = acoreMbLet1StrictInMetaTyWith id id (fmap (\n -> (n,acoreTyBool opts)) cn) acoreMetavalDflt c
+  = acoreMbLet1StrictInTyWith id id (fmap (\n -> (n,acoreTyBool opts)) cn) c
     $ (\c -> acoreCaseDflt c
                [ acoreAlt (acorePatCon (ctagFalse opts) acorePatRestEmpty []) f
                , acoreAlt (acorePatCon (ctagTrue  opts) acorePatRestEmpty []) t
@@ -923,17 +836,17 @@
                Nothing {-(tcUndefined opts)-}
       )
 
-{-# LINE 1074 "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
+{-# LINE 975 "src/ehc/AbstractCore.chs" #-}
+acoreMatchChar :: (AbstractCore e b bound boundmeta bcat 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 1104 "src/ehc/AbstractCore.chs" #-}
-data Coe' expr metaval bind bindasp ty
+{-# LINE 1005 "src/ehc/AbstractCore.chs" #-}
+data Coe' expr bind bindasp ty
   = Coe_Map             !(expr -> expr)                 -- normal, expression as function
   | Coe_C               !expr                           -- constant
-  | Coe_Compose         !(Coe' expr metaval bind bindasp ty)    -- composition
-                        !(Coe' expr metaval bind bindasp ty)
+  | Coe_Compose         !(Coe' expr bind bindasp ty)    -- composition
+                        !(Coe' expr bind bindasp ty)
   | Coe_App1            !expr                           -- apply
   | Coe_App             [HsName]                        -- apply n args
   | Coe_Lam             !HsName !ty                     -- lambda
@@ -944,10 +857,10 @@
   | Coe_ImplApp         !ImplsVarId                     -- implicits, for apply
   | Coe_ImplLam         !ImplsVarId                     -- implicits, for lambda
 
-instance Show (Coe' expr metaval bind bindasp ty) where
+instance Show (Coe' expr bind bindasp ty) where
   show _ = "COE"
 
-{-# LINE 1141 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1042 "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
@@ -963,75 +876,75 @@
    , Typeable
    )
 
-{-# LINE 1164 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1065 "src/ehc/AbstractCore.chs" #-}
 -- | Non inspectable, most general, coercion
-acoreCoeMap :: (e -> e) -> Coe' e m b ba t
+acoreCoeMap :: (e -> e) -> Coe' e b ba t
 acoreCoeMap = Coe_Map
 {-# INLINE acoreCoeMap #-}
 
 -- | Coe identity
-acoreCoeId :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t
+acoreCoeId :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => Coe' e b ba t
 acoreCoeId = Coe_C acoreCoeArg
 {-# INLINE acoreCoeId #-}
 
-{-# LINE 1176 "src/ehc/AbstractCore.chs" #-}
-acoreCoeLamLetTy :: HsName -> t -> UID -> Coe' e m b ba t
+{-# LINE 1077 "src/ehc/AbstractCore.chs" #-}
+acoreCoeLamLetTy :: HsName -> t -> UID -> Coe' e b ba t
 acoreCoeLamLetTy = Coe_LamLet
 {-# INLINE acoreCoeLamLetTy #-}
 
-acoreCoeLamLet :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> UID -> Coe' e m b ba t
+acoreCoeLamLet :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> UID -> Coe' e b ba t
 acoreCoeLamLet n u = acoreCoeLamLetTy n (acoreTyErr "acoreCoeLamLet") u
 {-# INLINE acoreCoeLamLet #-}
 
 -- | Let still requiring a body
-acoreCoeLetRec :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [b] -> Coe' e m b ba t
+acoreCoeLetRec :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [b] -> Coe' e b ba t
 acoreCoeLetRec [] = acoreCoeId
 acoreCoeLetRec bs = Coe_LetRec bs
 
-{-# LINE 1191 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1092 "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
+acoreCoeApp1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => e -> Coe' e b ba t
+acoreCoeApp1 = Coe_App1
 {-# INLINE acoreCoeApp1 #-}
 
-acoreCoeAppNbyName :: [(HsName)] -> Coe' e m b ba t
+acoreCoeAppNbyName :: [(HsName)] -> Coe' e b ba t
 acoreCoeAppNbyName = Coe_App
 {-# INLINE acoreCoeAppNbyName #-}
 
--- acoreCoeApp2 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [(e)] -> Coe' e m b ba t
+-- acoreCoeApp2 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [(e)] -> Coe' e b ba t
 -- acoreCoeApp2 as = acoreCoeMap (\e -> acoreApp e as)
 
-acoreCoeAppN :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [e] -> Coe' e m b ba t
+acoreCoeAppN :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [e] -> Coe' e b ba t
 acoreCoeAppN as = acoreCoeMap (\e -> acoreApp e as)
 {-# INLINE acoreCoeAppN #-}
 
-{-# LINE 1209 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1110 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> t -> Coe' e b ba t
 acoreCoeLam1Ty = Coe_Lam
 {-# INLINE acoreCoeLam1Ty #-}
 
-acoreCoeLam1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> Coe' e m b ba t
+acoreCoeLam1 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => HsName -> Coe' e b ba t
 acoreCoeLam1 n = acoreCoeLam1Ty n (acoreTyErr "acoreCoeLam1")
 {-# INLINE acoreCoeLam1 #-}
 
-{-# LINE 1220 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1121 "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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => Coe' e b ba t -> Coe' e b ba t -> Coe' e b ba t
 acoreCoeCompose c1 c2
   | acoreCoeIsId c1 = c2
   | otherwise  = Coe_Compose c1 c2
 
 
-{-# LINE 1229 "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]
+{-# LINE 1130 "src/ehc/AbstractCore.chs" #-}
+acoreCoePoiLApp :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => [PredOccId] -> [Coe' e 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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => Impls -> [Coe' e b ba t]
 acoreCoeImplsApp = acoreCoePoiLApp . implsPrIdL
 
-{-# LINE 1237 "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]
+{-# LINE 1138 "src/ehc/AbstractCore.chs" #-}
+acoreCoePoiLLamTy :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => Coe' e b ba t -> [(PredOccId,t)] -> [Coe' e b ba t]
 acoreCoePoiLLamTy onLast poiL
   =  case map mk poiL of
        l@(_:_)            -> h ++ [t `acoreCoeCompose` onLast]
@@ -1040,78 +953,78 @@
          | otherwise      -> [onLast]
   where mk (poi,ty) = acoreCoeLam1Ty (poiHNm poi) ty
 
-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 :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => Coe' e b ba t -> Impls -> [Coe' e b ba t]
 acoreCoeImplsLam onLast is = acoreCoePoiLLamTy onLast (acoreTyErrLift "acoreCoeImplsLam" (implsPrIdL is))
 
-{-# LINE 1255 "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
+{-# LINE 1156 "src/ehc/AbstractCore.chs" #-}
+acoreCoeIsId :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => Coe' e b ba t -> Bool
 acoreCoeIsId (Coe_C e) = acoreExprIsCoeArg e
 acoreCoeIsId _         = False
 
-{-# LINE 1265 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1166 "src/ehc/AbstractCore.chs" #-}
 data CSubstKey
   = CSKey_UID   UID
   | CSKey_Nm    HsName
   | CSKey_Ref   ACoreBindRef
   deriving (Show,Eq,Ord)
 
-{-# LINE 1273 "src/ehc/AbstractCore.chs" #-}
-data CSubstInfo' expr metaval bind bindasp ty
+{-# LINE 1174 "src/ehc/AbstractCore.chs" #-}
+data CSubstInfo' expr bind bindasp ty
   =  CSITy        { csiTy      :: !ty
                   }
   |  CSIExpr      { csiRepl    :: !expr
                   }
-  |  CSIImpls     { csiAppCoeL :: ![Coe' expr metaval bind bindasp ty]
-                  , csiLamCoeL :: ![Coe' expr metaval bind bindasp ty]
+  |  CSIImpls     { csiAppCoeL :: ![Coe' expr bind bindasp ty]
+                  , csiLamCoeL :: ![Coe' expr bind bindasp ty]
                   }
   |  CSIBinds     { csiBindL   :: ![bind]
                   }
 
-instance Show (CSubstInfo' e m b ba t) where
+instance Show (CSubstInfo' e b ba t) where
   show _ = "CSubstInfo'"
 
-{-# LINE 1291 "src/ehc/AbstractCore.chs" #-}
-type CSubst' e m b ba t = Map.Map CSubstKey (CSubstInfo' e m b ba t)
+{-# LINE 1192 "src/ehc/AbstractCore.chs" #-}
+type CSubst' e b ba t = Map.Map CSubstKey (CSubstInfo' e b ba t)
 
-emptyCSubst :: CSubst' e m b ba t
+emptyCSubst :: CSubst' e b ba t
 emptyCSubst = Map.empty
 
-{-# LINE 1302 "src/ehc/AbstractCore.chs" #-}
-acoreCSubstFromNmTyL :: AssocL HsName t -> CSubst' e m b ba t
+{-# LINE 1203 "src/ehc/AbstractCore.chs" #-}
+acoreCSubstFromNmTyL :: AssocL HsName t -> CSubst' e b ba t
 acoreCSubstFromNmTyL l = Map.fromList [ (CSKey_Nm k,CSITy v) | (k,v) <- l ]
 
-{-# LINE 1307 "src/ehc/AbstractCore.chs" #-}
-acoreCSubstFromRefExprL :: AssocL ACoreBindRef e -> CSubst' e m b ba t
+{-# LINE 1208 "src/ehc/AbstractCore.chs" #-}
+acoreCSubstFromRefExprL :: AssocL ACoreBindRef e -> CSubst' e b ba t
 acoreCSubstFromRefExprL l = Map.fromList [ (CSKey_Ref k,CSIExpr v) | (k,v) <- l ]
 
-{-# LINE 1312 "src/ehc/AbstractCore.chs" #-}
-acoreCSubstFromUidExprL :: AssocL UID e -> CSubst' e m b ba t
+{-# LINE 1213 "src/ehc/AbstractCore.chs" #-}
+acoreCSubstFromUidExprL :: AssocL UID e -> CSubst' e b ba t
 acoreCSubstFromUidExprL l = Map.fromList [ (CSKey_UID k,CSIExpr v) | (k,v) <- l ]
 
-{-# LINE 1317 "src/ehc/AbstractCore.chs" #-}
-acoreCSubstFromUidBindLL :: AssocL UID [b] -> CSubst' e m b ba t
+{-# LINE 1218 "src/ehc/AbstractCore.chs" #-}
+acoreCSubstFromUidBindLL :: AssocL UID [b] -> CSubst' e 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 :: AssocL UID ([Coe' e b ba t],[Coe' e b ba t]) -> CSubst' e b ba t
 acoreCSubstFromUidImplsL l = Map.fromList [ (CSKey_UID k,uncurry CSIImpls v) | (k,v) <- l ]
 
-{-# LINE 1329 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1230 "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 :: CSubst' e b ba t -> CSubst' e b ba t -> CSubst' e b ba t
 cSubstAppSubst = Map.union
 
-{-# LINE 1339 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1240 "src/ehc/AbstractCore.chs" #-}
 infixr `cSubstApp`
 
-class CSubstitutable       e m b ba t a
-                   | a  -> e m b ba t
+class CSubstitutable       e b ba t a
+                   | a  -> e b ba t
   where
-  cSubstApp :: CSubst' e m b ba t -> a -> a
+  cSubstApp :: CSubst' e b ba t -> a -> a
 
-instance CSubstitutable e m b ba t (CSubst' e m b ba t) where
+instance CSubstitutable e b ba t (CSubst' e b ba t) where
   cSubstApp cs s = cs `cSubstAppSubst` s
 
-{-# LINE 1355 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1256 "src/ehc/AbstractCore.chs" #-}
 data RAlt' e t b pr
   = RAlt_Alt            { rcaPats :: ![RPat' e t b pr], raaExpr :: !e, raaFailS :: UIDS }
 
@@ -1132,14 +1045,14 @@
 
 type RCEAltL' e t b pr = [RAlt' e t b pr]
 
-{-# LINE 1379 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1280 "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 1387 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1288 "src/ehc/AbstractCore.chs" #-}
 rpatConTag :: RPat' e t b pr -> CTag
 rpatConTag (RPat_Int  _ _ _ )  = ctagInt
 rpatConTag (RPat_Char _ _ _ )  = ctagChar
@@ -1148,7 +1061,7 @@
 rcaTag :: RAlt' e t b pr -> CTag
 rcaTag = rpatConTag . head . rcaPats
 
-{-# LINE 1397 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1298 "src/ehc/AbstractCore.chs" #-}
 raltIsVar :: RAlt' e t b pr -> Bool
 raltIsVar (RAlt_Alt (RPat_Var _ _ _ : _) _ _)  = True
 raltIsVar _                                    = False
@@ -1161,17 +1074,17 @@
         c _                  = False
 raltIsConst _                = False
 
-{-# LINE 1411 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1312 "src/ehc/AbstractCore.chs" #-}
 raltIsConMany :: RAlt' e t b pr -> Bool
 raltIsConMany (RAlt_Alt (RPat_Con _ _ _ (RPatConBind_Many _) : _) _ _) = True
 raltIsConMany _                                                        = False
 
-{-# LINE 1417 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1318 "src/ehc/AbstractCore.chs" #-}
 raltIsIrrefutable :: RAlt' e t b pr -> Bool
 raltIsIrrefutable (RAlt_Alt (RPat_Irrefutable _ _ _ : _) _ _) = True
 raltIsIrrefutable _                                           = False
 
-{-# LINE 1423 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1324 "src/ehc/AbstractCore.chs" #-}
 raltMbBoolExpr :: RAlt' e t b pr -> Maybe (Maybe SrcConst)
 raltMbBoolExpr (RAlt_Alt (RPat_BoolExpr _ _ _ e : _) _ _)  = Just e
 raltMbBoolExpr _                                           = Nothing
@@ -1179,14 +1092,14 @@
 raltIsBoolExpr :: RAlt' e t b pr -> Bool
 raltIsBoolExpr = isJust . raltMbBoolExpr
 
-{-# LINE 1434 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1335 "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 1445 "src/ehc/AbstractCore.chs" #-}
-acoreRPat2Pat :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPat' e t b pr -> p
+{-# LINE 1346 "src/ehc/AbstractCore.chs" #-}
+acoreRPat2Pat :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => RPat' e t b pr -> p
 acoreRPat2Pat p
   = case p of
       RPat_Var      n ty _    -> acorePatVarTy  (rpatNmNm n) ty
@@ -1196,55 +1109,55 @@
       RPat_Char     n ty v    -> acorePatCharTy ty v
       RPat_BoolExpr n _  v _  -> acorePatBoolExpr  v
 
-{-# LINE 1459 "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])
+{-# LINE 1360 "src/ehc/AbstractCore.chs" #-}
+acoreRPatConBind2PatConBind :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => RPatConBind' e t b pr -> (pr,[pf])
 acoreRPatConBind2PatConBind b
   = case b of
       RPatConBind_One   r bs    -> (r,map acoreRPatBind2PatFld bs)
       RPatConBind_Many  bs      -> head (map acoreRPatConBind2PatConBind bs)
 
-acoreRPatBind2PatFld :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPatFld' e t b pr -> pf
+acoreRPatBind2PatFld :: (AbstractCore e b bound boundmeta bcat 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 1476 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1377 "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 1488 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1389 "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 1498 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1399 "src/ehc/AbstractCore.chs" #-}
 -- | Reason to fail a case alternative
 data CaseAltFailReason
   = CaseAltFailReason_Absence                   -- failed because of absence
   | CaseAltFailReason_Continue
       { cafailCaseId        :: UID              -- failed as part of case match attempt, but continues with code identified by id
       }
-  deriving (Show,Eq,Ord)
+  deriving (Show,Eq,Ord,Generic)
 
 instance PP CaseAltFailReason where
   pp (CaseAltFailReason_Continue i) = pp i
   pp (CaseAltFailReason_Absence   ) = pp "absent"
 
-{-# LINE 1512 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1413 "src/ehc/AbstractCore.chs" #-}
 cafailHasId :: CaseAltFailReason -> (Bool,UID)
 cafailHasId (CaseAltFailReason_Absence   ) = (False,uidUnused)
 cafailHasId (CaseAltFailReason_Continue i) = (True ,i)
 
-{-# LINE 1518 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1419 "src/ehc/AbstractCore.chs" #-}
 deriving instance Typeable CaseAltFailReason
 
-{-# LINE 1526 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1427 "src/ehc/AbstractCore.chs" #-}
 data AppFunKind
   = AppFunKind_NoApp                    -- inlined Nothing
   | AppFunKind_Fun  ACoreBindRef
   | AppFunKind_Tag  CTag
   | AppFunKind_FFI
 
-{-# LINE 1538 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1439 "src/ehc/AbstractCore.chs" #-}
 
 -- | What kind of Expr?
 data WhatExpr
@@ -1261,7 +1174,7 @@
   | ExprIsBind 	HsName
   deriving Eq
 
-{-# LINE 1556 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1457 "src/ehc/AbstractCore.chs" #-}
 -- | is an var?
 whatExprMbVar :: WhatExpr -> Maybe HsName
 whatExprMbVar (ExprIsVar a) = Just a
@@ -1292,7 +1205,7 @@
 whatExprAppArity (ExprIsApp a _) = a
 whatExprAppArity _               = 0
 
-{-# LINE 1588 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1489 "src/ehc/AbstractCore.chs" #-}
 whatExprIsWHNF :: WhatExpr -> Bool
 whatExprIsWHNF (ExprIsLam _ _) 	= True
 whatExprIsWHNF (ExprIsVar _) 	= True
@@ -1301,7 +1214,7 @@
 whatExprIsWHNF ExprIsOtherWHNF 	= True
 whatExprIsWHNF _ 				= False
 
-{-# LINE 1598 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1499 "src/ehc/AbstractCore.chs" #-}
 whatExprIsBind :: WhatExpr -> Bool
 whatExprIsBind = isJust . whatExprMbBind
 {-# INLINE whatExprIsBind #-}
@@ -1316,54 +1229,32 @@
 whatExprIsTup _             = False
 
 
-{-# LINE 1614 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1515 "src/ehc/AbstractCore.chs" #-}
 -- | Is Expr a FFI?
 whatExprIsFFI :: WhatExpr -> Bool
 whatExprIsFFI (ExprIsFFI  ) = True
 whatExprIsFFI _             = False
 
 
-{-# LINE 1632 "src/ehc/AbstractCore.chs" #-}
-instance Serialize ACoreBindAspectKey where
-  sput (ACoreBindAspectKey_Default       ) = sputWord8 0
-  sput (ACoreBindAspectKey_Strict        ) = sputWord8 1
-  sput (ACoreBindAspectKey_Ty            ) = sputWord8 2
-  sput (ACoreBindAspectKey_Debug         ) = sputWord8 4
-  sput (ACoreBindAspectKey_Core          ) = sputWord8 5
-  sput (ACoreBindAspectKey_FusionRole    ) = sputWord8 7
-  sget = do
-    t <- sgetWord8
-    case t of
-        0 -> return ACoreBindAspectKey_Default
-        1 -> return ACoreBindAspectKey_Strict
-        2 -> return ACoreBindAspectKey_Ty
-        4 -> return ACoreBindAspectKey_Debug
-        5 -> return ACoreBindAspectKey_Core
-        7 -> return ACoreBindAspectKey_FusionRole
+{-# LINE 1533 "src/ehc/AbstractCore.chs" #-}
+instance Serialize ACoreBindAspectKey
 
-{-# LINE 1667 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1572 "src/ehc/AbstractCore.chs" #-}
 instance Serialize ACoreBindRef where
   sput (ACoreBindRef a b) = sput a >> sput b
   sget = liftM2 ACoreBindRef sget sget
 
-{-# LINE 1673 "src/ehc/AbstractCore.chs" #-}
-instance Serialize CaseAltFailReason where
-  sput (CaseAltFailReason_Continue a) = sputWord8 0 >> sput a
-  sput (CaseAltFailReason_Absence   ) = sputWord8 1
-  sget = do
-    t <- sgetWord8
-    case t of
-      0 -> liftM  CaseAltFailReason_Continue sget
-      1 -> return CaseAltFailReason_Absence
+{-# LINE 1578 "src/ehc/AbstractCore.chs" #-}
+instance Serialize CaseAltFailReason
 
-{-# LINE 1688 "src/ehc/AbstractCore.chs" #-}
+{-# LINE 1597 "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 1695 "src/ehc/AbstractCore.chs" #-}
-instance (PP expr, PP ty) => PP (CSubstInfo' expr metaval bind bindasp ty) where
+{-# LINE 1604 "src/ehc/AbstractCore.chs" #-}
+instance (PP expr, PP ty) => PP (CSubstInfo' expr bind bindasp ty) where
   pp (CSITy         t    )  = pp t
   pp (CSIExpr       e    )  = pp e
   pp (CSIImpls      l r  )  = pp "CSIImpls" -- pp (fst $ coeWeaveOnAsSubst uidStart l r CExpr_CoeArg)
diff --git a/src/UHC/Light/Compiler/AbstractCore/Utils.hs b/src/UHC/Light/Compiler/AbstractCore/Utils.hs
--- a/src/UHC/Light/Compiler/AbstractCore/Utils.hs
+++ b/src/UHC/Light/Compiler/AbstractCore/Utils.hs
@@ -1,17 +1,15 @@
 module UHC.Light.Compiler.AbstractCore.Utils
-( CaseFailSubst'
-, RCEEnv' (..), emptyRCEEnv
+( RCEEnv' (..), emptyRCEEnv
 , rceEnvDataAlts
 , acorePatTagArityMbNms
 , acoreAltLSaturate
 , acoreAltOffsetL
 , MbPatRest'
-, acoreStrictSatCaseMetaTy, acoreStrictSatCaseTy
-, acoreSelsCasesMetaTy
-, acoreSelsCaseMetaTy, acoreSelsCaseTy
+, acoreStrictSatCaseTy
+, acoreSelsCaseTy
 , acoreSelCaseTy
 , acoreSatSelsCasesTy
-, acoreSatSelsCaseMetaTy, acoreSatSelsCaseTy
+, acoreSatSelsCaseTy
 , acoreExprSatSelCaseTy
 , rceMatchTy
 , rceUpdEnv
@@ -39,29 +37,25 @@
 
 
 {-# LINE 32 "src/ehc/AbstractCore/Utils.chs" #-}
--- | Substitution for fail construct, identified by a UID
-type CaseFailSubst' e m b ba t = CSubst' e m b ba t
-
-{-# LINE 37 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Env to support Reordering of Case Expression (RCE)
-data RCEEnv' expr metaval bind bindasp ty
+data RCEEnv' expr bind bindasp ty
   = RCEEnv
       { rceValGam           :: !ValGam                  -- type of value (amongst other)
       , rceTyVarMp          :: !VarMp                   -- tvar bindings for ValGam
       , rceDataGam          :: !DataGam                 -- data type + constructor info
-      , rceCaseFailSubst    :: !(CaseFailSubst' expr metaval bind bindasp ty)   -- fail continuation map
+      , rceCaseFailSubst    :: !(CSubst' expr bind bindasp ty)   -- fail continuation map
       , rceCaseIds          :: !UIDS                    -- fail ids
       , rceCaseCont         :: !expr                    -- continuation
       , rceEHCOpts          :: !EHCOpts                 -- options
       -- , rceIsStrict          :: !Bool                -- scrutinee must be evaluated
       }
 
-emptyRCEEnv :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> RCEEnv' e m b ba t
+emptyRCEEnv :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> RCEEnv' e b ba t
 emptyRCEEnv opts = RCEEnv emptyGam emptyVarMp emptyGam Map.empty (Set.singleton uidStart) (acoreBuiltinUndefined opts) opts -- True
 
-{-# LINE 55 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 50 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | All tags of the type of the constructor for a tag t
-rceEnvDataAlts :: RCEEnv' e m b ba t -> CTag -> Maybe [CTag]
+rceEnvDataAlts :: RCEEnv' e b ba t -> CTag -> Maybe [CTag]
 rceEnvDataAlts env t
   = case t of
       CTag _ conNm _ _ _
@@ -73,16 +67,16 @@
                     -- dataGamTagsOfTy (appCon conNm) (rceDataGam env)
       _  -> Nothing
 
-{-# LINE 74 "src/ehc/AbstractCore/Utils.chs" #-}
-acorePatTagArityMbNms :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> CTag -> Int -> Maybe [HsName] -> p
+{-# LINE 69 "src/ehc/AbstractCore/Utils.chs" #-}
+acorePatTagArityMbNms :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> CTag -> Int -> Maybe [HsName] -> p
 acorePatTagArityMbNms opts ctag arity mbNmL
   = pat
   where pat = acorePatCon ctag (acorePatRestEmpty) (zipWith mkB nmL [0 .. arity - 1])
         mkB n o = acorePatFldTy (acoreTyErr "acorePatTagArityMbNms") (n,acoreInt opts o) n
         nmL = maybe (repeat hsnWild) id mbNmL
 
-{-# LINE 94 "src/ehc/AbstractCore/Utils.chs" #-}
-acoreAltLSaturate :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> [a] -> [a]
+{-# LINE 89 "src/ehc/AbstractCore/Utils.chs" #-}
+acoreAltLSaturate :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> [a] -> [a]
 acoreAltLSaturate env alts
   = case alts of
       (alt1:_) -> listSaturateWith 0 (length allAlts - 1) altIntTag allAlts alts
@@ -105,8 +99,8 @@
                           mkA env ct a = acoreAlt (acorePatTagArityMbNms (rceEHCOpts env) ct a Nothing) (rceCaseCont env)
       _     -> []
 
-{-# LINE 123 "src/ehc/AbstractCore/Utils.chs" #-}
-acorePatBindOffsetL :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> [pf] -> ([pf],[b])
+{-# LINE 118 "src/ehc/AbstractCore/Utils.chs" #-}
+acorePatBindOffsetL :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> [pf] -> ([pf],[b])
 acorePatBindOffsetL opts pbL
   =  let  (pbL',obL)
             =  unzip
@@ -121,8 +115,8 @@
                $  pbL
      in   (pbL',concat obL)
 
-{-# LINE 140 "src/ehc/AbstractCore/Utils.chs" #-}
-acoreAltOffsetL :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> a -> (a,[b])
+{-# LINE 135 "src/ehc/AbstractCore/Utils.chs" #-}
+acoreAltOffsetL :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> a -> (a,[b])
 acoreAltOffsetL opts alt
   =  case acorePatMbCon p of
        Just (t,r,b)
@@ -131,23 +125,23 @@
        _ ->  (alt,[])
   where (p,e) = acoreUnAlt alt
 
-{-# LINE 155 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 150 "src/ehc/AbstractCore/Utils.chs" #-}
 type MbPatRest' pr = Maybe (pr,Int) -- (pat rest, arity)
 
-{-# LINE 159 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 154 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make case expression from alternatives, saturating the alternatives w.r.t. all constructors
 -- | Either:
 -- |   - make a case expr from alternatives,
 -- |     saturating the alternatives with defaults for missing alternatives.
 -- |   - or, when only a single alternative binding a single field, bind it directly with a let
-acoreStrictSatCaseMetaTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> m -> e -> [a] -> e
-acoreStrictSatCaseMetaTy env mbNm meta e []
+acoreStrictSatCaseTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> [a] -> e
+acoreStrictSatCaseTy env mbNm e []
   = rceCaseCont env         -- TBD: should be error message "scrutinizing datatype without constructors"
-acoreStrictSatCaseMetaTy env mbNm meta e [alt]
+acoreStrictSatCaseTy env mbNm e [alt]
   | isJust mbPatCon && length flds == 1 && not (ctagIsRec tg) && isJust mbDgi && dgiIsNewtype (fromJust mbDgi)
   = acoreLet cat
-      ( [ acoreBind1CatMetaTy cat pnm meta ty e ]
-        ++ maybe [] (\(n,ty) -> [ acoreBind1CatMetaTy cat n meta ty e ]) mbNm
+      ( [ acoreBind1CatTy cat pnm ty e ]
+        ++ maybe [] (\(n,ty) -> [ acoreBind1CatTy cat n ty e ]) mbNm
       ) ae
   where mbDgi = dataGamLookup (ctagTyNm tg) (rceDataGam env)
         (pat,ae) = acoreUnAlt alt
@@ -155,10 +149,10 @@
         (_,pbind) = acoreUnPatFld fld
         (pnm,_) = acoreUnBind pbind
         cat = acoreBindcategPlain
-        ty = maybe (acoreTyErr "acoreStrictSatCaseMetaTy.ty") snd mbNm
-acoreStrictSatCaseMetaTy env mbNm meta e alts
+        ty = maybe (acoreTyErr "acoreStrictSatCaseTy.ty") snd mbNm
+acoreStrictSatCaseTy env mbNm e alts
   = case mbNm of
-      Just (n,ty)  -> acoreLet1StrictInMetaTy n meta ty e $ mk alts
+      Just (n,ty)  -> acoreLet1StrictInTy n ty e $ mk alts
       Nothing -> mk alts e
   where mk (alt:alts) n
           = acoreLet (acoreBindcategStrict) altOffBL (acoreCaseDflt n (acoreAltLSaturate env (alt':alts)) (Just undef))
@@ -167,24 +161,16 @@
           = acoreCaseDflt n [] (Just undef) -- dummy case
         undef = acoreBuiltinUndefined (rceEHCOpts env)
 
-acoreStrictSatCaseMeta :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName) -> m -> e -> [a] -> e
-acoreStrictSatCaseMeta env eNm m e alts = acoreStrictSatCaseMetaTy env (acoreTyErrLift "acoreStrictSatCaseMeta" eNm) m e alts
-{-# INLINE acoreStrictSatCaseMeta #-}
-
-acoreStrictSatCaseTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> e -> [a] -> e
-acoreStrictSatCaseTy env eNm e alts = acoreStrictSatCaseMetaTy env eNm acoreMetavalDflt e alts
-{-# INLINE acoreStrictSatCaseTy #-}
-
-acoreStrictSatCase :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName) -> e -> [a] -> e
-acoreStrictSatCase env eNm e alts = acoreStrictSatCaseMeta env eNm acoreMetavalDflt e alts
+acoreStrictSatCase :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName) -> e -> [a] -> e
+acoreStrictSatCase env eNm e alts = acoreStrictSatCaseTy env (acoreTyErrLift "acoreStrictSatCase" eNm) e alts
 {-# INLINE acoreStrictSatCase #-}
 
-{-# LINE 207 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 194 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make a case expr from non-saturated alternatives,
 -- | alternatives are given by their tag + fields (name/offset) + rest (for extensible records) + alt expr
-acoreSelsCasesMetaTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> m -> e -> [(CTag,[(HsName,t,{-HsName,-}e)],MbPatRest' pr,e)] -> e
-acoreSelsCasesMetaTy env mbNm meta e tgSels
-  = acoreStrictSatCaseMetaTy env mbNm meta e alts
+acoreSelsCasesTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> [(CTag,[(HsName,t,{-HsName,-}e)],MbPatRest' pr,e)] -> e
+acoreSelsCasesTy env mbNm e tgSels
+  = acoreStrictSatCaseTy env mbNm e alts
   where  alts = [ acoreAlt
                     (acorePatCon ct
                        (mkRest mbRest ct)
@@ -199,37 +185,34 @@
                _          -> ctag (acorePatRestVar hsnWild) (\_ _ _ _ _ -> acorePatRestEmpty) ct
 
 
-{-# LINE 228 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 215 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make a case expr from a single alternative,
 -- | the alternative given by their tag + fields (name/offset) + rest (for extensible records) + alt expr
-acoreSelsCaseMetaTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> m -> e -> CTag -> [(HsName,t,{-HsName,-}e)] -> MbPatRest' pr -> e -> e
-acoreSelsCaseMetaTy env ne meta e ct nmLblOffL mbRest sel = acoreSelsCasesMetaTy env ne meta e [(ct,nmLblOffL,mbRest,sel)]
-
-acoreSelsCaseTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> e -> CTag -> [(HsName,t,{-HsName,-}e)] -> MbPatRest' pr -> e -> e
-acoreSelsCaseTy env ne e ct nmLblOffL mbRest sel = acoreSelsCaseMetaTy env ne acoreMetavalDflt e ct nmLblOffL mbRest sel
+acoreSelsCaseTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> CTag -> [(HsName,t,{-HsName,-}e)] -> MbPatRest' pr -> e -> e
+acoreSelsCaseTy env ne e ct nmLblOffL mbRest sel = acoreSelsCasesTy env ne e [(ct,nmLblOffL,mbRest,sel)]
 {-# INLINE acoreSelsCaseTy #-}
 
-{-# LINE 239 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 223 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make a case expr from a single alternative with a single field,
 -- | the alternative given by their tag + field (name/offset) + rest (for extensible records) + alt expr
-acoreSelCaseTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> e -> CTag -> HsName -> e -> MbPatRest' pr -> e
+acoreSelCaseTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> CTag -> HsName -> e -> MbPatRest' pr -> e
 acoreSelCaseTy env ne e ct n {-lbl-} off mbRest
   = acoreSelsCaseTy env ne e ct [(n,acoreTyErr $ "acoreSelCaseTy: " ++ show n,{-lbl,-}off)] mbRest (acoreVar n)
 
-acoreSelCase :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe HsName -> e -> CTag -> HsName -> e -> MbPatRest' pr -> e
+acoreSelCase :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe HsName -> e -> CTag -> HsName -> e -> MbPatRest' pr -> e
 acoreSelCase env ne e ct n {-lbl-} off mbRest
   = acoreSelCaseTy env (acoreTyErrLift "acoreSelCase" ne) e ct n {-lbl-} off mbRest
 {-# INLINE acoreSelCase #-}
 
-{-# LINE 252 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 236 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make a case expr from a single alternative with non-saturated fields,
 -- | the alternative given by their tag + field (name/offset) + rest (for extensible records) + alt expr,
 -- | the fields (and alternatives) are saturated according to the tag + rest info
-acoreSatSelsCasesMetaTy
+acoreSatSelsCasesTy
   :: forall e m b bound boundmeta bcat mbind t p pr pf a ba .
-     (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> m -> e -> [(CTag,[(HsName,t,{-HsName,-}Int)],MbPatRest' pr,e)] -> e
-acoreSatSelsCasesMetaTy env ne meta e tgSels
-  =  acoreSelsCasesMetaTy env ne meta e alts
+     (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> [(CTag,[(HsName,t,{-HsName,-}Int)],MbPatRest' pr,e)] -> e
+acoreSatSelsCasesTy env ne e tgSels
+  =  acoreSelsCasesTy env ne e alts
   where mkOffL ct mbr nol
           = case (ct,mbr) of
               (CTagRec       ,Nothing   ) -> map mklo nol
@@ -242,39 +225,32 @@
                           $ listSaturateWith
                               0 (a-1)
                               (\(_,_,o) -> o)
-                              [(o,(l,acoreTyErr $ "acoreSatSelsCasesMetaTy.mkloL: " ++ show l,o)) | (o,l) <- zip [0..a-1] hsnLclSupply]
+                              [(o,(l,acoreTyErr $ "acoreSatSelsCasesTy.mkloL: " ++ show l,o)) | (o,l) <- zip [0..a-1] hsnLclSupply]
                               nol
         alts = [ (ct,mkOffL ct mbRest nmLblOffL,mbRest,sel) | (ct,nmLblOffL,mbRest,sel) <- tgSels ]
         opts = rceEHCOpts env
 
-acoreSatSelsCasesTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> e -> [(CTag,[(HsName,t,{-HsName,-}Int)],MbPatRest' pr,e)] -> e
-acoreSatSelsCasesTy env ne e tgSels = acoreSatSelsCasesMetaTy env ne acoreMetavalDflt e tgSels
-{-# INLINE acoreSatSelsCasesTy #-}
-
-{-# LINE 283 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 263 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make a case expr from a single alternative with non-saturated fields,
 -- | the alternative given by their tag + field (name/offset) + rest (for extensible records) + alt expr,
 -- | the fields (and alternatives) are saturated according to the tag + rest info
-acoreSatSelsCaseMetaTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> m -> e -> CTag -> [(HsName,t,{-HsName,-}Int)] -> MbPatRest' pr -> e -> e
-acoreSatSelsCaseMetaTy env ne meta e ct nmLblOffL mbRest sel = acoreSatSelsCasesMetaTy env ne meta e [(ct,nmLblOffL,mbRest,sel)]
-
-acoreSatSelsCaseTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> e -> CTag -> [(HsName,t,{-HsName,-}Int)] -> MbPatRest' pr -> e -> e
-acoreSatSelsCaseTy env ne e ct nmLblOffL mbRest sel = acoreSatSelsCaseMetaTy env ne acoreMetavalDflt e ct nmLblOffL mbRest sel
+acoreSatSelsCaseTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> CTag -> [(HsName,t,{-HsName,-}Int)] -> MbPatRest' pr -> e -> e
+acoreSatSelsCaseTy env ne e ct nmLblOffL mbRest sel = acoreSatSelsCasesTy env ne e [(ct,nmLblOffL,mbRest,sel)]
 {-# INLINE acoreSatSelsCaseTy #-}
 
-{-# LINE 295 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 272 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Make a case expr from a single alternative with a single field,
 -- | the alternative given by their tag + field (name/offset) + rest (for extensible records) + alt expr,
 -- | the fields (and alternatives) are saturated according to the tag + rest info
-acoreExprSatSelCaseTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName,t) -> e -> CTag -> HsName -> {- HsName -> -} Int -> MbPatRest' pr -> e
+acoreExprSatSelCaseTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName,t) -> e -> CTag -> HsName -> {- HsName -> -} Int -> MbPatRest' pr -> e
 acoreExprSatSelCaseTy env ne e ct n {- lbl -} off mbRest = acoreSatSelsCaseTy env ne e ct [(n,acoreTyErr $ "acoreExprSatSelCaseTy: " ++ show n,{-lbl,-}off)] mbRest (acoreVar n)
 
-acoreExprSatSelCase :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Maybe (HsName) -> e -> CTag -> HsName -> {- HsName -> -} Int -> MbPatRest' pr -> e
+acoreExprSatSelCase :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Maybe (HsName) -> e -> CTag -> HsName -> {- HsName -> -} Int -> MbPatRest' pr -> e
 acoreExprSatSelCase env ne e ct n {- lbl -} off mbRest = acoreExprSatSelCaseTy env (acoreTyErrLift "acoreExprSatSelCase" ne) e ct n {- lbl -} off mbRest
 {-# INLINE acoreExprSatSelCase #-}
 
-{-# LINE 327 "src/ehc/AbstractCore/Utils.chs" #-}
-acoreMatchStringTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> String -> t -> e -> e -> e -> e
+{-# LINE 302 "src/ehc/AbstractCore/Utils.chs" #-}
+acoreMatchStringTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> String -> t -> e -> e -> e -> e
 acoreMatchStringTy env str ty ok fail e
   = acoreLet1PlainTy x ty e
     $ foldr (\(c,ns@(_,xh,_)) ok
@@ -294,14 +270,14 @@
             $ foldr (\n (nt,l) -> (n,(n,hsnUniqifyStr HsNameUniqifier_Field "h" n,nt):l)) (hsnUnknown,[])
             $ take (length str + 1) $ hsnLclSupplyWith (mkHNmHidden "l")
 
-{-# LINE 349 "src/ehc/AbstractCore/Utils.chs" #-}
-acoreMatchTupleTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> [HsName] -> t -> e -> e -> e
+{-# LINE 324 "src/ehc/AbstractCore/Utils.chs" #-}
+acoreMatchTupleTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> [HsName] -> t -> e -> e -> e
 acoreMatchTupleTy env fldNmL ty ok e
   = acoreLet1PlainTy x ty e
     $ acoreSatSelsCaseTy env (Just (hsnUniqifyEval x,ty)) (acoreVar x) CTagRec (zipWith (\f o -> (f,acoreTyErr $ "acoreMatchTupleTy: " ++ show f,o)) fldNmL [0..]) (Just (acorePatRestEmpty,length fldNmL)) ok
   where x = mkHNmHidden "x"
 
-{-# LINE 361 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 336 "src/ehc/AbstractCore/Utils.chs" #-}
 data RCESplitCateg
   = RCESplitVar UIDS
   | RCESplitCon
@@ -316,7 +292,7 @@
 rceSplitMustBeOnItsOwn RCESplitIrrefutable = True
 rceSplitMustBeOnItsOwn _                   = False
 
-{-# LINE 379 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 354 "src/ehc/AbstractCore/Utils.chs" #-}
 rceSplit :: (RAlt' e t b pr -> RCESplitCateg) -> RCEAltL' e t b pr -> [RCEAltL' e t b pr]
 rceSplit f []   = []
 rceSplit f [x]  = [[x]]
@@ -329,15 +305,15 @@
       = [x] : rceSplit f xs
   where xcateg = f x
 
-{-# LINE 393 "src/ehc/AbstractCore/Utils.chs" #-}
+{-# LINE 368 "src/ehc/AbstractCore/Utils.chs" #-}
 -- | Add bindings from the name n of each alt to nm, to take care of different namings
-rceRebinds :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Bool -> (HsName,t) -> RCEAltL' e t b pr -> [b]
+rceRebinds :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => Bool -> (HsName,t) -> RCEAltL' e t b pr -> [b]
 rceRebinds origOnly (nm,ty) alts
   = [ acoreBind1Ty n ty (acoreVar nm) | pn <- raltLPatNms alts, alsoUniq || rpatNmIsOrig pn, let n = rpatNmNm pn, n /= nm ]
   where alsoUniq = not origOnly
 
-{-# LINE 401 "src/ehc/AbstractCore/Utils.chs" #-}
-rceMatchVar :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t ->  [(HsName,t)] -> RCEAltL' e t b pr -> e
+{-# LINE 376 "src/ehc/AbstractCore/Utils.chs" #-}
+rceMatchVar :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t ->  [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchVar env ((arg,ty):args') alts
   = remMatch
   where remMatch
@@ -350,12 +326,12 @@
                                 else (arg,id)
               ]
 
-rceMatchIrrefutable :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t ->  [(HsName,t)] -> RCEAltL' e t b pr -> e
+rceMatchIrrefutable :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t ->  [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchIrrefutable env (argty@(arg,ty):args') alts@[RAlt_Alt (RPat_Irrefutable n _ b : remPats) e f]
   = acoreLet acoreBindcategPlain (rceRebinds False argty alts) $ acoreLet acoreBindcategPlain b remMatch
   where remMatch  = rceMatchTy env args' [RAlt_Alt remPats e f]
 
-rceMkConAltAndSubAlts :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> a
+rceMkConAltAndSubAlts :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> a
 rceMkConAltAndSubAlts env ((arg,ty):args) alts@(alt:_)
   = acoreAlt altPat (acoreLet acoreBindcategPlain (rceRebinds True (arg,ty) alts) subMatch)
   where (subAlts,subAltSubs)
@@ -384,7 +360,7 @@
                                    ]
         tyerr n = acoreTyErr ("rceMkConAltAndSubAlts: " ++ show n)
 
-rceMatchCon :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
+rceMatchCon :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchCon env ((arg,ty):args) alts
   = acoreStrictSatCaseTy env (Just (arg',ty)) (acoreVar arg) alts'
   where arg'   =  hsnUniqifyEval arg
@@ -393,7 +369,7 @@
                   $ filter (not . null . rcaPats)
                   $ alts
 
-rceMatchConMany :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
+rceMatchConMany :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchConMany env ((arg,ty):args) [RAlt_Alt (RPat_Con n _ t (RPatConBind_Many bs) : ps) e f]
   = acoreLet1StrictInTy arg' ty (acoreVar arg)
                         (\_ -> foldr (\mka e -> rceMatchTy env [(arg',ty)] (mka e)) (rceMatchTy env ((arg',ty):args) altslast) altsinit)
@@ -402,15 +378,15 @@
         altslast =         [RAlt_Alt (RPat_Con n ty t blast : ps) e f]
         (bsinit,blast) = panicJust "rceMatchConMany" $ initlast bs
 
-rceMatchConst :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
+rceMatchConst :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchConst env ((arg,ty):args) alts
   = acoreLet1StrictInTy arg' ty (acoreVar arg) (\n -> acoreLet cat (rceRebinds True (arg,ty) alts) (acoreCaseDflt n alts' Nothing {-(rceCaseCont env)-}))
   where arg' = hsnUniqifyEval arg
         alts' = [ acoreAlt (acoreRPat2Pat p) (cSubstApp (rceCaseFailSubst env) e {- tcSubstCaseAltFail (rceEHCOpts env) (rceCaseFailSubst env) e -}) | (RAlt_Alt (p:_) e _) <- alts ]
         cat = acoreBindcategPlain
 
-{-# LINE 475 "src/ehc/AbstractCore/Utils.chs" #-}
-rceMatchBoolExpr :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
+{-# LINE 450 "src/ehc/AbstractCore/Utils.chs" #-}
+rceMatchBoolExpr :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchBoolExpr env aargs@((arg,_):args) alts
   = foldr (\(n,c,t) f -> acoreIf (rceEHCOpts env) (Just n) c t f) (rceCaseCont env) alts'
   where alts'  =  map (\(u, alts@(RAlt_Alt (RPat_BoolExpr _ _ b _ : _) _ _ : _))
@@ -423,8 +399,8 @@
                   $ filter (not . null . rcaPats)
                   $ alts
 
-{-# LINE 490 "src/ehc/AbstractCore/Utils.chs" #-}
-rceMatchSplits :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
+{-# LINE 465 "src/ehc/AbstractCore/Utils.chs" #-}
+rceMatchSplits :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchSplits env args alts@(alt:_)
   |  raltIsVar          alt  = rceMatchVar          env args alts
   |  raltIsConst        alt  = rceMatchConst        env args alts
@@ -434,8 +410,8 @@
   |  otherwise               = rceMatchCon          env args alts
 
 
-{-# LINE 504 "src/ehc/AbstractCore/Utils.chs" #-}
-rceMatchTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, CSubstitutable e m b ba t e) => RCEEnv' e m b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
+{-# LINE 479 "src/ehc/AbstractCore/Utils.chs" #-}
+rceMatchTy :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a, CSubstitutable e b ba t e) => RCEEnv' e b ba t -> [(HsName,t)] -> RCEAltL' e t b pr -> e
 rceMatchTy env [] []    =  rceCaseCont env
 rceMatchTy env [] alts
   =  case [ e | (RAlt_Alt [] e _) <- alts ] of
@@ -461,24 +437,24 @@
                                                        else RCESplitCon
                  ) alts)
 
-{-# LINE 539 "src/ehc/AbstractCore/Utils.chs" #-}
-rceUpdEnv :: e -> RCEEnv' e m b ba t -> RCEEnv' e m b ba t
+{-# LINE 514 "src/ehc/AbstractCore/Utils.chs" #-}
+rceUpdEnv :: e -> RCEEnv' e b ba t -> RCEEnv' e b ba t
 rceUpdEnv e env
   = env { rceCaseFailSubst = Map.union (acoreCSubstFromUidExprL [ (i,e) | i <- Set.toList (rceCaseIds env) ])
                              $ rceCaseFailSubst env
         , rceCaseCont      = e
         }
 
-{-# LINE 552 "src/ehc/AbstractCore/Utils.chs" #-}
-acoreCSubstFromVarMpImpls :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => VarMp -> CSubst' e m b ba t
+{-# LINE 527 "src/ehc/AbstractCore/Utils.chs" #-}
+acoreCSubstFromVarMpImpls :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => VarMp -> CSubst' e b ba t
 acoreCSubstFromVarMpImpls c
   =  acoreCSubstFromUidImplsL
         [ (iv,(acoreCoeImplsApp i,acoreCoeImplsLam acoreCoeId i))
         | (iv,VMIImpls i) <- varmpToAssocL c, let (_,mbTl) = implsPredsMbTail i, isNothing mbTl
         ]
 
-{-# LINE 565 "src/ehc/AbstractCore/Utils.chs" #-}
-acoreRPatBindL2BindL :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RCEEnv' e m b ba t -> Bool -> HsName -> CTag -> MbPatRest' pr -> AssocL (RPatFld' e t b pr) (Maybe Int) -> [b]
+{-# LINE 540 "src/ehc/AbstractCore/Utils.chs" #-}
+acoreRPatBindL2BindL :: (Eq bcat, AbstractCore e b bound boundmeta bcat t p pr pf a) => RCEEnv' e b ba t -> Bool -> HsName -> CTag -> MbPatRest' pr -> AssocL (RPatFld' e t b pr) (Maybe Int) -> [b]
 acoreRPatBindL2BindL env hasSub parNm ct rest pbL
   = concat
     $  map  (\(RPatFld_Fld l o _ p,mbOff)
diff --git a/src/UHC/Light/Compiler/Base/CfgPP.hs b/src/UHC/Light/Compiler/Base/CfgPP.hs
--- a/src/UHC/Light/Compiler/Base/CfgPP.hs
+++ b/src/UHC/Light/Compiler/Base/CfgPP.hs
@@ -3,7 +3,7 @@
 module UHC.Light.Compiler.Base.CfgPP
 ( ppScanoptsNm
 , CfgPP' (..), CfgPP (..)
-, CfgPP_Plain (..), CfgPP_Core (..), CfgPP_Grin (..), CfgPP_TyCore (..)
+, CfgPP_Plain (..), CfgPP_Core (..), CfgPP_Grin (..)
 , ppCoreNm
 , ppCTag', ppCTagExtensive'
 , ppCTagsMp )
@@ -52,13 +52,12 @@
 {-# LINE 80 "src/ehc/Base/CfgPP.chs" #-}
 data CfgPP_Plain   = CfgPP_Plain
 data CfgPP_Core    = CfgPP_Core
-data CfgPP_TyCore  = CfgPP_TyCore
 data CfgPP_Grin    = CfgPP_Grin
 
-{-# LINE 87 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 86 "src/ehc/Base/CfgPP.chs" #-}
 instance CfgPP' CfgPP_Plain
 
-{-# LINE 91 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 90 "src/ehc/Base/CfgPP.chs" #-}
 instance CfgPP' CfgPP_Core where
   {-
   cfgppHsName    _ n 				= fst $ ppHsnEscapeWith '$' (hsnOkChars '$' $ copts) (hsnNotOkStrs copts) (`Set.member` leaveAsIs) n
@@ -72,21 +71,15 @@
   cfgppVarHsName x _ (Just u) _ _ 	= cfgppUID x u
   cfgppVarHsName x mn mu mi mp      = cfgppVarHsNameFallback x mn mu mi mp
 
-{-# LINE 106 "src/ehc/Base/CfgPP.chs" #-}
-ppNmTyCore = ppHsnEscaped (Right $ Set.fromList ['0'..'9']) '$' (hsnEscapeeChars '$' tycoreScanOpts)
-
-instance CfgPP' CfgPP_TyCore where
-  cfgppHsName    _ = ppNmTyCore
-
-{-# LINE 113 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 105 "src/ehc/Base/CfgPP.chs" #-}
 instance CfgPP' CfgPP_Grin where
   cfgppHsName    _ = ppHsnNonAlpha grinScanOpts
 
-{-# LINE 122 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 114 "src/ehc/Base/CfgPP.chs" #-}
 ppCoreNm :: HsName -> PP_Doc
 ppCoreNm = cfgppHsName CfgPP_Core
 
-{-# LINE 131 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 123 "src/ehc/Base/CfgPP.chs" #-}
 tnUniqRepr :: Int -> String
 tnUniqRepr
   = lrepr
@@ -96,7 +89,7 @@
                         in   (repr d : lrepr r)
         repr    = (chr . (97+))
 
-{-# LINE 146 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 138 "src/ehc/Base/CfgPP.chs" #-}
 -- intended for parsing
 ppCTag' :: CfgPP' x => x -> CTag -> PP_Doc
 ppCTag' x t
@@ -113,7 +106,7 @@
       CTag ty nm tag arity mxarity -> ppCurlysCommas' [ppNm ty, ppNm nm, pp tag, pp arity, pp mxarity]
   where ppNm n = cfgppHsName x n
 
-{-# LINE 164 "src/ehc/Base/CfgPP.chs" #-}
+{-# LINE 156 "src/ehc/Base/CfgPP.chs" #-}
 ppCTagsMp :: CfgPP' x => x -> CTagsMp -> PP_Doc
 ppCTagsMp x
   = mkl (mkl (ppCTag' x))
diff --git a/src/UHC/Light/Compiler/Base/Common.hs b/src/UHC/Light/Compiler/Base/Common.hs
--- a/src/UHC/Light/Compiler/Base/Common.hs
+++ b/src/UHC/Light/Compiler/Base/Common.hs
@@ -2,11 +2,12 @@
 
 module UHC.Light.Compiler.Base.Common
 ( module UHC.Util.Hashable
+, module Data.Typeable
+, module GHC.Generics
 , module UHC.Light.Compiler.Base.HsName
 , module UHC.Light.Compiler.Base.Range
 , module UHC.Light.Compiler.Base.UID
 , module UHC.Util.AssocL
-, module Data.Typeable, module Data.Generics
 , ppAppTop
 , ppCon, ppCmt
 , ppSpaced
@@ -79,13 +80,13 @@
 where
 import UHC.Util.Utils
 import UHC.Util.Hashable
+import Data.Typeable (Typeable)
+import GHC.Generics (Generic)
 import UHC.Light.Compiler.Base.HsName
 import UHC.Light.Compiler.Base.HsName.Builtin
 import UHC.Light.Compiler.Base.Range
 import UHC.Light.Compiler.Base.UID
 import UHC.Util.AssocL
-import Data.Typeable (Typeable)
-import Data.Generics (Data)
 import UHC.Util.Pretty
 import Data.List
 import Control.Applicative ((<|>))
@@ -95,7 +96,6 @@
 import UHC.Util.VarLookup (MetaLev,metaLevVal)
 import UHC.Light.Compiler.Scanner.Token
 import UHC.Light.Compiler.Scanner.Machine(scanpredIsIdChar,scanpredIsKeywExtra)
-import GHC.Generics (Generic)
 import UHC.Util.FPath
 import System.IO
 import System.Environment
@@ -119,14 +119,10 @@
 
 
 
-
-
-{-# LINE 104 "src/ehc/Base/Common.chs" #-}
+{-# LINE 92 "src/ehc/Base/Common.chs" #-}
 deriving instance Generic Version
 
-instance Hashable Version
-
-{-# LINE 114 "src/ehc/Base/Common.chs" #-}
+{-# LINE 103 "src/ehc/Base/Common.chs" #-}
 ppHsnEscapeWith :: Char -> (Char -> Bool) -> (String -> Bool) -> (HsName -> Bool) -> HsName -> (PP_Doc,Bool)
 ppHsnEscapeWith escChar okChars notOkStr leaveAsIs n = flip ST.runState False $ do
     let shown = hsnShow' showUIDParseable show (\s -> "{" ++ s ++ "}") "." "``" n
@@ -172,32 +168,32 @@
                         let s = foldr (\c r -> if c `Set.member` escapeeChars then '$':c:r else c:r) [] name
                          in  pp ('$':s)
 
-{-# LINE 165 "src/ehc/Base/Common.chs" #-}
+{-# LINE 154 "src/ehc/Base/Common.chs" #-}
 newtype PredOccId
   = PredOccId
       { poiId       :: UID
       }
   deriving (Show,Eq,Ord)
 
-{-# LINE 173 "src/ehc/Base/Common.chs" #-}
+{-# LINE 162 "src/ehc/Base/Common.chs" #-}
 mkPrId :: UID -> PredOccId
 mkPrId u = PredOccId u
 
 poiHNm :: PredOccId -> HsName
 poiHNm = uidHNm . poiId
 
-{-# LINE 181 "src/ehc/Base/Common.chs" #-}
+{-# LINE 170 "src/ehc/Base/Common.chs" #-}
 mkPrIdCHR :: UID -> PredOccId
 mkPrIdCHR = mkPrId
 
-{-# LINE 186 "src/ehc/Base/Common.chs" #-}
+{-# LINE 175 "src/ehc/Base/Common.chs" #-}
 emptyPredOccId :: PredOccId
 emptyPredOccId = mkPrId uidStart
 
-{-# LINE 195 "src/ehc/Base/Common.chs" #-}
+{-# LINE 184 "src/ehc/Base/Common.chs" #-}
 type VarPPMp = Map.Map UID PP_Doc
 
-{-# LINE 203 "src/ehc/Base/Common.chs" #-}
+{-# LINE 192 "src/ehc/Base/Common.chs" #-}
 ppAppTop :: PP arg => (HsName,arg) -> [arg] -> PP_Doc -> PP_Doc
 ppAppTop (conNm,con) argL dflt
   =  if       (  hsnIsArrow conNm
@@ -211,12 +207,12 @@
      else if  hsnIsRow   conNm  then  ppListSep (hsnORow >|< con) hsnCRow "," argL
                                 else  dflt
 
-{-# LINE 224 "src/ehc/Base/Common.chs" #-}
+{-# LINE 213 "src/ehc/Base/Common.chs" #-}
 ppAppTop' :: PP arg => (HsName,arg) -> [arg] -> [Bool] -> PP_Doc -> PP_Doc
 ppAppTop' cc@(conNm,_) [_,a] [True,_] _ | hsnIsArrow conNm || hsnIsPrArrow conNm    = pp a
 ppAppTop' cc argL _ dflt                                                            = ppAppTop cc argL dflt
 
-{-# LINE 230 "src/ehc/Base/Common.chs" #-}
+{-# LINE 219 "src/ehc/Base/Common.chs" #-}
 ppCon :: HsName -> PP_Doc
 ppCon nm =  if    hsnIsProd nm
             then  ppParens (text (replicate (hsnProdArity nm - 1) ','))
@@ -225,17 +221,17 @@
 ppCmt :: PP_Doc -> PP_Doc
 ppCmt p = "{-" >#< p >#< "-}"
 
-{-# LINE 240 "src/ehc/Base/Common.chs" #-}
+{-# LINE 229 "src/ehc/Base/Common.chs" #-}
 ppSemi :: PP x => x -> PP_Doc
 ppSemi = (>|< ";")
 
-{-# LINE 245 "src/ehc/Base/Common.chs" #-}
+{-# LINE 234 "src/ehc/Base/Common.chs" #-}
 
 ppSpaced :: PP a => [a] -> PP_Doc
 ppSpaced = ppListSep "" "" " "
 
 
-{-# LINE 252 "src/ehc/Base/Common.chs" #-}
+{-# LINE 241 "src/ehc/Base/Common.chs" #-}
 ppFld :: String -> Maybe HsName -> HsName -> PP_Doc -> PP_Doc -> PP_Doc
 ppFld sep positionalNm nm nmPP f
   = case positionalNm of
@@ -248,7 +244,7 @@
 mkPPAppFun :: HsName -> PP_Doc -> PP_Doc
 mkPPAppFun = mkPPAppFun' "|"
 
-{-# LINE 266 "src/ehc/Base/Common.chs" #-}
+{-# LINE 255 "src/ehc/Base/Common.chs" #-}
 mkExtAppPP' :: String -> (HsName,PP_Doc,[PP_Doc]) -> (HsName,PP_Doc,[PP_Doc],PP_Doc) -> (PP_Doc,[PP_Doc])
 mkExtAppPP' sep (funNm,funNmPP,funPPL) (argNm,argNmPP,argPPL,argPP)
   =  if hsnIsRec funNm || hsnIsSum funNm
@@ -258,19 +254,19 @@
 mkExtAppPP :: (HsName,PP_Doc,[PP_Doc]) -> (HsName,PP_Doc,[PP_Doc],PP_Doc) -> (PP_Doc,[PP_Doc])
 mkExtAppPP = mkExtAppPP' "|"
 
-{-# LINE 282 "src/ehc/Base/Common.chs" #-}
+{-# LINE 271 "src/ehc/Base/Common.chs" #-}
 ppPair :: (PP a, PP b) => (a,b) -> PP_Doc
 ppPair (x,y) = ppParens (pp x >|< "," >|< pp y)
 
-{-# LINE 292 "src/ehc/Base/Common.chs" #-}
+{-# LINE 281 "src/ehc/Base/Common.chs" #-}
 ppFM :: (PP k,PP v) => Map.Map k v -> PP_Doc
 ppFM = ppAssocL . Map.toList
 
-{-# LINE 297 "src/ehc/Base/Common.chs" #-}
+{-# LINE 286 "src/ehc/Base/Common.chs" #-}
 ppListV :: PP a => [a] -> PP_Doc
 ppListV = vlist . map pp
 
-{-# LINE 306 "src/ehc/Base/Common.chs" #-}
+{-# LINE 295 "src/ehc/Base/Common.chs" #-}
 putCompileMsg :: Verbosity -> Verbosity -> String -> Maybe String -> HsName -> FPath -> IO ()
 putCompileMsg v optsVerbosity msg mbMsg2 modNm fNm
   = if optsVerbosity >= v
@@ -279,7 +275,7 @@
             }
     else return ()
 
-{-# LINE 316 "src/ehc/Base/Common.chs" #-}
+{-# LINE 305 "src/ehc/Base/Common.chs" #-}
 writePP ::  (a -> PP_Doc) -> a -> FPath -> IO ()
 writePP f text fp = writeToFile (show.f $ text) fp
 
@@ -294,7 +290,7 @@
 writeToFile = writeToFile' False
 
 
-{-# LINE 341 "src/ehc/Base/Common.chs" #-}
+{-# LINE 330 "src/ehc/Base/Common.chs" #-}
 data ParNeed =  ParNotNeeded | ParNeededLow | ParNeeded | ParNeededHigh | ParOverrideNeeded
                 deriving (Eq,Ord)
 
@@ -311,13 +307,13 @@
               | otherwise           =  (ParNeeded,repeat ParNeededHigh)
      in   pr
 
-{-# LINE 363 "src/ehc/Base/Common.chs" #-}
+{-# LINE 352 "src/ehc/Base/Common.chs" #-}
 ppParNeed :: PP p => ParNeed -> ParNeed -> p -> PP_Doc
 ppParNeed locNeed globNeed p
   = par (pp p)
   where par = if globNeed > locNeed then ppParens else id
 
-{-# LINE 389 "src/ehc/Base/Common.chs" #-}
+{-# LINE 363 "src/ehc/Base/Common.chs" #-}
 -- | Expressions in a CBound position optionally may be labelled
 data CLbl
   = CLbl_None
@@ -327,43 +323,43 @@
   | CLbl_Tag
       { clblTag		:: !CTag
       }
-  deriving (Show,Eq,Ord)
+  deriving (Show,Eq,Ord,Generic)
 
 clbl :: a -> (HsName -> a) -> (CTag -> a) -> CLbl -> a
 clbl f _ _  CLbl_None   = f
 clbl _ f _ (CLbl_Nm  n) = f n
 clbl _ _ f (CLbl_Tag t) = f t
 
-{-# LINE 407 "src/ehc/Base/Common.chs" #-}
+{-# LINE 381 "src/ehc/Base/Common.chs" #-}
 instance PP CLbl where
   pp = clbl empty pp pp
 
-{-# LINE 416 "src/ehc/Base/Common.chs" #-}
+{-# LINE 390 "src/ehc/Base/Common.chs" #-}
 data Unbox
   = Unbox_FirstField
   | Unbox_Tag         !Int
   | Unbox_None
 
-{-# LINE 427 "src/ehc/Base/Common.chs" #-}
+{-# LINE 401 "src/ehc/Base/Common.chs" #-}
 unions :: Eq a => [[a]] -> [a]
 unions = foldr union []
 
-{-# LINE 432 "src/ehc/Base/Common.chs" #-}
+{-# LINE 406 "src/ehc/Base/Common.chs" #-}
 listCombineUniq :: Eq a => [[a]] -> [a]
 listCombineUniq = nub . concat
 
-{-# LINE 452 "src/ehc/Base/Common.chs" #-}
+{-# LINE 411 "src/ehc/Base/Common.chs" #-}
 replicateBy :: [a] -> b -> [b]
 replicateBy l e = replicate (length l) e
 
-{-# LINE 461 "src/ehc/Base/Common.chs" #-}
+{-# LINE 420 "src/ehc/Base/Common.chs" #-}
 strPadLeft :: Char -> Int -> String -> String
 strPadLeft c n s = replicate (n - length s) c ++ s
 
 strBlankPad :: Int -> String -> String
 strBlankPad n s = s ++ replicate (n - length s) ' '
 
-{-# LINE 481 "src/ehc/Base/Common.chs" #-}
+{-# LINE 440 "src/ehc/Base/Common.chs" #-}
 data Verbosity
   = VerboseQuiet		-- nothing at all
   | VerboseMinimal
@@ -372,12 +368,12 @@
   | VerboseDebug
   deriving (Eq,Ord,Enum)
 
-{-# LINE 495 "src/ehc/Base/Common.chs" #-}
+{-# LINE 454 "src/ehc/Base/Common.chs" #-}
 data CHRScoped
   = CHRScopedInstOnly | CHRScopedMutualSuper | CHRScopedAll
   deriving (Eq,Ord)
 
-{-# LINE 505 "src/ehc/Base/Common.chs" #-}
+{-# LINE 464 "src/ehc/Base/Common.chs" #-}
 data CompilePoint
   = CompilePoint_Imports
   | CompilePoint_Parse
@@ -387,7 +383,7 @@
   | CompilePoint_All
   deriving (Eq,Ord,Show)
 
-{-# LINE 522 "src/ehc/Base/Common.chs" #-}
+{-# LINE 481 "src/ehc/Base/Common.chs" #-}
 data Fixity
   = Fixity_Infix | Fixity_Infixr | Fixity_Infixl
   deriving (Eq,Ord,Show,Enum)
@@ -397,15 +393,15 @@
   pp Fixity_Infixl = pp "infixl"
   pp Fixity_Infixr = pp "infixr"
 
-{-# LINE 533 "src/ehc/Base/Common.chs" #-}
+{-# LINE 492 "src/ehc/Base/Common.chs" #-}
 fixityMaxPrio :: Int
 fixityMaxPrio = 9
 
-{-# LINE 538 "src/ehc/Base/Common.chs" #-}
+{-# LINE 497 "src/ehc/Base/Common.chs" #-}
 fixityAppPrio :: Int
 fixityAppPrio = fixityMaxPrio + 1
 
-{-# LINE 547 "src/ehc/Base/Common.chs" #-}
+{-# LINE 506 "src/ehc/Base/Common.chs" #-}
 data InstVariant
   = InstNormal | InstDefault
   | InstDeriving InstDerivingFrom
@@ -414,7 +410,7 @@
 instance PP InstVariant where
   pp = pp . show
 
-{-# LINE 559 "src/ehc/Base/Common.chs" #-}
+{-# LINE 518 "src/ehc/Base/Common.chs" #-}
 -- | Either a deriving combined from a datatype directly or a standalone
 data InstDerivingFrom
   = InstDerivingFrom_Datatype
@@ -424,7 +420,7 @@
 instance PP InstDerivingFrom where
   pp = pp . show
 
-{-# LINE 574 "src/ehc/Base/Common.chs" #-}
+{-# LINE 533 "src/ehc/Base/Common.chs" #-}
 type NmLev = Int
 
 nmLevAbsent, nmLevBuiltin, nmLevOutside, nmLevModule :: NmLev
@@ -434,7 +430,7 @@
 nmLevModule  =  0
 
 
-{-# LINE 595 "src/ehc/Base/Common.chs" #-}
+{-# LINE 554 "src/ehc/Base/Common.chs" #-}
 -- Assumption: tokTpIsInt (genTokTp t) == True
 tokMkInt :: Token -> Int
 tokMkInt t
@@ -446,28 +442,28 @@
 tokMkStr :: Token -> String
 tokMkStr = tokenVal
 
-{-# LINE 613 "src/ehc/Base/Common.chs" #-}
+{-# LINE 572 "src/ehc/Base/Common.chs" #-}
 tokMkQName :: Token -> HsName
 tokMkQName t
   = case genTokTp t of
       Just tp | tokTpIsInt tp -> mkHNmPos $ tokMkInt t
       _                       -> mkHNm $ map hsnFromString $ tokenVals t
 
-{-# LINE 623 "src/ehc/Base/Common.chs" #-}
+{-# LINE 582 "src/ehc/Base/Common.chs" #-}
 tokMkQNames :: [Token] -> [HsName]
 tokMkQNames = map tokMkQName
 
 instance HSNM Token where
   mkHNm = tokMkQName
 
-{-# LINE 635 "src/ehc/Base/Common.chs" #-}
+{-# LINE 594 "src/ehc/Base/Common.chs" #-}
 hsnLclSupplyWith :: HsName -> [HsName]
 hsnLclSupplyWith n = map (\i -> hsnSuffix n $ "_" ++ show i) [1..]
 
 hsnLclSupply :: [HsName]
 hsnLclSupply = hsnLclSupplyWith (hsnFromString "")
 
-{-# LINE 647 "src/ehc/Base/Common.chs" #-}
+{-# LINE 606 "src/ehc/Base/Common.chs" #-}
 splitByRadix :: (Integral b) => Int -> Int -> b -> (Int,[Int])
 splitByRadix len radix num
   = ( fromIntegral $ signum num
@@ -483,36 +479,36 @@
                  (abs num)
         difflen = len - length repr
 
-{-# LINE 664 "src/ehc/Base/Common.chs" #-}
+{-# LINE 623 "src/ehc/Base/Common.chs" #-}
 strHex :: (Show a, Integral a) => Int -> a -> String
 strHex prec x
   = replicate (prec - length h) '0' ++ h
   where h = showHex x []
 
-{-# LINE 675 "src/ehc/Base/Common.chs" #-}
+{-# LINE 634 "src/ehc/Base/Common.chs" #-}
 data Backend
   = BackendGrinByteCode
   | BackendSilly
   deriving (Eq, Ord)
 
-{-# LINE 686 "src/ehc/Base/Common.chs" #-}
+{-# LINE 645 "src/ehc/Base/Common.chs" #-}
 data VarUIDHsName
   = VarUIDHs_Name       { vunmId :: !UID, vunmNm' :: !HsName }
   | VarUIDHs_UID        { vunmId :: !UID }
   | VarUIDHs_Var        !UID
-  deriving (Eq, Ord)
+  deriving (Eq, Ord, Generic)
 
 vunmNm :: VarUIDHsName -> HsName
 vunmNm (VarUIDHs_Name _ n) = n
 vunmNm (VarUIDHs_UID  i  ) = mkHNm i
 vunmNm _                   = panic "Common.assnmNm"
 
-{-# LINE 699 "src/ehc/Base/Common.chs" #-}
+{-# LINE 658 "src/ehc/Base/Common.chs" #-}
 vunmMbVar :: VarUIDHsName -> Maybe UID
 vunmMbVar (VarUIDHs_Var v) = Just v
 vunmMbVar _                = Nothing
 
-{-# LINE 705 "src/ehc/Base/Common.chs" #-}
+{-# LINE 664 "src/ehc/Base/Common.chs" #-}
 instance Show VarUIDHsName where
   show (VarUIDHs_Name _ n) = show n
   show (VarUIDHs_UID  i  ) = show i
@@ -521,7 +517,7 @@
 instance PP VarUIDHsName where
   pp a = pp $ show a
 
-{-# LINE 719 "src/ehc/Base/Common.chs" #-}
+{-# LINE 678 "src/ehc/Base/Common.chs" #-}
 withLkupLiftCyc2 :: (t -> Maybe UID) -> (t -> UIDS) -> (UID -> Maybe t) -> x -> (UIDS -> t -> x) -> (t -> x) -> UIDS -> UID -> x
 withLkupLiftCyc2 get noVisit lookup dflt yes no vsVisited v
   = case lookup v of
@@ -529,7 +525,7 @@
         -> yes (Set.insert v $ Set.union (noVisit t) vsVisited) t
       _ -> dflt
 
-{-# LINE 728 "src/ehc/Base/Common.chs" #-}
+{-# LINE 687 "src/ehc/Base/Common.chs" #-}
 withLkupLiftCyc1 :: (t -> Maybe UID) -> (t -> UIDS) -> (UID -> Maybe t) -> (UIDS -> t -> x) -> (t -> x) -> UIDS -> t -> x
 withLkupLiftCyc1 get noVisit lookup yes no vsVisited t
   = maybe dflt (withLkupLiftCyc2 get noVisit lookup dflt yes no vsVisited) $ get t
@@ -543,7 +539,7 @@
 withLkupLift get
   = withLkupChkVisitLift get (const Set.empty)
 
-{-# LINE 743 "src/ehc/Base/Common.chs" #-}
+{-# LINE 702 "src/ehc/Base/Common.chs" #-}
 lookupLiftCyc1 :: (x -> Maybe UID) -> (UID -> Maybe x) -> x' -> (x->x') -> x -> x'
 lookupLiftCyc1 get lookup dflt found x
   = lk Set.empty dflt found x
@@ -553,17 +549,17 @@
 lookupLiftCyc2 get lookup dflt found x
   = maybe dflt (\x -> lookupLiftCyc1 get lookup (found x) found x) $ lookup x
 
-{-# LINE 754 "src/ehc/Base/Common.chs" #-}
+{-# LINE 713 "src/ehc/Base/Common.chs" #-}
 lookupLiftCycMb1 :: (x -> Maybe UID) -> (UID -> Maybe x) -> x -> Maybe x
 lookupLiftCycMb1 get lookup x = lookupLiftCyc1 get lookup Nothing Just x
 
 lookupLiftCycMb2 :: (x -> Maybe UID) -> (UID -> Maybe x) -> UID -> Maybe x
 lookupLiftCycMb2 get lookup x = lookupLiftCyc2 get lookup Nothing Just x
 
-{-# LINE 766 "src/ehc/Base/Common.chs" #-}
+{-# LINE 725 "src/ehc/Base/Common.chs" #-}
 data Presence = Present | Absent deriving (Eq,Ord,Show)
 
-{-# LINE 798 "src/ehc/Base/Common.chs" #-}
+{-# LINE 757 "src/ehc/Base/Common.chs" #-}
 data AlwaysEq a = AlwaysEq { unAlwaysEq :: a }
 
 instance Eq (AlwaysEq a) where
@@ -582,12 +578,12 @@
   hashWithSalt salt _ = hashWithSalt salt (12345 :: Int) -- arbitarry, but constant
 
 
-{-# LINE 822 "src/ehc/Base/Common.chs" #-}
+{-# LINE 781 "src/ehc/Base/Common.chs" #-}
 type PkgName = String
 
 emptyPkgName = ""
 
-{-# LINE 832 "src/ehc/Base/Common.chs" #-}
+{-# LINE 791 "src/ehc/Base/Common.chs" #-}
 -- | How to do linking/packaging
 data LinkingStyle
   = LinkingStyle_None			-- ^ no linking (e.g. indicated by --compile-only flag)
@@ -596,46 +592,46 @@
   deriving (Eq,Ord,Enum,Bounded)
 
 
-{-# LINE 872 "src/ehc/Base/Common.chs" #-}
+{-# LINE 831 "src/ehc/Base/Common.chs" #-}
 metaLevTy, metaLevKi, metaLevSo :: MetaLev
 metaLevTy  = metaLevVal + 1
 metaLevKi  = metaLevTy  + 1
 metaLevSo  = metaLevKi  + 1
 
-{-# LINE 883 "src/ehc/Base/Common.chs" #-}
+{-# LINE 842 "src/ehc/Base/Common.chs" #-}
 -- | Use as variable id
 type VarId    = UID
 type VarIdS   = Set.Set UID
 
-{-# LINE 893 "src/ehc/Base/Common.chs" #-}
+{-# LINE 852 "src/ehc/Base/Common.chs" #-}
 uidHNm :: UID -> HsName
 uidHNm = mkHNm -- hsnFromString . show
 
-{-# LINE 898 "src/ehc/Base/Common.chs" #-}
+{-# LINE 857 "src/ehc/Base/Common.chs" #-}
 uidQualHNm :: HsName -> UID -> HsName
 uidQualHNm modnm uid =
                         hsnPrefixQual modnm $
                         uidHNm uid
 
 
-{-# LINE 916 "src/ehc/Base/Common.chs" #-}
+{-# LINE 875 "src/ehc/Base/Common.chs" #-}
 data SrcConst
   = SrcConst_Int    Integer
   | SrcConst_Char   Char
   | SrcConst_Ratio  Integer Integer
   deriving (Eq,Show,Ord)
 
-{-# LINE 928 "src/ehc/Base/Common.chs" #-}
+{-# LINE 887 "src/ehc/Base/Common.chs" #-}
 fmap2Tuple :: Functor f => snd -> f x -> f (x,snd)
 fmap2Tuple snd = fmap (\x -> (x,snd))
 
-{-# LINE 937 "src/ehc/Base/Common.chs" #-}
+{-# LINE 896 "src/ehc/Base/Common.chs" #-}
 -- | Shorthand for if
 if' :: Bool -> a -> a -> a
 if' c t e = if c then t else e
 {-# INLINE if' #-}
 
-{-# LINE 948 "src/ehc/Base/Common.chs" #-}
+{-# LINE 907 "src/ehc/Base/Common.chs" #-}
 -- | Variation of `when` where Boolean condition is computed in a monad
 whenM :: Monad m => m Bool -> m () -> m ()
 whenM c m = do
@@ -663,7 +659,7 @@
 {-# INLINE ifM' #-}
 
 
-{-# LINE 977 "src/ehc/Base/Common.chs" #-}
+{-# LINE 936 "src/ehc/Base/Common.chs" #-}
 -- | Variation of `maybe` where the maybe is computed in a monad. See also `maybeM'`
 maybeM :: Monad m => m (Maybe a) -> m b -> (a -> m b) -> m b
 maybeM mmaybe mnothing mjust = mmaybe >>= maybe mnothing mjust
@@ -704,7 +700,7 @@
 unlessJustM :: Monad m => m (Maybe a) -> m () -> m ()
 unlessJustM mmaybe = maybeM' mmaybe (\_ -> return ())
 
-{-# LINE 1023 "src/ehc/Base/Common.chs" #-}
+{-# LINE 982 "src/ehc/Base/Common.chs" #-}
 genNmMap :: Ord x => (String->s) -> [x] -> Map.Map x s -> (Map.Map x s, [s])
 genNmMap mk xs m
   = (m',reverse ns)
@@ -719,7 +715,7 @@
         ch x | x < 26    = [chr $ ord 'a' + x]
              | otherwise = let (q,r) = x `quotRem` 26 in ch q ++ ch r
 
-{-# LINE 1043 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1002 "src/ehc/Base/Common.chs" #-}
 data MaybeOk a
   = JustOk  a
   | NotOk   String
@@ -741,7 +737,7 @@
 maybeOk _ j (JustOk x) = j x
 maybeOk n _ (NotOk  x) = n x
 
-{-# LINE 1070 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1029 "src/ehc/Base/Common.chs" #-}
 -- | Abstract graph visit, over arbitrary structures
 graphVisit
   :: (Ord node)
@@ -761,7 +757,7 @@
                                      unvisited3          = unionUnvisited (newUnvisited `Set.difference` visited') unvisited2
                                  in  v ((visited',unvisited3),thr')
 
-{-# LINE 1095 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1054 "src/ehc/Base/Common.chs" #-}
 data KnownPrim
   =
     -- platform Int
@@ -800,17 +796,17 @@
   | KnownPrim_Mul64
   deriving (Show,Eq,Enum,Bounded)
 
-{-# LINE 1141 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1100 "src/ehc/Base/Common.chs" #-}
 instance PP KnownPrim where
   pp = pp . show
 
-{-# LINE 1146 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1105 "src/ehc/Base/Common.chs" #-}
 allKnownPrimMp :: Map.Map String KnownPrim
 allKnownPrimMp
   = Map.fromList [ (drop prefixLen $ show t, t) | t <- [ minBound .. maxBound ] ]
   where prefixLen = length "KnownPrim_"
 
-{-# LINE 1161 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1120 "src/ehc/Base/Common.chs" #-}
 str2stMpWithOmitShow :: (Enum opt, Bounded opt, Eq opt) => (opt -> String) -> [opt] -> Map.Map String opt
 str2stMpWithOmitShow shw omits = Map.fromList [ (shw o, o) | o <- [minBound .. maxBound] \\ omits ]
 
@@ -826,10 +822,10 @@
 showStr2stMp :: Map.Map String opt -> String
 showStr2stMp = concat . intersperse " " . Map.keys
 
-{-# LINE 1182 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1141 "src/ehc/Base/Common.chs" #-}
 deriving instance Typeable KnownPrim
 
-{-# LINE 1186 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1145 "src/ehc/Base/Common.chs" #-}
 deriving instance Typeable VarUIDHsName
 
 deriving instance Typeable TagDataInfo
@@ -847,7 +843,7 @@
 deriving instance Typeable CLbl
 
 
-{-# LINE 1209 "src/ehc/Base/Common.chs" #-}
+{-# LINE 1168 "src/ehc/Base/Common.chs" #-}
 instance Binary KnownPrim where
   put = putEnum8
   get = getEnum8
@@ -860,26 +856,11 @@
   sput (TagDataInfo a b) = sput a >> sput b
   sget = liftM2 TagDataInfo sget sget
 
-instance Serialize VarUIDHsName where
-  sput (VarUIDHs_Name a b) = sputWord8 0 >> sput a >> sput b
-  sput (VarUIDHs_UID  a  ) = sputWord8 1 >> sput a
-  sput (VarUIDHs_Var  a  ) = sputWord8 2 >> sput a
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM2 VarUIDHs_Name sget sget
-              1 -> liftM  VarUIDHs_UID  sget
-              2 -> liftM  VarUIDHs_Var  sget
-
-instance Serialize CLbl where
-  sput (CLbl_Nm   a  ) = sputWord8 0 >> sput a
-  sput (CLbl_Tag  a  ) = sputWord8 1 >> sput a
-  sput (CLbl_None    ) = sputWord8 2
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM  CLbl_Nm 	sget
-              1 -> liftM  CLbl_Tag  sget
-              2 -> return CLbl_None
+{-# LINE 1182 "src/ehc/Base/Common.chs" #-}
+instance Serialize VarUIDHsName
+instance Serialize CLbl
 
+{-# LINE 1209 "src/ehc/Base/Common.chs" #-}
 instance Binary Fixity where
   put = putEnum8
   get = getEnum8
diff --git a/src/UHC/Light/Compiler/Base/FileSearchLocation.hs b/src/UHC/Light/Compiler/Base/FileSearchLocation.hs
--- a/src/UHC/Light/Compiler/Base/FileSearchLocation.hs
+++ b/src/UHC/Light/Compiler/Base/FileSearchLocation.hs
@@ -27,7 +27,6 @@
 import UHC.Light.Compiler.Base.Target
 import qualified UHC.Light.Compiler.ConfigInstall as Cfg
 import UHC.Util.Hashable
-import GHC.Generics
 
 
 
diff --git a/src/UHC/Light/Compiler/Base/HsName.hs b/src/UHC/Light/Compiler/Base/HsName.hs
--- a/src/UHC/Light/Compiler/Base/HsName.hs
+++ b/src/UHC/Light/Compiler/Base/HsName.hs
@@ -47,8 +47,7 @@
 import UHC.Util.Pretty
 import Data.List
 import Data.Typeable (Typeable)
-import Data.Generics (Data)
-import GHC.Generics
+import GHC.Generics (Generic)
 import UHC.Light.Compiler.Base.UID
 import UU.Scanner.Position
 import UHC.Util.Hashable
@@ -73,7 +72,7 @@
 
 
 
-{-# LINE 63 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 60 "src/ehc/Base/HsName.chs" #-}
 -- | A HsNameUniqifier represents the 'type' of unification
 data HsNameUniqifier
   = HsNameUniqifier_Blank               -- just a new identifier, with an empty show
@@ -133,7 +132,7 @@
   show HsNameUniqifier_FFECoerced           = "FFC"
   show HsNameUniqifier_CoreAPI              = "CRA"
 
-{-# LINE 154 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 151 "src/ehc/Base/HsName.chs" #-}
 -- | A HsNameUnique represents the optional additional info to make the uniqification even more unique
 data HsNameUnique
   = HsNameUnique_None
@@ -153,7 +152,7 @@
 instance Show HsNameUnique where
   show = showHsNameUnique hsnShowUID id
 
-{-# LINE 175 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 172 "src/ehc/Base/HsName.chs" #-}
 type HsNameUniqifierMp = Map.Map HsNameUniqifier [HsNameUnique]
 
 emptyHsNameUniqifierMp :: HsNameUniqifierMp
@@ -173,14 +172,14 @@
 showHsNameUniqifierMp :: String -> HsNameUniqifierMp -> [String]
 showHsNameUniqifierMp = showHsNameUniqifierMp' True
 
-{-# LINE 210 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 207 "src/ehc/Base/HsName.chs" #-}
 uniqifierMpAdd :: HsNameUniqifier -> HsNameUnique -> HsNameUniqifierMp -> HsNameUniqifierMp
 uniqifierMpAdd ufier u m = Map.unionWith (++) (Map.singleton ufier [u]) m
 
 uniqifierMpUnion :: HsNameUniqifierMp -> HsNameUniqifierMp -> HsNameUniqifierMp
 uniqifierMpUnion = Map.unionWith (++)
 
-{-# LINE 222 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 219 "src/ehc/Base/HsName.chs" #-}
 hsnUniqify' :: HsNameUniqifier -> HsNameUnique -> HsName -> HsName
 hsnUniqify' ufier u
   = mk
@@ -207,7 +206,7 @@
 hsnUniqifyEval :: HsName -> HsName
 hsnUniqifyEval = hsnUniqify HsNameUniqifier_Evaluated
 
-{-# LINE 250 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 247 "src/ehc/Base/HsName.chs" #-}
 -- | Remove uniqification, if present
 hsnStripUniqify :: HsName -> Maybe HsName
 hsnStripUniqify n@(HsName_Modf {hsnUniqifiers=us})
@@ -215,7 +214,7 @@
   | otherwise     = Just $ n {hsnUniqifiers = Map.empty}
 hsnStripUniqify _ = Nothing
 
-{-# LINE 259 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 256 "src/ehc/Base/HsName.chs" #-}
 -- | Simplify name into list of simplifications of increasing complexity, all strictly simpler than the one given. [] therefore means no simplifications exist
 hsnSimplifications :: HsName -> [HsName]
 hsnSimplifications n@(HsName_Modf {}) = case hsnStripUniqify n of
@@ -225,7 +224,7 @@
 -- hsnSimplifications n@(HsName_Base {}          ) = [] -- [n]
 hsnSimplifications _                            = []
 
-{-# LINE 274 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 271 "src/ehc/Base/HsName.chs" #-}
 hsnHashWithSalt :: Int -> HsName -> Int
 hsnHashWithSalt salt (HsName_Base s      ) = hashWithSalt salt s
 hsnHashWithSalt salt (HsName_UID  i      ) = hashWithSalt salt i
@@ -254,14 +253,14 @@
   hashWithSalt salt u = hashWithSalt salt (fromEnum u)
 -}
 
-{-# LINE 308 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 305 "src/ehc/Base/HsName.chs" #-}
 -- | Fixate hash
 hsnFixateHash :: HsName -> HsName
 hsnFixateHash n@(HsName_Modf _ _ _ _) = n {hsnHash = hsnHashWithSalt 17 n}
 hsnFixateHash n                       = n
 {-# INLINE hsnFixateHash #-}
 
-{-# LINE 322 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 319 "src/ehc/Base/HsName.chs" #-}
 -- | Haskell name representation, exports of constructors only intented for internal use
 data HsName
   =   HsName_Base
@@ -284,11 +283,11 @@
 
 -- instance Hashable HsName
 
-{-# LINE 350 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 347 "src/ehc/Base/HsName.chs" #-}
 hsnEmpty :: HsName
 hsnEmpty = mkHNm ""
 
-{-# LINE 364 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 361 "src/ehc/Base/HsName.chs" #-}
 -- | Is HsName a HsName_Pos?
 hsnMbPos :: HsName -> Maybe Int
 hsnMbPos (HsName_Pos p) = Just p
@@ -298,7 +297,7 @@
 hsnIsPos = isJust . hsnMbPos
 {-# INLINE hsnIsPos #-}
 
-{-# LINE 375 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 372 "src/ehc/Base/HsName.chs" #-}
 -- | Is HsName a HsName_Pos?
 hsnMbNr :: HsName -> Maybe (Int,OrigName)
 hsnMbNr (HsName_Nr i o) = Just (i,o)
@@ -308,32 +307,32 @@
 hsnIsNr = isJust . hsnMbNr
 {-# INLINE hsnIsNr #-}
 
-{-# LINE 386 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 383 "src/ehc/Base/HsName.chs" #-}
 -- | Smart constructor for HsName_Modf
 hsnMkModf :: [String] -> HsName -> HsNameUniqifierMp -> HsName
 -- hsnMkModf q b u = hsnFixateHash $ HsName_Modf 0 q b u
 hsnMkModf q b u = hsnFixateHash $ either (\(_,n) -> n {hsnQualifiers = q, hsnUniqifiers = hsnUniqifiers n `uniqifierMpUnion` u}) (\b -> HsName_Modf 0 q b u) $ hsnCanonicSplit b
 {-# INLINE hsnMkModf #-}
 
-{-# LINE 398 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 395 "src/ehc/Base/HsName.chs" #-}
 -- | Smart constructor for HsName_Nr
 hsnMkNr :: Int -> OrigName -> HsName
 hsnMkNr = HsName_Nr
 {-# INLINE hsnMkNr #-}
 
-{-# LINE 413 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 410 "src/ehc/Base/HsName.chs" #-}
 -- | Just lift a string to the base HsName variant
 mkHNmBase :: String -> HsName
 mkHNmBase s = hsnMkModf [] (HsName_Base s) Map.empty
 
-{-# LINE 423 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 420 "src/ehc/Base/HsName.chs" #-}
 -- | Eliminate alternative internal representations
 hsnEnsureIsBase :: HsName -> HsName
 hsnEnsureIsBase n@(HsName_UID _) = mkHNm $ show n
 hsnEnsureIsBase   (HsName_Pos i) = mkHNm $ show i
 hsnEnsureIsBase n                = n
 
-{-# LINE 433 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 430 "src/ehc/Base/HsName.chs" #-}
 -- | unpack a HsName into qualifiers + base string + repack function
 hsnBaseUnpack' :: HsName -> Maybe ([String],String,[String] -> String -> HsName)
 hsnBaseUnpack' (HsName_Base s    ) = Just ([],s,\_ s -> HsName_Base s)
@@ -346,7 +345,7 @@
 hsnBaseUnpack (HsName_Modf _ q b u) = fmap (\(bs,mk) -> (bs, \s -> hsnMkModf q (mk s) u)) (hsnBaseUnpack b)
 hsnBaseUnpack _                     = Nothing
 
-{-# LINE 451 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 448 "src/ehc/Base/HsName.chs" #-}
 -- | If name is a HsName_Base after some unpacking, return the base string, without qualifiers, without uniqifiers
 hsnMbBaseString :: HsName -> Maybe String
 hsnMbBaseString = fmap fst . hsnBaseUnpack
@@ -361,23 +360,23 @@
 hsnBaseString = maybe "??" id . hsnMbBaseString
 
 
-{-# LINE 467 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 464 "src/ehc/Base/HsName.chs" #-}
 -- | Just lift a int to the int HsName variant
 mkHNmPos :: Int -> HsName
 mkHNmPos s = hsnMkModf [] (HsName_Pos s) Map.empty
 
-{-# LINE 477 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 474 "src/ehc/Base/HsName.chs" #-}
 -- | Compare, ignoring hash
 cmpHsNameOnNm :: HsName -> HsName -> Ordering
 cmpHsNameOnNm (HsName_Modf _ q1 b1 u1) (HsName_Modf _ q2 b2 u2) = compare (HsName_Modf 0 q1 b1 u1)  (HsName_Modf 0 q2 b2 u2)
 cmpHsNameOnNm n1                       n2                       = compare n1                        n2
 
-{-# LINE 492 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 489 "src/ehc/Base/HsName.chs" #-}
 hsnFromString :: String -> HsName
 hsnFromString = mkHNmBase
 {-# INLINE hsnFromString #-}
 
-{-# LINE 503 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 500 "src/ehc/Base/HsName.chs" #-}
 data OrigName
   = OrigNone
   | OrigLocal  HsName
@@ -387,11 +386,11 @@
 
 instance Hashable OrigName
 
-{-# LINE 514 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 511 "src/ehc/Base/HsName.chs" #-}
 instance PP HsName where
   pp h = pp (show h)
 
-{-# LINE 520 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 517 "src/ehc/Base/HsName.chs" #-}
 -- | Parameterizable show of HsName when used from within the Show instance for HsName, or for a parseable representation used by (e.g.) Core pretty printing
 hsnShow' :: (UID -> String) -> (String -> String) -> (String -> String) -> String -> String -> HsName -> String
 hsnShow' shwu shws brk qsep usep n
@@ -413,25 +412,25 @@
 
 hsnShowUID i = 'u' : show i
 
-{-# LINE 545 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 542 "src/ehc/Base/HsName.chs" #-}
 instance Show HsName where
   show = hsnShow "." "_@"
 
-{-# LINE 555 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 552 "src/ehc/Base/HsName.chs" #-}
 -- | A HsName is either a complex/aggregrate name or a base case
 hsnCanonicSplit :: HsName -> Either ([String],HsName) HsName
 hsnCanonicSplit n@(HsName_Modf _ qs _ _) = Left $ (qs, hsnFixateHash (n {hsnQualifiers = []}))
 hsnCanonicSplit n                        = Right n
 
-{-# LINE 564 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 561 "src/ehc/Base/HsName.chs" #-}
 hsnToList :: HsName -> [HsName]
 hsnToList n = either (\(qs,b) -> map mkHNmBase qs ++ [b]) (:[]) (hsnCanonicSplit n)
 
-{-# LINE 569 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 566 "src/ehc/Base/HsName.chs" #-}
 hsnInitLast :: HsName -> ([HsName],HsName)
 hsnInitLast n = either (\(qs,b) -> (map mkHNmBase qs, b)) (\x -> ([],x)) (hsnCanonicSplit n)
 
-{-# LINE 574 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 571 "src/ehc/Base/HsName.chs" #-}
 hsnPrefix                           ::  String -> HsName -> HsName
 hsnPrefix   p   hsn
   = maybe (mkHNmBase $ p ++ show hsn) (\(s,mk) -> mk $ p ++ s) $ hsnBaseUnpack hsn
@@ -443,12 +442,12 @@
 mkHNmPrefix :: HSNM x => String -> x -> HsName
 mkHNmPrefix p = hsnPrefix p . mkHNm
 
-{-# LINE 587 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 584 "src/ehc/Base/HsName.chs" #-}
 stringAlphanumeric :: String -> String
 stringAlphanumeric s
   = concat (map (charAlphanumeric) s)
 
-{-# LINE 600 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 597 "src/ehc/Base/HsName.chs" #-}
 charAlphanumeric :: Char -> String
 charAlphanumeric '\'' = "prime"
 charAlphanumeric ':' = "colon"
@@ -478,7 +477,7 @@
 charAlphanumeric ')' = "close"
 charAlphanumeric  c  = [c]
 
-{-# LINE 633 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 630 "src/ehc/Base/HsName.chs" #-}
 dontStartWithDigit :: String -> String
 dontStartWithDigit xs@(a:_) | isDigit a || a=='_' = "y"++xs
                             | otherwise           = xs
@@ -498,7 +497,7 @@
 hsnShowAlphanumeric (HsName_Modf _ q b u)         = concat $ intersperse "_" $ q ++ [hsnShowAlphanumeric b] ++ map stringAlphanumeric (showHsNameUniqifierMp "_" u)
 -- hsnShowAlphanumeric n                           = concat $ intersperse "_" $ map hsnShowAlphanumeric $ hsnToList n
 
-{-# LINE 657 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 654 "src/ehc/Base/HsName.chs" #-}
 hsnToFPath :: HsName -> FPath
 hsnToFPath n
   = mkFPathFromDirsFile qs b
@@ -507,16 +506,16 @@
 instance FPATH HsName where
   mkFPath = hsnToFPath
 
-{-# LINE 668 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 665 "src/ehc/Base/HsName.chs" #-}
 hsnConcat                           ::  HsName -> HsName -> HsName
 hsnConcat       h1    h2            =   hsnFromString (show h1 ++ show h2)
 
-{-# LINE 677 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 674 "src/ehc/Base/HsName.chs" #-}
 -- compare for row labels, lexicographic ordering (currently)
 rowLabCmp :: HsName -> HsName -> Ordering
 rowLabCmp = cmpHsNameOnNm
 
-{-# LINE 687 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 684 "src/ehc/Base/HsName.chs" #-}
 -- qualifier (i.e. module name) and qualified part of name
 hsnSplitQualify :: HsName -> (Maybe HsName,HsName)
 hsnSplitQualify n
@@ -542,7 +541,7 @@
       (Just q ,n) -> hsnPrefixQual q (f n)
 -}
 
-{-# LINE 714 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 711 "src/ehc/Base/HsName.chs" #-}
 -- qualifier (i.e. module name) of name
 hsnQualifier :: HsName -> Maybe HsName
 hsnQualifier = fst . hsnSplitQualify
@@ -555,7 +554,7 @@
 hsnIsQual :: HsName -> Bool
 hsnIsQual = isJust . hsnQualifier
 
-{-# LINE 740 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 737 "src/ehc/Base/HsName.chs" #-}
 hsnMapQual :: (HsName -> HsName) -> HsName -> HsName
 hsnMapQual f qn
   = case hsnSplitQualify qn of
@@ -566,7 +565,7 @@
 hsnSetLevQual 0 m n = hsnSetQual m n
 hsnSetLevQual _ _ n = n
 
-{-# LINE 756 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 753 "src/ehc/Base/HsName.chs" #-}
 hsnFixUniqifiers' :: Bool -> String -> HsName -> HsName
 hsnFixUniqifiers' showlen sep (HsName_Modf _ qs n us) = hsnMkModf qs (hsnSuffix n (concat $ showHsNameUniqifierMp' showlen sep us)) Map.empty
 hsnFixUniqifiers' _       _   n                       = n
@@ -577,19 +576,19 @@
 hsnJavalikeFixUniqifiers :: HsName -> HsName
 hsnJavalikeFixUniqifiers = hsnFixUniqifiers' False ""
 
-{-# LINE 772 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 769 "src/ehc/Base/HsName.chs" #-}
 hsnStripUniqifiers :: HsName -> HsName
 hsnStripUniqifiers (HsName_Modf _ qs n us) = hsnMkModf qs n emptyHsNameUniqifierMp
 hsnStripUniqifiers n                       = n
 
-{-# LINE 782 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 779 "src/ehc/Base/HsName.chs" #-}
 hsnQualUniqify :: HsName -> HsName -> HsName
 hsnQualUniqify modNm n
   = if hsnIsQual n
     then n
     else hsnSetQual modNm n
 
-{-# LINE 794 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 791 "src/ehc/Base/HsName.chs" #-}
 class HSNM a where
   mkHNm :: a -> HsName
 
@@ -600,17 +599,17 @@
   mkHNm = mkHNm . show
 
 
-{-# LINE 806 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 803 "src/ehc/Base/HsName.chs" #-}
 instance HSNM UID where
   mkHNm = HsName_UID
   -- mkHNm x = hsnFromString ('_' : show x)
 
-{-# LINE 817 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 814 "src/ehc/Base/HsName.chs" #-}
 instance HSNM String where
   mkHNm s
     = mkHNm $ map hsnFromString $ splitForQualified s
 
-{-# LINE 823 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 820 "src/ehc/Base/HsName.chs" #-}
 instance HSNM ([HsName],HsName) where
   mkHNm (l,n) = mkHNm (l ++ [n])
 
@@ -623,28 +622,28 @@
                                 n                       -> hsnMkModf qs n Map.empty
                            where qs = catMaybes $ map hsnMbBaseString i
 
-{-# LINE 846 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 843 "src/ehc/Base/HsName.chs" #-}
 instance Position HsName where
   line   _ = (-1)
   column _ = (-1)
   file   _ = ""
 
-{-# LINE 857 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 854 "src/ehc/Base/HsName.chs" #-}
 deriving instance Typeable HsName
 
 deriving instance Typeable IdOccKind
 
 deriving instance Typeable IdOcc
 
-{-# LINE 865 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 862 "src/ehc/Base/HsName.chs" #-}
 deriving instance Typeable HsNameUniqifier
 
 deriving instance Typeable HsNameUnique
 
-{-# LINE 871 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 868 "src/ehc/Base/HsName.chs" #-}
 deriving instance Typeable OrigName
 
-{-# LINE 879 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 876 "src/ehc/Base/HsName.chs" #-}
 instance Binary HsNameUniqifier where
   put = putEnum8
   get = getEnum8
@@ -711,7 +710,7 @@
   sputNested = sputPlain
   sgetNested = sgetPlain
 
-{-# LINE 951 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 948 "src/ehc/Base/HsName.chs" #-}
 data IdOccKind
   = IdOcc_Val
   | IdOcc_Pat
@@ -726,7 +725,7 @@
   | IdOcc_Fusion
   deriving (Eq,Ord,Enum)
 
-{-# LINE 977 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 974 "src/ehc/Base/HsName.chs" #-}
 -- intended for parsing
 instance Show IdOccKind where
   show IdOcc_Val      = "Value"
@@ -741,21 +740,21 @@
   show IdOcc_Data     = "Data"
   show IdOcc_Fusion   = "Fusion"
 
-{-# LINE 1003 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1000 "src/ehc/Base/HsName.chs" #-}
 -- intended for parsing
 instance PP IdOccKind where
   pp = text . show
 
-{-# LINE 1009 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1006 "src/ehc/Base/HsName.chs" #-}
 data IdOcc
   = IdOcc { ioccNm :: !HsName, ioccKind :: !IdOccKind }
   deriving (Show,Eq,Ord)
 
 
-{-# LINE 1020 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1017 "src/ehc/Base/HsName.chs" #-}
 type HsNameS = Set.Set HsName
 
-{-# LINE 1028 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1025 "src/ehc/Base/HsName.chs" #-}
 -- ensure a name valid for backends which are more restrictive in their allowed identifier character set
 hsnSafeJavaLike :: HsName -> HsName
 hsnSafeJavaLike
@@ -766,17 +765,17 @@
         first s@(c:_) | isDigit c = '_' : s
         first s                   =       s
 
-{-# LINE 1055 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1052 "src/ehc/Base/HsName.chs" #-}
 type FvS = HsNameS
 type FvSMp = Map.Map HsName FvS
 
-{-# LINE 1064 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1061 "src/ehc/Base/HsName.chs" #-}
 type HsNameMp = Map.Map HsName HsName
 
 hsnRepl :: HsNameMp -> HsName -> HsName
 hsnRepl m n = Map.findWithDefault n n m
 
-{-# LINE 1075 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1072 "src/ehc/Base/HsName.chs" #-}
 data RPatNm
   = RPatNmOrig {rpatNmNm :: !HsName}
   | RPatNmUniq {rpatNmNm :: !HsName}
@@ -792,16 +791,16 @@
   pp (RPatNmOrig n) = n >|< "(O)"
   pp (RPatNmUniq n) = n >|< "(U)"
 
-{-# LINE 1092 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1089 "src/ehc/Base/HsName.chs" #-}
 rpatNmIsOrig :: RPatNm -> Bool
 rpatNmIsOrig (RPatNmOrig _) = True
 rpatNmIsOrig _              = False
 
-{-# LINE 1102 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1099 "src/ehc/Base/HsName.chs" #-}
 hsnUnknown ::  HsName
 hsnUnknown =   hsnFromString "??"
 
-{-# LINE 1111 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1108 "src/ehc/Base/HsName.chs" #-}
 
 data Track
   = TrackNone
@@ -811,8 +810,10 @@
   | TrackVarApply HsName [Track]
   deriving (Eq, Ord, Show)
 
+instance PP Track where
+  pp = pp . show
 
-{-# LINE 1123 "src/ehc/Base/HsName.chs" #-}
+{-# LINE 1122 "src/ehc/Base/HsName.chs" #-}
 
 instance Serialize Track where
   sput (TrackNone             ) = sputWord8 0
diff --git a/src/UHC/Light/Compiler/Base/Optimize.hs b/src/UHC/Light/Compiler/Base/Optimize.hs
--- a/src/UHC/Light/Compiler/Base/Optimize.hs
+++ b/src/UHC/Light/Compiler/Base/Optimize.hs
@@ -15,7 +15,6 @@
 , OptimizationLevelMp
 , optimizationLevelMp )
 where
-import GHC.Generics
 import UHC.Light.Compiler.Base.Common
 import qualified Data.Set as Set
 import qualified Data.Map as Map
diff --git a/src/UHC/Light/Compiler/Base/Pragma.hs b/src/UHC/Light/Compiler/Base/Pragma.hs
--- a/src/UHC/Light/Compiler/Base/Pragma.hs
+++ b/src/UHC/Light/Compiler/Base/Pragma.hs
@@ -42,7 +42,7 @@
   | Pragma_ExcludeIfTarget
       { pragmaExcludeTargets   		:: [Target]
       }
-  deriving (Eq,Ord,Show,Typeable)
+  deriving (Eq,Ord,Show,Typeable,Generic)
 
 
 {-# LINE 63 "src/ehc/Base/Pragma.chs" #-}
@@ -89,38 +89,5 @@
 pragmaInvolvesCmdLine _                     = False
 
 {-# LINE 117 "src/ehc/Base/Pragma.chs" #-}
-instance Serialize Pragma where
-  sput (Pragma_NoImplicitPrelude        ) = sputWord8 0
-  sput (Pragma_CPP                      ) = sputWord8 1
-  sput (Pragma_Derivable  a b c         ) = sputWord8 2 >> sput a >> sput b >> sput c
-  sput (Pragma_NoGenericDeriving        ) = sputWord8 3
-  sput (Pragma_GenericDeriving          ) = sputWord8 4
-  sput (Pragma_ExtensibleRecords        ) = sputWord8 5
-  sput (Pragma_ExcludeIfTarget a        ) = sputWord8 6 >> sput a
-  sput (Pragma_Fusion        			) = sputWord8 7
-  sput (Pragma_NoBangPatterns           ) = sputWord8 8
-  sput (Pragma_BangPatterns             ) = sputWord8 9
-  sput (Pragma_OptionsUHC      a        ) = sputWord8 10 >> sput a
-  sput (Pragma_NoPolyKinds       		) = sputWord8 11
-  sput (Pragma_PolyKinds         		) = sputWord8 12
-  sput (Pragma_NoOverloadedStrings		) = sputWord8 13
-  sput (Pragma_OverloadedStrings 		) = sputWord8 14
-  sget = do t <- sgetWord8
-            case t of
-              0  -> return Pragma_NoImplicitPrelude
-              1  -> return Pragma_CPP
-              2  -> liftM3 Pragma_Derivable              sget sget sget
-              3  -> return Pragma_NoGenericDeriving
-              4  -> return Pragma_GenericDeriving
-              5  -> return Pragma_ExtensibleRecords
-              6  -> liftM  Pragma_ExcludeIfTarget        sget
-              7  -> return Pragma_Fusion
-              8  -> return Pragma_NoBangPatterns
-              9  -> return Pragma_BangPatterns
-              10 -> liftM  Pragma_OptionsUHC             sget
-              11 -> return Pragma_NoPolyKinds
-              12 -> return Pragma_PolyKinds
-              13 -> return Pragma_NoOverloadedStrings
-              14 -> return Pragma_OverloadedStrings
-
+instance Serialize Pragma
 
diff --git a/src/UHC/Light/Compiler/Base/Trace.hs b/src/UHC/Light/Compiler/Base/Trace.hs
--- a/src/UHC/Light/Compiler/Base/Trace.hs
+++ b/src/UHC/Light/Compiler/Base/Trace.hs
@@ -2,12 +2,11 @@
 ( (><)
 , TraceOn (..), allTraceOnMp
 , TrPP, trppIsEmpty, trppEmpty
-, trPPOnIO, trPP, trOnPP, trOn )
+, trPPOnIO, trPP, trOnPP, trOn
+, ppNestTrPP, ppTrNm )
 where
 import UHC.Util.Pretty
 import UHC.Util.Utils
-import GHC.Generics (Generic)
-import Data.Typeable
 import Control.Monad
 import Control.Monad.IO.Class
 import qualified Data.Map as Map
@@ -86,4 +85,24 @@
 trOn :: (Monad m, MonadIO m) => (TraceOn -> Bool) -> TraceOn -> [String] -> m ()
 trOn onTr ton ms = trOnPP onTr ton $ map pp ms
 {-# INLINE trOn #-}
+
+{-# LINE 111 "src/ehc/Base/Trace.chs" #-}
+-- | PP AST in a nested fashion with tracing info
+ppNestTrPP
+  :: PP a
+  => [a]		-- ^ names of node type, child
+  -> [PP_Doc]	-- ^ attribute info
+  -> [PP_Doc]	-- ^ children
+  -> TrPP		-- ^ trace info
+  -> PP_Doc
+ppNestTrPP nms attrs ps trpp
+  = ppListSep "" "" "_" nms
+    >#< (   (if null attrs then empty else ppSpaced attrs)
+        >-< trpp
+        )
+    >-< indent 2 (vlist ps)
+
+-- | PP for a name
+ppTrNm :: HsName -> PP_Doc
+ppTrNm = text . show . show
 
diff --git a/src/UHC/Light/Compiler/Base/UID.hs b/src/UHC/Light/Compiler/Base/UID.hs
--- a/src/UHC/Light/Compiler/Base/UID.hs
+++ b/src/UHC/Light/Compiler/Base/UID.hs
@@ -19,8 +19,7 @@
 import Control.Monad.State
 import Control.Monad.Identity
 import Data.Typeable (Typeable)
-import Data.Generics (Data)
-import GHC.Generics
+import GHC.Generics (Generic)
 import Control.Monad
 import UHC.Util.Binary as B
 import UHC.Util.Serialize
@@ -29,7 +28,7 @@
 
 
 
-{-# LINE 41 "src/ehc/Base/UID.chs" #-}
+{-# LINE 38 "src/ehc/Base/UID.chs" #-}
 type FreshUidT m   = StateT UID m
 type FreshUid      = FreshUidT Identity
 
@@ -50,7 +49,7 @@
 evalFreshUid f u = fst $ runIdentity $ runFreshUidT f u
 {-# INLINE evalFreshUid #-}
 
-{-# LINE 63 "src/ehc/Base/UID.chs" #-}
+{-# LINE 60 "src/ehc/Base/UID.chs" #-}
 class Monad m => MonadFreshUID m where
   -- | Fresh single UID
   freshUID :: m UID
@@ -68,51 +67,51 @@
   freshInfUID = state $ \x -> (uidChild x, uidNext x)
   {-# INLINE freshInfUID #-}
 
-{-# LINE 87 "src/ehc/Base/UID.chs" #-}
+{-# LINE 84 "src/ehc/Base/UID.chs" #-}
 data UID = UID { uidHash :: !Int, uidInts :: ![Int] }
   deriving (Eq,Ord,Generic)
 
-{-# LINE 96 "src/ehc/Base/UID.chs" #-}
+{-# LINE 93 "src/ehc/Base/UID.chs" #-}
 mkUID :: [Int] -> UID
 mkUID is = UID (hash is) is
 
-{-# LINE 105 "src/ehc/Base/UID.chs" #-}
+{-# LINE 102 "src/ehc/Base/UID.chs" #-}
 type UIDL = [UID]
 
-{-# LINE 109 "src/ehc/Base/UID.chs" #-}
+{-# LINE 106 "src/ehc/Base/UID.chs" #-}
 type UIDS = Set.Set UID
 
-{-# LINE 113 "src/ehc/Base/UID.chs" #-}
+{-# LINE 110 "src/ehc/Base/UID.chs" #-}
 instance Show UID where
   show uid = concat . intersperse "_" . map show . reverse $ uidInts uid
 
-{-# LINE 118 "src/ehc/Base/UID.chs" #-}
+{-# LINE 115 "src/ehc/Base/UID.chs" #-}
 instance Hashable UID where
   hashWithSalt salt (UID h _) = salt `hashWithSalt` h
 
-{-# LINE 127 "src/ehc/Base/UID.chs" #-}
+{-# LINE 124 "src/ehc/Base/UID.chs" #-}
 uidNext :: UID -> UID
 uidNext (UID _ (n:ns)) = mkUID (n+1:ns)
 
 uidChild :: UID -> UID
 uidChild (UID _ ns) = mkUID (0:ns)
 
-{-# LINE 143 "src/ehc/Base/UID.chs" #-}
+{-# LINE 140 "src/ehc/Base/UID.chs" #-}
 mkNewLevUID :: UID -> (UID,UID)
 mkNewLevUID u = (uidNext u, uidChild u)
 
-{-# LINE 148 "src/ehc/Base/UID.chs" #-}
+{-# LINE 145 "src/ehc/Base/UID.chs" #-}
 uidFromInt :: Int -> UID
 uidFromInt i = mkUID [i]
 
-{-# LINE 153 "src/ehc/Base/UID.chs" #-}
+{-# LINE 150 "src/ehc/Base/UID.chs" #-}
 uidStart :: UID
 uidStart = uidFromInt 0
 
 uidUnused :: UID
 uidUnused = uidFromInt (-1)
 
-{-# LINE 161 "src/ehc/Base/UID.chs" #-}
+{-# LINE 158 "src/ehc/Base/UID.chs" #-}
 mkNewLevUID2 u = let { (u',u1)          = mkNewLevUID   u; (u'',u2)          = mkNewLevUID   u'} in (u'',u1,u2)
 mkNewLevUID3 u = let { (u',u1,u2)       = mkNewLevUID2  u; (u'',u3)          = mkNewLevUID   u'} in (u'',u1,u2,u3)
 mkNewLevUID4 u = let { (u',u1,u2)       = mkNewLevUID2  u; (u'',u3,u4)       = mkNewLevUID2  u'} in (u'',u1,u2,u3,u4)
@@ -145,7 +144,7 @@
 instance PP UID where
   pp = text . show
 
-{-# LINE 195 "src/ehc/Base/UID.chs" #-}
+{-# LINE 192 "src/ehc/Base/UID.chs" #-}
 -- | Inverse of pUID
 showUIDParseable :: UID -> String
 -- showUIDParseable uid = "%[" ++ (concat $ intersperse "/" $ map show $ uidInts uid) ++ "]"
@@ -155,25 +154,25 @@
 ppUIDParseable :: UID -> PP_Doc
 ppUIDParseable = pp . showUIDParseable
 
-{-# LINE 206 "src/ehc/Base/UID.chs" #-}
+{-# LINE 203 "src/ehc/Base/UID.chs" #-}
 mkInfNewLevUIDL :: UID -> [UID]
 mkInfNewLevUIDL = mkInfNewUIDL' mkNewLevUID
 
 mkNewLevUIDL :: Int -> UID -> [UID]
 mkNewLevUIDL = mkNewUIDL' mkNewLevUID
 
-{-# LINE 218 "src/ehc/Base/UID.chs" #-}
+{-# LINE 215 "src/ehc/Base/UID.chs" #-}
 -- | Simplifications obtained by omitting all but 1 of the Int's, then re-adding one by one, omitting the original
 uidSimplifications :: UID -> [UID]
 uidSimplifications = map (mkUID . reverse) . drop 1 . init . inits . reverse . uidInts
 
-{-# LINE 228 "src/ehc/Base/UID.chs" #-}
+{-# LINE 225 "src/ehc/Base/UID.chs" #-}
 nextUnique = mkNewLevUID
 
-{-# LINE 236 "src/ehc/Base/UID.chs" #-}
+{-# LINE 233 "src/ehc/Base/UID.chs" #-}
 deriving instance Typeable UID
 
-{-# LINE 253 "src/ehc/Base/UID.chs" #-}
+{-# LINE 250 "src/ehc/Base/UID.chs" #-}
 instance Binary UID where
   put (UID a b) = B.put a >> B.put b
   get = liftM2 UID B.get B.get
diff --git a/src/UHC/Light/Compiler/Base/UnderDev.hs b/src/UHC/Light/Compiler/Base/UnderDev.hs
--- a/src/UHC/Light/Compiler/Base/UnderDev.hs
+++ b/src/UHC/Light/Compiler/Base/UnderDev.hs
@@ -2,8 +2,6 @@
 ( UnderDev (..), allUnderDevMp )
 where
 import UHC.Util.Utils
-import GHC.Generics (Generic)
-import Data.Typeable
 import qualified Data.Map as Map
 import UHC.Light.Compiler.Base.Common
 
diff --git a/src/UHC/Light/Compiler/CHR/Constraint.hs b/src/UHC/Light/Compiler/CHR/Constraint.hs
--- a/src/UHC/Light/Compiler/CHR/Constraint.hs
+++ b/src/UHC/Light/Compiler/CHR/Constraint.hs
@@ -52,7 +52,7 @@
                     , cnstrFromPreds :: ![p]        -- the preds from which reduction was done
                     , cnstrVarMp :: VarMp           -- additional bindings for type (etc.) variables, i.e. improving substitution
                     }
-  deriving (Eq, Ord, Show)
+  deriving (Eq, Ord, Show, Generic)
 
 type Constraint = Constraint' CHRPredOcc RedHowAnnotation
 
@@ -164,18 +164,19 @@
   deriving
     ( Eq, Ord
     , Typeable
+    , Generic
     )
 
-{-# LINE 232 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 233 "src/ehc/CHR/Constraint.chs" #-}
 rhaMbId :: RedHowAnnotation -> Maybe UID
 rhaMbId (RedHow_ProveObl i _) = Just i
 rhaMbId _                     = Nothing
 
-{-# LINE 238 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 239 "src/ehc/CHR/Constraint.chs" #-}
 instance Show RedHowAnnotation where
   show = showPP . pp
 
-{-# LINE 243 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 244 "src/ehc/CHR/Constraint.chs" #-}
 instance PP RedHowAnnotation where
   pp (RedHow_ByInstance   s p sc)       =    "inst"   >#< {- ppParens (vm >#< "`varUpd`") >#< -} ppParensCommas [pp p, pp s, pp sc]
   pp (RedHow_BySuperClass s _ _ )       =    "super"  >#< s
@@ -185,14 +186,14 @@
   pp (RedHow_ByLabel      l o sc)       =    "label"  >#< l >|< "@" >|< o >|< sc
   pp (RedHow_Lambda       i   sc)       =    "lambda" >#< i >#< sc
 
-{-# LINE 271 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 272 "src/ehc/CHR/Constraint.chs" #-}
 data ByScopeRedHow
   = ByScopeRedHow_Prove							-- scope reduction based on Prove
   | ByScopeRedHow_Assume						-- scope reduction based on Assume
   | ByScopeRedHow_Other (AlwaysEq String)		-- other reason
   deriving
     ( Eq, Ord
-    , Typeable
+    , Typeable, Generic
     )
 
 -- equality plays no role ??
@@ -212,7 +213,7 @@
 instance PP ByScopeRedHow where
   pp = pp . show
 
-{-# LINE 305 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 306 "src/ehc/CHR/Constraint.chs" #-}
 -- | The trace of an unresolved predicate
 data UnresolvedTrace' p info
   = UnresolvedTrace_None									-- no trace required when all is resolved
@@ -244,12 +245,12 @@
   		   UnresolvedTrace_Fail 	p   us  -> p >|< ": FAIL" >-< indent 2 (vlist $ map pp us)
   		   UnresolvedTrace_Overlap 	p uss 	-> p >|< ": OVERLAP" >-< indent 2 (vlist $ map (\(i,u) -> i >-< indent 2 (vlist $ map pp u)) uss)
 
-{-# LINE 342 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 343 "src/ehc/CHR/Constraint.chs" #-}
 -- | Map from constraint to something
 type ConstraintMp'' p info x = Map.Map (Constraint' p info) [x]
 type ConstraintMp'         x = ConstraintMp'' CHRPredOcc RedHowAnnotation x
 
-{-# LINE 348 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 349 "src/ehc/CHR/Constraint.chs" #-}
 cnstrMpSingletonL :: Constraint -> [x] -> ConstraintMp' x
 cnstrMpSingletonL c xs = Map.singleton c xs
 
@@ -262,13 +263,13 @@
 cnstrMpMap :: (x -> y) -> ConstraintMp' x -> ConstraintMp' y
 cnstrMpMap f = Map.map (map f)
 
-{-# LINE 362 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 363 "src/ehc/CHR/Constraint.chs" #-}
 -- type ConstraintToInfoTraceMp' p info = ConstraintMp'' p info (info,[UnresolvedTrace' p info])
 
 -- | Map from constraint to info + trace
 type ConstraintToInfoTraceMp = ConstraintMp' (RedHowAnnotation,[UnresolvedTrace])
 
-{-# LINE 369 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 370 "src/ehc/CHR/Constraint.chs" #-}
 cnstrTraceMpFromList :: [(Constraint,(RedHowAnnotation,[UnresolvedTrace]))] -> ConstraintToInfoTraceMp
 cnstrTraceMpFromList = cnstrMpFromList
 
@@ -281,73 +282,39 @@
 cnstrTraceMpLiftTrace :: ConstraintToInfoMap -> ConstraintToInfoTraceMp
 cnstrTraceMpLiftTrace = cnstrMpMap (\x -> (x,[]))
 
-{-# LINE 383 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 384 "src/ehc/CHR/Constraint.chs" #-}
 -- type ConstraintToInfoMap'     p info = ConstraintMp'' p info info
 
 -- | Map from constraint to info
 type ConstraintToInfoMap = ConstraintMp' RedHowAnnotation
 
-{-# LINE 390 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 391 "src/ehc/CHR/Constraint.chs" #-}
 emptyCnstrMp :: ConstraintMp' x
 emptyCnstrMp = Map.empty
 
-{-# LINE 395 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 396 "src/ehc/CHR/Constraint.chs" #-}
 cnstrMpUnion :: ConstraintMp' x -> ConstraintMp' x -> ConstraintMp' x
 cnstrMpUnion = Map.unionWith (++)
 
 cnstrMpUnions :: [ConstraintMp' x] -> ConstraintMp' x
 cnstrMpUnions = Map.unionsWith (++)
 
-{-# LINE 407 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 408 "src/ehc/CHR/Constraint.chs" #-}
 instance IsConstraint (Constraint' p info) where
   cnstrRequiresSolve (Reduction {}) = False
   cnstrRequiresSolve _              = True
 
-{-# LINE 417 "src/ehc/CHR/Constraint.chs" #-}
+{-# LINE 418 "src/ehc/CHR/Constraint.chs" #-}
 instance (PP p, PP info) => PP (Constraint' p info) where
   pp (Prove     p     ) = "Prove"  >#< p
   pp (Assume    p     ) = "Assume" >#< p
   pp (Reduction {cnstrPred=p, cnstrInfo=i, cnstrFromPreds=ps})
                         = "Red"    >#< p >#< "<" >#< i >#< "<" >#< ppBracketsCommas ps
 
-{-# LINE 429 "src/ehc/CHR/Constraint.chs" #-}
-instance (Serialize p, Serialize i) => Serialize (Constraint' p i) where
-  sput (Prove     a      ) = sputWord8 0 >> sput a
-  sput (Assume    a      ) = sputWord8 1 >> sput a
-  sput (Reduction a b c d) = sputWord8 2 >> sput a >> sput b >> sput c >> sput d
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM  Prove     sget
-              1 -> liftM  Assume    sget
-              2 -> liftM4 Reduction sget sget sget sget
-
-{-# LINE 441 "src/ehc/CHR/Constraint.chs" #-}
-instance Serialize ByScopeRedHow where
-  sput (ByScopeRedHow_Prove          ) = sputWord8 0
-  sput (ByScopeRedHow_Assume         ) = sputWord8 1
-  sput (ByScopeRedHow_Other a        ) = sputWord8 2 >> sput a
-  sget = do
-    t <- sgetWord8
-    case t of
-      0 -> return ByScopeRedHow_Prove
-      1 -> return ByScopeRedHow_Assume
-      2 -> liftM  ByScopeRedHow_Other   sget
+{-# LINE 430 "src/ehc/CHR/Constraint.chs" #-}
+instance (Serialize p, Serialize i) => Serialize (Constraint' p i)
 
-instance Serialize RedHowAnnotation where
-  sput (RedHow_ByInstance       a b c  ) = sputWord8 0  >> sput a >> sput b >> sput c -- >> sput d
-  sput (RedHow_BySuperClass     a b c  ) = sputWord8 1  >> sput a >> sput b >> sput c
-  sput (RedHow_ProveObl         a b    ) = sputWord8 2  >> sput a >> sput b
-  sput (RedHow_Assumption       a b    ) = sputWord8 3  >> sput a >> sput b
-  sput (RedHow_ByScope          a      ) = sputWord8 4  >> sput a
-  sput (RedHow_ByLabel          a b c  ) = sputWord8 5  >> sput a >> sput b >> sput c
-  sput (RedHow_Lambda           a b    ) = sputWord8 6  >> sput a >> sput b
-  sget = do t <- sgetWord8
-            case t of
-              0  -> liftM3 RedHow_ByInstance       sget sget sget -- sget
-              1  -> liftM3 RedHow_BySuperClass     sget sget sget
-              2  -> liftM2 RedHow_ProveObl         sget sget
-              3  -> liftM2 RedHow_Assumption       sget sget
-              4  -> liftM  RedHow_ByScope          sget
-              5  -> liftM3 RedHow_ByLabel          sget sget sget
-              6  -> liftM2 RedHow_Lambda           sget sget
+{-# LINE 446 "src/ehc/CHR/Constraint.chs" #-}
+instance Serialize ByScopeRedHow
+instance Serialize RedHowAnnotation
 
diff --git a/src/UHC/Light/Compiler/CHR/Guard.hs b/src/UHC/Light/Compiler/CHR/Guard.hs
--- a/src/UHC/Light/Compiler/CHR/Guard.hs
+++ b/src/UHC/Light/Compiler/CHR/Guard.hs
@@ -20,7 +20,7 @@
   | EqualScope              PredScope PredScope                             -- scopes are equal
   | IsStrictParentScope     PredScope PredScope PredScope                   -- parent scope of each other?
   | NonEmptyRowLacksLabel   Ty LabelOffset Ty Label                         -- non empty row does not have label?, yielding its position + rest
-  deriving (Typeable)
+  deriving (Typeable, Generic)
 
 {-# LINE 60 "src/ehc/CHR/Guard.chs" #-}
 ppGuard :: Guard -> PP_Doc
@@ -39,19 +39,5 @@
   pp = ppGuard
 
 {-# LINE 91 "src/ehc/CHR/Guard.chs" #-}
-instance Serialize Guard where
-  sput (HasStrictCommonScope     a b c  ) = sputWord8 0  >> sput a >> sput b >> sput c
-  sput (IsVisibleInScope         a b    ) = sputWord8 1  >> sput a >> sput b
-  sput (NotEqualScope            a b    ) = sputWord8 2  >> sput a >> sput b
-  sput (EqualScope               a b    ) = sputWord8 3  >> sput a >> sput b
-  sput (IsStrictParentScope      a b c  ) = sputWord8 4  >> sput a >> sput b >> sput c
-  sput (NonEmptyRowLacksLabel    a b c d) = sputWord8 5  >> sput a >> sput b >> sput c >> sput d
-  sget = do t <- sgetWord8
-            case t of
-              0  -> liftM3 HasStrictCommonScope     sget sget sget
-              1  -> liftM2 IsVisibleInScope         sget sget
-              2  -> liftM2 NotEqualScope            sget sget
-              3  -> liftM2 EqualScope               sget sget
-              4  -> liftM3 IsStrictParentScope      sget sget sget
-              5  -> liftM4 NonEmptyRowLacksLabel    sget sget sget sget
+instance Serialize Guard
 
diff --git a/src/UHC/Light/Compiler/CHR/Instances.hs b/src/UHC/Light/Compiler/CHR/Instances.hs
--- a/src/UHC/Light/Compiler/CHR/Instances.hs
+++ b/src/UHC/Light/Compiler/CHR/Instances.hs
@@ -185,3 +185,5 @@
 
 instance IsCHRGuard FIIn Guard VarMp
 
+-- instance IsCHRPrio FIIn Prio VarMp
+
diff --git a/src/UHC/Light/Compiler/CHR/Key.hs b/src/UHC/Light/Compiler/CHR/Key.hs
--- a/src/UHC/Light/Compiler/CHR/Key.hs
+++ b/src/UHC/Light/Compiler/CHR/Key.hs
@@ -22,7 +22,7 @@
   | Key_TyQu    !TyQu           -- quantified type, used with TKK_Partial
   | Key_Ty      !Ty             -- catchall for the rest, used with TKK_Partial
   deriving ( Eq, Ord
-           , Typeable
+           , Typeable, Generic
            )
 
 {-# LINE 57 "src/ehc/CHR/Key.chs" #-}
@@ -48,18 +48,5 @@
   toTreeTrieKey = toTTKey
 
 {-# LINE 149 "src/ehc/CHR/Key.chs" #-}
-instance Serialize Key where
-  sput (Key_HNm  a) = sputWord8 0 >> sput a
-  sput (Key_UID  a) = sputWord8 1 >> sput a
-  sput (Key_Str  a) = sputWord8 2 >> sput a
-  sput (Key_TyQu a) = sputWord8 3 >> sput a
-  sput (Key_Ty   a) = sputWord8 4 >> sput a
-  sget = do
-    t <- sgetWord8
-    case t of
-      0 -> liftM  Key_HNm  sget
-      1 -> liftM  Key_UID  sget
-      2 -> liftM  Key_Str  sget
-      3 -> liftM  Key_TyQu sget
-      4 -> liftM  Key_Ty   sget
+instance Serialize Key
 
diff --git a/src/UHC/Light/Compiler/CHR/Solve.hs b/src/UHC/Light/Compiler/CHR/Solve.hs
--- a/src/UHC/Light/Compiler/CHR/Solve.hs
+++ b/src/UHC/Light/Compiler/CHR/Solve.hs
@@ -1,7 +1,7 @@
 module UHC.Light.Compiler.CHR.Solve
 ( module UHC.Util.CHR.Rule
 , module UHC.Util.CHR.Solve.TreeTrie.Mono, IsCHRSolvable (..), SolveState, SolveTrace, SolveStep, CHRStore', CHRSolverConstraint
-, CHRStore
+, CHRStore, Prio
 , PartialOrdering (..), toOrdering, toPartialOrdering
 , isLetProveCandidate, isLetProveFailure )
 where
@@ -19,25 +19,29 @@
 import qualified UHC.Util.CHR.Solve.TreeTrie.Mono as Mono
 
 {-# LINE 24 "src/ehc/CHR/Solve.chs" #-}
-instance Mono.IsCHRSolvable FIIn Constraint Guard VarMp
+instance Mono.IsCHRSolvable FIIn Constraint Guard Prio VarMp
 
 type CHRSolverConstraint = Constraint
 
 -- | (Class alias) API for solving requirements, hiding Mono/Poly differences
-class ( Mono.IsCHRSolvable env c g s
-      ) => IsCHRSolvable env c g s
+class ( Mono.IsCHRSolvable env c g p s
+      ) => IsCHRSolvable env c g p s
 
-instance IsCHRSolvable FIIn Constraint Guard VarMp
+instance IsCHRSolvable FIIn Constraint Guard Prio VarMp
 
-type CHRStore'  e c g s = Mono.CHRStore   c g
-type SolveState e c g s = Mono.SolveState c g s
-type SolveTrace e c g s = Mono.SolveTrace c g s
-type SolveStep  e c g s = Mono.SolveStep  c g s
+type CHRStore'  e c g p s = Mono.CHRStore   c g p
+type SolveState e c g p s = Mono.SolveState c g p s
+type SolveTrace e c g p s = Mono.SolveTrace c g p s
+type SolveStep  e c g p s = Mono.SolveStep  c g p s
 
 {-# LINE 89 "src/ehc/CHR/Solve.chs" #-}
-type CHRStore = CHRStore' FIIn Constraint Guard VarMp
+-- dummy (for now)
+type Prio = ()
+-- type CHRPrio = Prio
 
-{-# LINE 99 "src/ehc/CHR/Solve.chs" #-}
+type CHRStore = CHRStore' FIIn Constraint Guard Prio VarMp
+
+{-# LINE 103 "src/ehc/CHR/Solve.chs" #-}
 data PartialOrdering
   = P_LT | P_EQ | P_GT | P_NE
   deriving (Eq,Show)
@@ -57,7 +61,7 @@
       P_GT -> Just GT
       _    -> Nothing
 
-{-# LINE 124 "src/ehc/CHR/Solve.chs" #-}
+{-# LINE 128 "src/ehc/CHR/Solve.chs" #-}
 -- | Consider a pred for proving if: no free tvars, or its free tvars do not coincide with those globally used
 isLetProveCandidate :: (VarExtractable x) => Set.Set (ExtrValVarKey x) -> x -> Bool
 isLetProveCandidate glob x
diff --git a/src/UHC/Light/Compiler/CodeGen/BasicAnnot.hs b/src/UHC/Light/Compiler/CodeGen/BasicAnnot.hs
--- a/src/UHC/Light/Compiler/CodeGen/BasicAnnot.hs
+++ b/src/UHC/Light/Compiler/CodeGen/BasicAnnot.hs
@@ -6,6 +6,7 @@
 , BasicAnnot (..)
 , basicSizeDouble, basicSizeFloat )
 where
+import UHC.Light.Compiler.Base.Common
 import qualified Data.Map as Map
 import Data.Bits
 import Data.List
@@ -19,7 +20,7 @@
 
 
 
-{-# LINE 25 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 28 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 data BasicSize
   = -- Word variants, bitsize explicit
     BasicSize_Word8
@@ -36,10 +37,10 @@
   | BasicSize_Double
   deriving (Eq,Ord,Enum)
 
-{-# LINE 45 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 48 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 deriving instance Typeable BasicSize
 
-{-# LINE 52 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 55 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 instance Show BasicSize where
   show BasicSize_Word8   = "w1"
   show BasicSize_Word16  = "w2"
@@ -52,11 +53,11 @@
   show BasicSize_Float   = "f4"
   show BasicSize_Double  = "f8"
 
-{-# LINE 68 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 71 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 instance PP BasicSize where
   pp = pp . show
 
-{-# LINE 74 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 77 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 basicSizeOfMp :: Map.Map Int BasicSize
 basicSizeOfMp
   = Map.fromList
@@ -69,7 +70,7 @@
 basicSizeOf :: Int -> BasicSize
 basicSizeOf i = panicJust "BasicAnnot.basicSizeOf" $ Map.lookup i basicSizeOfMp
 
-{-# LINE 110 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 113 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 basicSizeIsSigned :: BasicSize -> Bool
 basicSizeIsSigned BasicSize_Int8  = True
 basicSizeIsSigned BasicSize_Int16 = True
@@ -77,12 +78,12 @@
 basicSizeIsSigned BasicSize_Int64 = True
 basicSizeIsSigned _               = False
 
-{-# LINE 119 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 122 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 basicSizeDouble, basicSizeFloat :: BasicSize
 basicSizeFloat  = BasicSize_Float
 basicSizeDouble = BasicSize_Double
 
-{-# LINE 290 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 293 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 -- the defs in basicTyGBTy must be at the beginning, as Enum uses the relative ordering
 data BasicTy
   = BasicTy_Word				-- base case: pointer, word, int, ...
@@ -91,12 +92,12 @@
   | BasicTy_Float				-- C: float
   | BasicTy_Double				-- C: double
   | BasicTy_SignedHalfWord		-- as BasicTy_Word, but for FFI half the size of a word, and signed. Special case for sign extend.
-  deriving (Eq,Ord,Enum)
+  deriving (Eq,Ord,Enum,Generic)
 
-{-# LINE 304 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 307 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 deriving instance Typeable BasicTy
 
-{-# LINE 311 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 314 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 instance Show BasicTy where
   show BasicTy_Word   			= "word"
   show BasicTy_SWord            = "sword"
@@ -105,20 +106,20 @@
   show BasicTy_Double 			= "double"
   show BasicTy_SignedHalfWord   = "int"
 
-{-# LINE 323 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 326 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 instance PP BasicTy where
   pp = pp . show
 
-{-# LINE 350 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 353 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 data BasicAnnot
   = BasicAnnot_None
-  deriving (Show,Eq)
+  deriving (Show,Eq,Generic)
 
-{-# LINE 407 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 410 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 instance PP BasicAnnot where
   pp _                                     = pp "ANNOT"
 
-{-# LINE 420 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+{-# LINE 423 "src/ehc/CodeGen/BasicAnnot.chs" #-}
 instance Serialize BasicTy where
   sput = sputEnum8
   sget = sgetEnum8
@@ -127,11 +128,6 @@
   sput = sputEnum8
   sget = sgetEnum8
 
-{-# LINE 430 "src/ehc/CodeGen/BasicAnnot.chs" #-}
-instance Serialize BasicAnnot where
-  sput (BasicAnnot_None                 ) = sputWord8 0
-  sget = do
-    t <- sgetWord8
-    case t of
-      0 -> return BasicAnnot_None
+{-# LINE 433 "src/ehc/CodeGen/BasicAnnot.chs" #-}
+instance Serialize BasicAnnot
 
diff --git a/src/UHC/Light/Compiler/CodeGen/CEnv.hs b/src/UHC/Light/Compiler/CodeGen/CEnv.hs
--- a/src/UHC/Light/Compiler/CodeGen/CEnv.hs
+++ b/src/UHC/Light/Compiler/CodeGen/CEnv.hs
@@ -5,7 +5,7 @@
 , cenvDataGam
 , cenvLamMp )
 where
-import Data.Typeable
+import UHC.Light.Compiler.Base.Common
 import UHC.Util.Lens
 import UHC.Light.Compiler.Gam
 import UHC.Light.Compiler.Gam.DataGam
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
@@ -16,7 +16,7 @@
 , libnamesGccEhcExtraExternalLibs
 , mbSuffixExec, linkerSymbolPrefix
 , suffixDotlessBinaryCoreRun, suffixDotlessInputOutputBinaryCoreRun, suffixDotlessOutputTextualCoreRun, suffixDotlessInputOutputTextualCoreRun
-, suffixDotlessBinaryCore, suffixDotlessInputOutputBinaryCore, suffixDotlessOutputTextualCore, suffixDotlessInputOutputTextualCore
+, suffixDotlessBinaryCore, suffixDotlessInputOutputBinaryCore, suffixDotlessOutputTextualCore, suffixDotlessInputOutputTextualCore, suffixDotlessOutputTextualCoreAST
 , suffixDotlessOutputTextualEh, suffixDotlessOutputTextualEhAST
 , suffixDotlessInputOutputCoreRun
 , mkInstallPkgdirSystem
@@ -66,12 +66,12 @@
       , verMajor            = "1"
       , verMinor            = "1"
       , verMinorMinor       = "9"
-      , verMinorMinorMinor  = "2"
+      , verMinorMinorMinor  = "3"
       , verQuality          = "alpha"
       , verShort            = "1.1"
       , verMedium           = "1.1.9"
-      , verFull             = "1.1.9.2"
-      , verAsNumber         = "1010902"
+      , verFull             = "1.1.9.3"
+      , verAsNumber         = "1010903"
       , verProg             = "ehc"
       }
 
@@ -247,8 +247,12 @@
 suffixDotlessInputOutputTextualCore :: String
 suffixDotlessInputOutputTextualCore = suffixDotlessOutputTextualCore
 
+-- | Suffix (dotless) for textually dumped/output Core AST files
+suffixDotlessOutputTextualCoreAST :: String
+suffixDotlessOutputTextualCoreAST = "astcr"
 
-{-# LINE 344 "src/ehc/Config.chs" #-}
+
+{-# LINE 348 "src/ehc/Config.chs" #-}
 -- | Suffix (dotless) for textually dumped/output EH files
 suffixDotlessOutputTextualEh :: String
 suffixDotlessOutputTextualEh = "teh"
@@ -257,7 +261,7 @@
 suffixDotlessOutputTextualEhAST :: String
 suffixDotlessOutputTextualEhAST = "asteh"
 
-{-# LINE 354 "src/ehc/Config.chs" #-}
+{-# LINE 358 "src/ehc/Config.chs" #-}
 -- | Suffix (dotless) for CoreRun files
 suffixDotlessInputOutputCoreRun :: String
 suffixDotlessInputOutputCoreRun = "rcr"
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@a4b70ea5c6"
+ehcSvnRevision = "master@b84bf358b7"
 
 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
@@ -35,12 +35,12 @@
 internalVersionHI = mkInternalVersion 1
 
 -- | For binary/serialized Core .cr/.bcr/.tcr etc files
-internalVersionCore = mkInternalVersion 1
+internalVersionCore = mkInternalVersion 2
 
 -- | For binary/serialized CoreRun .crr/.bcrr./tcrr etc files
 internalVersionCoreRun = mkInternalVersion 1
 
 -- | For binary/serialized EH intermediate structures
-internalVersionEH = mkInternalVersion 1
+internalVersionEH = mkInternalVersion 2
 
 
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
@@ -1,16 +1,13 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core.ag)
 module UHC.Light.Compiler.Core(module UHC.Light.Compiler.AbstractCore
 , module UHC.Light.Compiler.Base.Target
-, CodeAGItf (..), CModule (..), CExpr (..), CBind (..), CBound (..), CMetaVal (..), CMetaBind (..), CMetas, CBindL, CBoundL, CPatRest (..), CAlt (..), CAltL, CPat (..), CPatFld (..), CPatFldL
+, CodeAGItf (..), CModule (..), CExpr (..), CBind (..), CBound (..), CBindL, CBoundL, CPatRest (..), CAlt (..), CAltL, CPat (..), CPatFld (..), CPatFldL
 , CBindAnn (..), CBindAnnL, CExprAnn (..)
 , CExport (..), CExportL, CImport (..), CImportL
 , CDeclMeta (..), CDeclMetaL, CDataCon (..), CDataConL
 , RAlt, RPat, RPatConBind, RPatFld
-, cmetasDefault
-, cmetasVal
-, cmetasMapVal
 , CBindCateg (..)
 , EvalCtx (..), evalCtxIsStrict
 , cexprIsLam
@@ -54,6 +51,7 @@
 import Data.Char
 import Data.List
 import UHC.Util.Utils
+import UHC.Util.Pretty
 import Control.Applicative ((<|>))
 import qualified Data.Map as Map
 import qualified Data.Set as Set
@@ -145,21 +143,6 @@
 
 
 
-cmetasDefault :: CMetas
-cmetasDefault = (CMetaBind_Plain,CMetaVal_Val)
-
-
-
-cmetasVal :: CMetas -> CMetaVal
-cmetasVal (_,v) = v
-
-
-
-cmetasMapVal :: (CMetaVal -> CMetaVal) -> CMetas -> CMetas
-cmetasMapVal f (b,v) = (b,f v)
-
-
-
 data CBindCateg
   = CBindCateg_Rec              -- mutually recursive
   | CBindCateg_Strict           -- strictly evaluated
@@ -168,8 +151,11 @@
   | CBindCateg_FFE              -- exported function (not implemented yet)
   deriving (Show,Eq,Enum)
 
+instance PP CBindCateg where
+  pp = pp . show
 
 
+
 deriving instance Typeable CBindCateg
 
 
@@ -203,7 +189,7 @@
 
 -- | extract expr for aspect, relevant for later use/analysis/...
 cbindAspectMbExpr :: CBound -> Maybe CExpr
-cbindAspectMbExpr (CBound_Bind _     e) = Just e
+cbindAspectMbExpr (CBound_Bind       e) = Just e
 cbindAspectMbExpr (CBound_Val  _ _ _ e) = Just e
 cbindAspectMbExpr _                     = Nothing
 
@@ -251,12 +237,11 @@
 data CVarIntro
   = CVarIntro
       { cviLev      :: Int      -- lexical level
-      , cviMeta     :: CMetaVal -- meta info
       }
 
 emptyCVarIntro :: CVarIntro
 emptyCVarIntro
-  = CVarIntro cLevExtern CMetaVal_Val
+  = CVarIntro cLevExtern
 
 
 
@@ -282,7 +267,6 @@
 data CVarRepl r
   = CVarRepl
       { cvrRepl     :: r        -- replacement
-      , cvrMeta     :: CMetaVal -- meta info
       }
 
 
@@ -295,7 +279,7 @@
 type CVarReplNm = CVarRepl HsName
 
 emptyCVarReplNm :: CVarReplNm
-emptyCVarReplNm = CVarRepl hsnUnknown CMetaVal_Val
+emptyCVarReplNm = CVarRepl hsnUnknown
 
 
 
@@ -307,8 +291,6 @@
 cvrFromCvi :: CVarIntro -> CVarReplNm
 cvrFromCvi i
   = emptyCVarReplNm
-      { cvrMeta     = cviMeta i
-      }
 
 
 
@@ -398,21 +380,19 @@
 
 
 
-instance AbstractCore CExpr CMetaVal CBind CBound ACoreAppLikeMetaBound CBindCateg CMetaBind CTy CPat CPatRest CPatFld CAlt where
+instance AbstractCore CExpr CBind CBound ACoreAppLikeMetaBound CBindCateg CTy CPat CPatRest CPatFld CAlt where
   -- expr
   acore1AppBound   f a                  = CExpr_App f a
   -- acoreLam1Ty a _ e                  = CExpr_Lam (acoreBind1 a) e
   acoreLam1Bind b e                     = CExpr_Lam b e
   acoreTagTyTupBound   tg _ es          = acoreAppBound (CExpr_Tup tg) es
-  acoreBoundVal1CatLevMetasTy _ _ _ m _ e
-                                        = CBound_Bind m e
+  acoreBoundVal1CatLevTy _ _ m _ e      = CBound_Bind e
   acoreBoundmeta a m l                  = (a,m,l)
-  acoreBound1MetaVal (a,m,l) e          = CBound_Val a m l e
+  acoreBound1Boundmeta (a,m,l) e        = CBound_Val a m l e
   acoreBoundValTy1CatLev _ _ _ t
                                         = CBound_Ty acbaspkeyDefaultTy t
   acoreBind1Asp n as                    = CBind_Bind n as
-  acoreBind1CatLevMetasTy bcat n mlev mb t e
-                                        = acoreBind1Asp n [acoreBoundValTy1CatLev bcat n (mlev+1) t, acoreBoundVal1CatLevMetasTy bcat n mlev mb t e]
+  acoreBind1CatLevTy bcat n mlev t e    = acoreBind1Asp n [acoreBoundValTy1CatLev bcat n (mlev+1) t, acoreBoundVal1CatLevTy bcat n mlev t e]
   acoreLetBase                          = CExpr_Let
   acoreCaseDflt e as d                  = CExpr_Case e as (maybe (acoreVar hsnUnknown) id d)
   acoreVar n                            = CExpr_Var (acoreMkRef n)
@@ -454,9 +434,6 @@
 
   -- defaults
   acoreDfltBoundmeta                    = (acbaspkeyDefault,0,CLbl_None)
-  acoreMetavalDflt                      = CMetaVal_Val
-  acoreMetavalDfltDict                  = CMetaVal_Dict
-  acoreMetabindDflt                     = CMetaBind_Plain
   acoreTyErr s                          = acoreTy2ty emptyEHCOpts $ Ty_Dbg s
   acoreTyNone                           = acoreTyErr "Core.acoreTyNone"
   acoreTyChar o                         = acoreTy2ty o $ tyChar
@@ -513,232 +490,64 @@
 
 
 
-instance Serialize CModule where
-  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 -> -} liftM5 CModule_Mod         sget sget sget sget sget
+instance Serialize CModule
+instance Serialize CExport
+instance Serialize CImport
+instance Serialize CDeclMeta
+instance Serialize CDataCon
+instance Serialize CExpr
+instance Serialize CExprAnn
+instance Serialize CBindAnn
+instance Serialize CBound
+instance Serialize CBind
+instance Serialize CAlt
+instance Serialize CPat
+instance Serialize CPatRest
+instance Serialize CPatFld
 
-instance Serialize CExport where
-  sput (CExport_Export     a  ) = sputWord8 0 >> sput a
-  sput (CExport_ExportData a b) = sputWord8 1 >> sput a >> sput b
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> liftM   CExport_Export       sget
-            1 -> liftM2  CExport_ExportData	  sget sget
 
-instance Serialize CImport where
-  sput (CImport_Import a  ) = {- sputWord8 0 >> -} sput a
-  sget
-    = do {- t <- sgetWord8
-         case t of
-            0 -> -} liftM   CImport_Import       sget
 
-instance Serialize CDeclMeta where
-  sput (CDeclMeta_Data   a b) = {- sputWord8 0 >> -} sput a >> sput b
-  sget
-    = do {- t <- sgetWord8
-         case t of
-            0 -> -} liftM2  CDeclMeta_Data         sget sget
-
-instance Serialize CDataCon where
-  sput (CDataCon_Con   a b c) = {- sputWord8 0 >> -} sput a >> sput b >> sput c
-  sget
-    = do {- t <- sgetWord8
-         case t of
-            0 -> -} liftM3  CDataCon_Con         sget sget sget
-
-instance Serialize CExpr where
-  sput (CExpr_Let       a b c       ) = sputWord8  0 >> sput a >> sput b >> sput c
-  sput (CExpr_App       a b         ) = sputWord8  1 >> sput a >> sput b
-  sput (CExpr_Lam       a b         ) = sputWord8  2 >> sput a >> sput b
-  sput (CExpr_Case      a b c       ) = sputWord8  3 >> sput a >> sput b >> sput c
-  sput (CExpr_Var       a           ) = sputWord8  4 >> sput a
-  sput (CExpr_Int       a           ) = sputWord8  5 >> sput a
-  sput (CExpr_Char      a           ) = sputWord8  6 >> sput a
-  sput (CExpr_String    a           ) = sputWord8  7 >> sput a
-  sput (CExpr_Tup       a           ) = sputWord8  8 >> sput a
-  sput (CExpr_TupDel    a b c d     ) = sputWord8  9 >> sput a >> sput b >> sput c >> sput d
-  sput (CExpr_TupIns    a b c d e   ) = sputWord8 10 >> sput a >> sput b >> sput c >> sput d >> sput e
-  sput (CExpr_TupUpd    a b c d e   ) = sputWord8 11 >> sput a >> sput b >> sput c >> sput d >> sput e
-  sput (CExpr_CaseAltFail
-                        a b         ) = sputWord8 12 >> sput a >> sput b
-  sput (CExpr_Hole      a           ) = sputWord8 13 >> sput a
-  sput (CExpr_HoleLet   a b         ) = sputWord8 14 >> sput a >> sput b
-  sput (CExpr_ImplsApp  a b         ) = sputWord8 15 >> sput a >> sput b
-  sput (CExpr_ImplsLam  a b         ) = sputWord8 16 >> sput a >> sput b
-  sput (CExpr_CoeArg                ) = sputWord8 17
-  sput (CExpr_Integer   a           ) = sputWord8 18 >> sput a
-  sput (CExpr_Ann       a b         ) = sputWord8 19 >> sput a >> sput b
-  sput (CExpr_FFI       a b c d     ) = sputWord8 20 >> sput a >> sput b >> sput c >> sput d
-  sput (CExpr_Dbg       a           ) = sputWord8 21 >> sput a
-  sget
-    = do t <- sgetWord8
-         case t of
-           0  -> liftM3 CExpr_Let           sget sget sget
-           1  -> liftM2 CExpr_App           sget sget
-           2  -> liftM2 CExpr_Lam           sget sget
-           3  -> liftM3 CExpr_Case          sget sget sget
-           4  -> liftM  CExpr_Var           sget
-           5  -> liftM  CExpr_Int           sget
-           6  -> liftM  CExpr_Char          sget
-           7  -> liftM  CExpr_String        sget
-           8  -> liftM  CExpr_Tup           sget
-           9  -> liftM4 CExpr_TupDel        sget sget sget sget
-           10 -> liftM5 CExpr_TupIns        sget sget sget sget sget
-           11 -> liftM5 CExpr_TupUpd        sget sget sget sget sget
-           12 -> liftM2 CExpr_CaseAltFail   sget sget
-           13 -> liftM  CExpr_Hole          sget
-           14 -> liftM2 CExpr_HoleLet       sget sget
-           15 -> liftM2 CExpr_ImplsApp      sget sget
-           16 -> liftM2 CExpr_ImplsLam      sget sget
-           17 -> return CExpr_CoeArg
-           18 -> liftM  CExpr_Integer       sget
-           19 -> liftM2 CExpr_Ann           sget sget
-           20 -> liftM4 CExpr_FFI           sget sget sget sget
-           21 -> liftM  CExpr_Dbg           sget
-
-instance Serialize CMetaVal where
-  sput (CMetaVal_Val                ) = sputWord8 0
-  sput (CMetaVal_Dict               ) = sputWord8 1
-  sput (CMetaVal_DictClass      a   ) = sputWord8 2 >> sput a
-  sput (CMetaVal_DictInstance   a   ) = sputWord8 3 >> sput a
-  sput (CMetaVal_Track          a   ) = sputWord8 4 >> sput a
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> return CMetaVal_Val
-            1 -> return CMetaVal_Dict
-            2 -> liftM  CMetaVal_DictClass          sget
-            3 -> liftM  CMetaVal_DictInstance       sget
-            4 -> liftM  CMetaVal_Track              sget
-
-instance Serialize CExprAnn where
-  sput (CExprAnn_Ty    a) = sputWord8 0 >> sput a
-  sput (CExprAnn_Debug _) = sputWord8 2
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> liftM  CExprAnn_Ty         sget
-            2 -> return (CExprAnn_Debug     "")
-
-instance Serialize CBindAnn where
-  sput (CBindAnn_Coe   a) = sputWord8 0 >> sput a
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> liftM  CBindAnn_Coe         sget
-
-instance Serialize CBound where
-  sput (CBound_Bind     a b      ) = sputWord8 0 >> sput a >> sput b
-  -- sput (CBound_FFI   a b c d  ) = sputWord8 1 >> sput a >> sput b >> sput c >> sput d
-  sput (CBound_FFE      a b c d  ) = sputWord8 2 >> sput a >> sput b >> sput c >> sput d
-  sput (CBound_Meta    a b      ) = sputWord8 4 >> sput a >> sput b
-  sput (CBound_Val     a b c d  ) = sputWord8 5 >> sput a >> sput b >> sput c >> sput d
-  sput (CBound_Ty      a b      ) = sputWord8 6 >> sput a >> sput b
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> liftM2 CBound_Bind          sget sget
-            -- 1 -> liftM4 CBound_FFI           sget sget sget sget
-            2 -> liftM4 CBound_FFE           sget sget sget sget
-            4 -> liftM2 CBound_Meta          sget sget
-            5 -> liftM4 CBound_Val           sget sget sget sget
-            6 -> liftM2 CBound_Ty            sget sget
-
-instance Serialize CBind where
-  sput (CBind_Bind a b      ) = {- sputWord8 0 >> -} sput a >> sput b
-  sget
-    = do {- t <- sgetWord8
-         case t of
-            0 -> -} liftM2 CBind_Bind          sget sget
-
-instance Serialize CAlt where
-  sput (CAlt_Alt   a b      ) = {- sputWord8 0 >> -} sput a >> sput b
-  sget
-    = do {- t <- sgetWord8
-         case t of
-            0 -> -} liftM2 CAlt_Alt         sget sget
-
-instance Serialize CPat where
-  sput (CPat_Var       a        ) = sputWord8 0 >> sput a
-  sput (CPat_Con       a b c    ) = sputWord8 1 >> sput a >> sput b >> sput c
-  sput (CPat_Int       a        ) = sputWord8 2 >> sput a
-  sput (CPat_Char      a        ) = sputWord8 3 >> sput a
-  sput (CPat_BoolExpr  a        ) = sputWord8 4 >> sput a
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> liftM  CPat_Var         sget
-            1 -> liftM3 CPat_Con         sget sget sget
-            2 -> liftM  CPat_Int         sget
-            3 -> liftM  CPat_Char        sget
-            4 -> liftM  CPat_BoolExpr    sget
-
-instance Serialize CPatRest where
-  sput (CPatRest_Var   a        ) = sputWord8 0 >> sput a
-  sput (CPatRest_Empty          ) = sputWord8 1
-  sget
-    = do t <- sgetWord8
-         case t of
-            0 -> liftM  CPatRest_Var           sget
-            1 -> return CPatRest_Empty
-
-instance Serialize CPatFld where
-  sput (CPatFld_Fld   a b c d ) = {- sputWord8 0 >> -} sput a >> sput b >> sput c >> sput d
-  sget
-    = do {- t <- sgetWord8
-         case t of
-            0 -> -} liftM4 CPatFld_Fld         sget sget sget sget
-
 instance Serialize CBindCateg where
   sput = sputEnum8
   sget = sgetEnum8
 
-instance Serialize CMetaBind where
-  sput = sputEnum8
-  sget = sgetEnum8
-
 -- CAlt --------------------------------------------------------
 data CAlt = CAlt_Alt {pat_CAlt_Alt :: !(CPat),expr_CAlt_Alt :: !(CExpr)}
-          deriving ( Eq,Typeable)
+          deriving ( Eq,Generic,Typeable)
 -- CAltL -------------------------------------------------------
 type CAltL = [CAlt]
 -- CBind -------------------------------------------------------
 data CBind = CBind_Bind {nm_CBind_Bind :: !(HsName),bindAspects_CBind_Bind :: !(CBoundL)}
-           deriving ( Eq,Typeable)
+           deriving ( Eq,Generic,Typeable)
 -- CBindAnn ----------------------------------------------------
 data CBindAnn = CBindAnn_Coe {coe_CBindAnn_Coe :: !((()))}
-              deriving ( Eq,Typeable)
+              deriving ( Eq,Generic,Typeable)
 -- CBindAnnL ---------------------------------------------------
 type CBindAnnL = [CBindAnn]
 -- CBindL ------------------------------------------------------
 type CBindL = [CBind]
 -- CBound ------------------------------------------------------
-data CBound = CBound_Bind {bindMeta_CBound_Bind :: !(CMetas),expr_CBound_Bind :: !(CExpr)}
-            | CBound_Meta {aspectKeyS_CBound_Meta :: !(ACoreBindAspectKeyS),cmetas_CBound_Meta :: !(CMetas)}
+data CBound = CBound_Bind {expr_CBound_Bind :: !(CExpr)}
             | CBound_Val {aspectKeyS_CBound_Val :: !(ACoreBindAspectKeyS),mlev_CBound_Val :: !(MetaLev),lbl_CBound_Val :: !(CLbl),expr_CBound_Val :: !(CExpr)}
             | CBound_Ty {aspectKeyS_CBound_Ty :: !(ACoreBindAspectKeyS),ty_CBound_Ty :: !(Ty)}
             | CBound_FFE {callconv_CBound_FFE :: !(FFIWay),expEnt_CBound_FFE :: !(ForeignEnt),expr_CBound_FFE :: !(CExpr),ty_CBound_FFE :: !(Ty)}
-            deriving ( Eq,Typeable)
+            deriving ( Eq,Generic,Typeable)
 -- CBoundL -----------------------------------------------------
 type CBoundL = [CBound]
 -- CDataCon ----------------------------------------------------
 data CDataCon = CDataCon_Con {conNm_CDataCon_Con :: !(HsName),tagNr_CDataCon_Con :: !(Int),arity_CDataCon_Con :: !(Int)}
-              deriving ( Typeable)
+              deriving ( Generic,Typeable)
 -- CDataConL ---------------------------------------------------
 type CDataConL = [CDataCon]
 -- CDeclMeta ---------------------------------------------------
 data CDeclMeta = CDeclMeta_Data {tyNm_CDeclMeta_Data :: !(HsName),dataCons_CDeclMeta_Data :: !(CDataConL)}
-               deriving ( Typeable)
+               deriving ( Generic,Typeable)
 -- CDeclMetaL --------------------------------------------------
 type CDeclMetaL = [CDeclMeta]
 -- CExport -----------------------------------------------------
 data CExport = CExport_Export {nm_CExport_Export :: !(HsName)}
              | CExport_ExportData {nm_CExport_ExportData :: !(HsName),mbConNmL_CExport_ExportData :: !((Maybe [HsName]))}
-             deriving ( Eq,Ord,Typeable)
+             deriving ( Eq,Generic,Ord,Typeable)
 -- CExportL ----------------------------------------------------
 type CExportL = [CExport]
 -- CExpr -------------------------------------------------------
@@ -764,50 +573,35 @@
            | CExpr_ImplsApp {func_CExpr_ImplsApp :: !(CExpr),uid_CExpr_ImplsApp :: !(ImplsVarId)}
            | CExpr_ImplsLam {uid_CExpr_ImplsLam :: !(ImplsVarId),body_CExpr_ImplsLam :: !(CExpr)}
            | CExpr_Ann {ann_CExpr_Ann :: !(CExprAnn),expr_CExpr_Ann :: !(CExpr)}
-           deriving ( Eq,Typeable)
+           deriving ( Eq,Generic,Typeable)
 -- CExprAnn ----------------------------------------------------
 data CExprAnn = CExprAnn_Ty {ty_CExprAnn_Ty :: !(Ty)}
               | CExprAnn_Debug {info_CExprAnn_Debug :: !(String)}
-              deriving ( Eq,Typeable)
+              deriving ( Eq,Generic,Typeable)
 -- CImport -----------------------------------------------------
 data CImport = CImport_Import {nm_CImport_Import :: !(HsName)}
-             deriving ( Eq,Ord,Typeable)
+             deriving ( Eq,Generic,Ord,Typeable)
 -- CImportL ----------------------------------------------------
 type CImportL = [CImport]
--- CMetaBind ---------------------------------------------------
-data CMetaBind = CMetaBind_Plain {}
-               | CMetaBind_Function0 {}
-               | CMetaBind_Function1 {}
-               | CMetaBind_Apply0 {}
-               deriving ( Enum,Eq,Typeable)
--- CMetaVal ----------------------------------------------------
-data CMetaVal = CMetaVal_Val {}
-              | CMetaVal_Dict {}
-              | CMetaVal_DictClass {tracks_CMetaVal_DictClass :: !(([Track]))}
-              | CMetaVal_DictInstance {tracks_CMetaVal_DictInstance :: !(([Track]))}
-              | CMetaVal_Track {track_CMetaVal_Track :: !(Track)}
-              deriving ( Eq,Typeable)
--- CMetas ------------------------------------------------------
-type CMetas = ( CMetaBind,CMetaVal)
 -- CModule -----------------------------------------------------
 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 ( Typeable)
+             deriving ( Generic,Typeable)
 -- CPat --------------------------------------------------------
 data CPat = CPat_Var {pnm_CPat_Var :: !(HsName)}
           | CPat_Con {tag_CPat_Con :: !(CTag),rest_CPat_Con :: !(CPatRest),binds_CPat_Con :: !(CPatFldL)}
           | CPat_Int {int_CPat_Int :: !(Int)}
           | CPat_Char {char_CPat_Char :: !(Char)}
           | CPat_BoolExpr {cexpr_CPat_BoolExpr :: !(CExpr)}
-          deriving ( Eq,Typeable)
+          deriving ( Eq,Generic,Typeable)
 -- CPatFld -----------------------------------------------------
 data CPatFld = CPatFld_Fld {lbl_CPatFld_Fld :: !(HsName),offset_CPatFld_Fld :: !(CExpr),bind_CPatFld_Fld :: !(CBind),fldAnns_CPatFld_Fld :: !(CBindAnnL)}
-             deriving ( Eq,Typeable)
+             deriving ( Eq,Generic,Typeable)
 -- CPatFldL ----------------------------------------------------
 type CPatFldL = [CPatFld]
 -- CPatRest ----------------------------------------------------
 data CPatRest = CPatRest_Var {nm_CPatRest_Var :: !(HsName)}
               | CPatRest_Empty {}
-              deriving ( Eq,Typeable)
+              deriving ( Eq,Generic,Typeable)
 -- CodeAGItf ---------------------------------------------------
 data CodeAGItf = CodeAGItf_AGItf {module_CodeAGItf_AGItf :: !(CModule)}
-               deriving ( Typeable)
+               deriving ( Generic,Typeable)
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/BindExtra)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/BindExtra)
 module UHC.Light.Compiler.Core.BindExtract(BoundSel (..), noBoundSel, emptyBoundSel
 , boundSelVal, boundSelExpr, boundSelMetaLev0, boundSelMetaLev01
 , SelVal
@@ -415,19 +415,11 @@
          selvalYesL           : [SelVal]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local boundval    : _
             local isSelected  : _
             local _tup1       : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local boundval    : _
-            local isSelected  : _
-            local _tup2       : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -436,14 +428,14 @@
          visit 0:
             local boundval    : _
             local isSelected  : _
-            local _tup3       : _
+            local _tup2       : _
       alternative Ty:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child ty             : {Ty}
          visit 0:
             local boundval    : _
             local isSelected  : _
-            local _tup4       : _
+            local _tup3       : _
       alternative FFE:
          child callconv       : {FFIWay}
          child expEnt         : {ForeignEnt}
@@ -452,15 +444,13 @@
          visit 0:
             local boundval    : _
             local isSelected  : _
-            local _tup5       : _
+            local _tup4       : _
 -}
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -478,50 +468,25 @@
 wrap_CBound sem (Inh_CBound _lhsIboundsel) =
     (let ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) = sem _lhsIboundsel
      in  (Syn_CBound _lhsOboundval _lhsOselvalInsertYesM _lhsOselvalNoL _lhsOselvalYesL))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIboundsel ->
          (case (expr_) of
           { ( _exprIboundval) ->
-              (case (bindMeta_) of
-               { ( _bindMetaIboundval) ->
-                   (case (CBound_Bind _bindMetaIboundval _exprIboundval) of
-                    { _boundval ->
-                    (case (_boundval) of
-                     { _lhsOboundval ->
-                     (case (selBind    _lhsIboundsel) of
-                      { _isSelected ->
-                      (case (mkSel _isSelected _boundval) of
-                       { __tup1 ->
-                       (case (__tup1) of
-                        { (_,_,_lhsOselvalInsertYesM) ->
-                        (case (__tup1) of
-                         { (_,_lhsOselvalNoL,_) ->
-                         (case (__tup1) of
-                          { (_lhsOselvalYesL,_,_) ->
-                          ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIboundsel ->
-         (case (cmetas_) of
-          { ( _cmetasIboundval) ->
-              (case (CBound_Meta aspectKeyS_ _cmetasIboundval) of
+              (case (CBound_Bind _exprIboundval) of
                { _boundval ->
                (case (_boundval) of
                 { _lhsOboundval ->
-                (case (selMeta    _lhsIboundsel aspectKeyS_) of
+                (case (selBind    _lhsIboundsel) of
                  { _isSelected ->
                  (case (mkSel _isSelected _boundval) of
-                  { __tup2 ->
-                  (case (__tup2) of
+                  { __tup1 ->
+                  (case (__tup1) of
                    { (_,_,_lhsOselvalInsertYesM) ->
-                   (case (__tup2) of
+                   (case (__tup1) of
                     { (_,_lhsOselvalNoL,_) ->
-                    (case (__tup2) of
+                    (case (__tup1) of
                      { (_lhsOselvalYesL,_,_) ->
                      ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
@@ -540,12 +505,12 @@
                 (case (selVal     _lhsIboundsel aspectKeyS_ mlev_ lbl_) of
                  { _isSelected ->
                  (case (mkSel _isSelected _boundval) of
-                  { __tup3 ->
-                  (case (__tup3) of
+                  { __tup2 ->
+                  (case (__tup2) of
                    { (_,_,_lhsOselvalInsertYesM) ->
-                   (case (__tup3) of
+                   (case (__tup2) of
                     { (_,_lhsOselvalNoL,_) ->
-                    (case (__tup3) of
+                    (case (__tup2) of
                      { (_lhsOselvalYesL,_,_) ->
                      ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }))
 sem_CBound_Ty :: ACoreBindAspectKeyS ->
@@ -560,12 +525,12 @@
            (case (selTy      _lhsIboundsel aspectKeyS_) of
             { _isSelected ->
             (case (mkSel _isSelected _boundval) of
-             { __tup4 ->
-             (case (__tup4) of
+             { __tup3 ->
+             (case (__tup3) of
               { (_,_,_lhsOselvalInsertYesM) ->
-              (case (__tup4) of
+              (case (__tup3) of
                { (_,_lhsOselvalNoL,_) ->
-               (case (__tup4) of
+               (case (__tup3) of
                 { (_lhsOselvalYesL,_,_) ->
                 ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }))
 sem_CBound_FFE :: FFIWay ->
@@ -584,12 +549,12 @@
                 (case (selFFE     _lhsIboundsel) of
                  { _isSelected ->
                  (case (mkSel _isSelected _boundval) of
-                  { __tup5 ->
-                  (case (__tup5) of
+                  { __tup4 ->
+                  (case (__tup4) of
                    { (_,_,_lhsOselvalInsertYesM) ->
-                   (case (__tup5) of
+                   (case (__tup4) of
                     { (_,_lhsOselvalNoL,_) ->
-                    (case (__tup5) of
+                    (case (__tup4) of
                      { (_lhsOselvalYesL,_,_) ->
                      ( _lhsOboundval,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }))
 -- CBoundL -----------------------------------------------------
@@ -1303,176 +1268,6 @@
 sem_CImportL_Nil :: T_CImportL
 sem_CImportL_Nil =
     ( )
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         boundval             : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local boundval    : _
-      alternative Function0:
-         visit 0:
-            local boundval    : _
-      alternative Function1:
-         visit 0:
-            local boundval    : _
-      alternative Apply0:
-         visit 0:
-            local boundval    : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (case (CMetaBind_Plain) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (case (CMetaBind_Function0) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (case (CMetaBind_Function1) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (case (CMetaBind_Apply0) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         boundval             : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local boundval    : _
-      alternative Dict:
-         visit 0:
-            local boundval    : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local boundval    : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local boundval    : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local boundval    : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (case (CMetaVal_Val) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (case (CMetaVal_Dict) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (case (CMetaVal_DictClass tracks_) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (case (CMetaVal_DictInstance tracks_) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (case (CMetaVal_Track track_) of
-     { _boundval ->
-     (case (_boundval) of
-      { _lhsOboundval ->
-      ( _lhsOboundval) }) })
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         boundval             : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local boundval    : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (case (x2_) of
-     { ( _x2Iboundval) ->
-         (case (x1_) of
-          { ( _x1Iboundval) ->
-              (case ((_x1Iboundval,_x2Iboundval)) of
-               { _boundval ->
-               (case (_boundval) of
-                { _lhsOboundval ->
-                ( _lhsOboundval) }) }) }) })
 -- CModule -----------------------------------------------------
 {-
    alternatives:
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Check.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Check.ag)
 module UHC.Light.Compiler.Core.Check(NotYetTransformed (..), NotYetTransformedS
 , cmodCheck', Inh_CodeAGItf (..), Syn_CodeAGItf (..)) where
 
@@ -497,15 +497,11 @@
          undefNmMp            : UndefNmMp
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
             local isSimple    : _
             local bindNotYetTransformed : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -529,10 +525,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -549,10 +543,9 @@
                 HsName ->
                 EHCOpts ->
                 ( ErrSq,Bool,Bool,NotYetTransformedS,UndefNmMp)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisTopApp
@@ -577,66 +570,31 @@
                 { _exprOisTopApp ->
                 (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
                  { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) ->
-                     (case (_lhsIopts) of
-                      { _bindMetaOopts ->
-                      (case (_lhsIlev) of
-                       { _bindMetaOlev ->
-                       (case (bindMeta_ _bindMetaOlev _bindMetaOopts) of
-                        { ( _bindMetaIerrs,_bindMetaIisFreeOfLam,_bindMetaIundefNmMp) ->
-                            (case (_bindMetaIerrs `Seq.union` _exprIerrs) of
-                             { _lhsOerrs ->
-                             (case (_bindMetaIisFreeOfLam && _exprIisFreeOfLam) of
-                              { _lhsOisFreeOfLam ->
-                              (case (case _exprIwhatBelow of
-                                         ExprIsVar _     -> True
-                                         ExprIsInt _     -> True
-                                         ExprIsOtherWHNF -> True
-                                         _               -> False) of
-                               { _isSimple ->
-                               (case (_isSimple) of
-                                { _lhsOisSimple ->
-                                (case (if whatExprIsLam _exprIwhatBelow
-                                       then if _lhsIisGlobal && _exprIlamBodyIsFreeOfLam
-                                            then Set.empty
-                                            else Set.singleton NotYetTransformed_LambdaLifted
-                                       else if _exprIisFreeOfLam
-                                            then Set.empty
-                                            else Set.singleton NotYetTransformed_LambdaLifted) of
-                                 { _bindNotYetTransformed ->
-                                 (case (Set.unions [_bindNotYetTransformed, _exprInotYetTransformed]) of
-                                  { _lhsOnotYetTransformed ->
-                                  (case (_bindMetaIundefNmMp `undefmpUnion` _exprIundefNmMp) of
-                                   { _lhsOundefNmMp ->
-                                   ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _cmetasOopts ->
-          (case (_lhsIlev) of
-           { _cmetasOlev ->
-           (case (cmetas_ _cmetasOlev _cmetasOopts) of
-            { ( _cmetasIerrs,_cmetasIisFreeOfLam,_cmetasIundefNmMp) ->
-                (case (_cmetasIerrs) of
-                 { _lhsOerrs ->
-                 (case (_cmetasIisFreeOfLam) of
-                  { _lhsOisFreeOfLam ->
-                  (case (False) of
-                   { _lhsOisSimple ->
-                   (case (Set.empty) of
-                    { _lhsOnotYetTransformed ->
-                    (case (_cmetasIundefNmMp) of
-                     { _lhsOundefNmMp ->
-                     ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }))
+                     (case (_exprIerrs) of
+                      { _lhsOerrs ->
+                      (case (_exprIisFreeOfLam) of
+                       { _lhsOisFreeOfLam ->
+                       (case (case _exprIwhatBelow of
+                                  ExprIsVar _     -> True
+                                  ExprIsInt _     -> True
+                                  ExprIsOtherWHNF -> True
+                                  _               -> False) of
+                        { _isSimple ->
+                        (case (_isSimple) of
+                         { _lhsOisSimple ->
+                         (case (if whatExprIsLam _exprIwhatBelow
+                                then if _lhsIisGlobal && _exprIlamBodyIsFreeOfLam
+                                     then Set.empty
+                                     else Set.singleton NotYetTransformed_LambdaLifted
+                                else if _exprIisFreeOfLam
+                                     then Set.empty
+                                     else Set.singleton NotYetTransformed_LambdaLifted) of
+                          { _bindNotYetTransformed ->
+                          (case (Set.unions [_bindNotYetTransformed, _exprInotYetTransformed]) of
+                           { _lhsOnotYetTransformed ->
+                           (case (_exprIundefNmMp) of
+                            { _lhsOundefNmMp ->
+                            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2516,225 +2474,6 @@
        (case (Map.empty) of
         { _lhsOundefNmMp ->
         ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attributes:
-         errs                 : ErrSq
-         isFreeOfLam          : Bool
-         undefNmMp            : UndefNmMp
-   alternatives:
-      alternative Plain:
-      alternative Function0:
-      alternative Function1:
-      alternative Apply0:
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   EHCOpts ->
-                   ( ErrSq,Bool,UndefNmMp)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attributes:
-         errs                 : ErrSq
-         isFreeOfLam          : Bool
-         undefNmMp            : UndefNmMp
-   alternatives:
-      alternative Val:
-      alternative Dict:
-      alternative DictClass:
-         child tracks         : {[Track]}
-      alternative DictInstance:
-         child tracks         : {[Track]}
-      alternative Track:
-         child track          : {Track}
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  EHCOpts ->
-                  ( ErrSq,Bool,UndefNmMp)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (Seq.empty) of
-          { _lhsOerrs ->
-          (case (True) of
-           { _lhsOisFreeOfLam ->
-           (case (Map.empty) of
-            { _lhsOundefNmMp ->
-            ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attributes:
-         errs                 : ErrSq
-         isFreeOfLam          : Bool
-         undefNmMp            : UndefNmMp
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                EHCOpts ->
-                ( ErrSq,Bool,UndefNmMp)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts ->
-          (case (_lhsIlev) of
-           { _x2Olev ->
-           (case (x2_ _x2Olev _x2Oopts) of
-            { ( _x2Ierrs,_x2IisFreeOfLam,_x2IundefNmMp) ->
-                (case (_lhsIopts) of
-                 { _x1Oopts ->
-                 (case (_lhsIlev) of
-                  { _x1Olev ->
-                  (case (x1_ _x1Olev _x1Oopts) of
-                   { ( _x1Ierrs,_x1IisFreeOfLam,_x1IundefNmMp) ->
-                       (case (_x1Ierrs `Seq.union` _x2Ierrs) of
-                        { _lhsOerrs ->
-                        (case (_x1IisFreeOfLam && _x2IisFreeOfLam) of
-                         { _lhsOisFreeOfLam ->
-                         (case (_x1IundefNmMp `undefmpUnion` _x2IundefNmMp) of
-                          { _lhsOundefNmMp ->
-                          ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Coercion.hs b/src/UHC/Light/Compiler/Core/Coercion.hs
--- a/src/UHC/Light/Compiler/Core/Coercion.hs
+++ b/src/UHC/Light/Compiler/Core/Coercion.hs
@@ -17,7 +17,7 @@
 import qualified Data.Set as Set
 
 {-# LINE 41 "src/ehc/Core/Coercion.chs" #-}
-type Coe = Coe' CExpr CMetaVal CBind CBound CTy
+type Coe = Coe' CExpr CBind CBound CTy
 
 {-# LINE 53 "src/ehc/Core/Coercion.chs" #-}
 data LRCoeKind = LRCoeId | LRCoeOther deriving Eq
@@ -52,7 +52,7 @@
 mkIdLRCoe' l r = LRCoe LRCoeId [l] [r]
 
 {-# LINE 89 "src/ehc/Core/Coercion.chs" #-}
-mkIdLRCoeWith :: HsName -> CMetaVal -> LRCoe
+mkIdLRCoeWith :: HsName -> () -> LRCoe
 mkIdLRCoeWith n m = mkIdLRCoe' (acoreCoeAppN [(acoreVar n)]) (acoreCoeLam1 n)
 
 {-# LINE 94 "src/ehc/Core/Coercion.chs" #-}
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/ExtractFF)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/ExtractFF)
 module UHC.Light.Compiler.Core.ExtractFFE(cmodExtractFFE
 , ExtractFFE (..)) where
 
@@ -325,15 +325,9 @@
          self                 : CBound 
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local self        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local self        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -357,10 +351,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -370,10 +362,9 @@
 -- semantic domain
 type T_CBound = HsName ->
                 ( ([ExtractFFE]),([(CBound,FvS)]),FvS,FvSMp,([HsName]),CBound)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsInm ->
          (case (expr_) of
           { ( _exprIffeBinds,_exprIfvS,_exprIself) ->
@@ -381,37 +372,13 @@
                { _lhsOffeBinds ->
                (case ([]) of
                 { _lhsOffeBounds ->
-                (case (bindMeta_) of
-                 { ( _bindMetaIfvS,_bindMetaIself) ->
-                     (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                      { _lhsOfvS ->
-                      (case (Map.empty) of
-                       { _lhsOfvSMp ->
-                       (case ([]) of
-                        { _lhsOnmL ->
-                        (case (CBound_Bind _bindMetaIself _exprIself) of
-                         { _self ->
-                         (case (_self) of
-                          { _lhsOself ->
-                          ( _lhsOffeBinds,_lhsOffeBounds,_lhsOfvS,_lhsOfvSMp,_lhsOnmL,_lhsOself) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsInm ->
-         (case ([]) of
-          { _lhsOffeBinds ->
-          (case ([]) of
-           { _lhsOffeBounds ->
-           (case (cmetas_) of
-            { ( _cmetasIfvS,_cmetasIself) ->
-                (case (_cmetasIfvS) of
+                (case (_exprIfvS) of
                  { _lhsOfvS ->
                  (case (Map.empty) of
                   { _lhsOfvSMp ->
                   (case ([]) of
                    { _lhsOnmL ->
-                   (case (CBound_Meta aspectKeyS_ _cmetasIself) of
+                   (case (CBound_Bind _exprIself) of
                     { _self ->
                     (case (_self) of
                      { _lhsOself ->
@@ -1302,199 +1269,6 @@
 sem_CImportL_Nil :: T_CImportL
 sem_CImportL_Nil =
     ( )
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attributes:
-         fvS                  : FvS
-         self                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local self        : _
-      alternative Function0:
-         visit 0:
-            local self        : _
-      alternative Function1:
-         visit 0:
-            local self        : _
-      alternative Apply0:
-         visit 0:
-            local self        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ( FvS,CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaBind_Plain) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaBind_Function0) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaBind_Function1) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaBind_Apply0) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attributes:
-         fvS                  : FvS
-         self                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local self        : _
-      alternative Dict:
-         visit 0:
-            local self        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local self        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local self        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local self        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ( FvS,CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaVal_Val) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaVal_Dict) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaVal_DictClass tracks_) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaVal_DictInstance tracks_) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     (case (CMetaVal_Track track_) of
-      { _self ->
-      (case (_self) of
-       { _lhsOself ->
-       ( _lhsOfvS,_lhsOself) }) }) })
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      synthesized attributes:
-         fvS                  : FvS
-         self                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local self        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ( FvS,CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (case (x2_) of
-     { ( _x2IfvS,_x2Iself) ->
-         (case (x1_) of
-          { ( _x1IfvS,_x1Iself) ->
-              (case (_x1IfvS `Set.union` _x2IfvS) of
-               { _lhsOfvS ->
-               (case ((_x1Iself,_x2Iself)) of
-                { _self ->
-                (case (_self) of
-                 { _lhsOself ->
-                 ( _lhsOfvS,_lhsOself) }) }) }) }) })
 -- CModule -----------------------------------------------------
 {-
    visit 0:
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/FvS.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/FvS.ag)
 module UHC.Light.Compiler.Core.FvS(cexprFvS) where
 
 import qualified Data.Set as Set
@@ -243,11 +243,7 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -265,10 +261,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -278,30 +272,13 @@
 -- semantic domain
 type T_CBound = HsName ->
                 ( FvS,FvSMp,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsInm ->
          (case (expr_) of
           { ( _exprIfvS) ->
-              (case (bindMeta_) of
-               { ( _bindMetaIfvS) ->
-                   (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                    { _lhsOfvS ->
-                    (case (Map.empty) of
-                     { _lhsOfvSMp ->
-                     (case ([]) of
-                      { _lhsOnmL ->
-                      ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsInm ->
-         (case (cmetas_) of
-          { ( _cmetasIfvS) ->
-              (case (_cmetasIfvS) of
+              (case (_exprIfvS) of
                { _lhsOfvS ->
                (case (Map.empty) of
                 { _lhsOfvSMp ->
@@ -960,136 +937,6 @@
 sem_CImportL_Nil :: T_CImportL
 sem_CImportL_Nil =
     ( )
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         fvS                  : FvS
-   alternatives:
-      alternative Plain:
-      alternative Function0:
-      alternative Function1:
-      alternative Apply0:
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ( FvS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         fvS                  : FvS
-   alternatives:
-      alternative Val:
-      alternative Dict:
-      alternative DictClass:
-         child tracks         : {[Track]}
-      alternative DictInstance:
-         child tracks         : {[Track]}
-      alternative Track:
-         child track          : {Track}
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ( FvS)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (case (Set.empty) of
-     { _lhsOfvS ->
-     ( _lhsOfvS) })
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         fvS                  : FvS
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ( FvS)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (case (x2_) of
-     { ( _x2IfvS) ->
-         (case (x1_) of
-          { ( _x1IfvS) ->
-              (case (_x1IfvS `Set.union` _x2IfvS) of
-               { _lhsOfvS ->
-               ( _lhsOfvS) }) }) })
 -- CModule -----------------------------------------------------
 {-
    visit 0:
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/ModAsMap.)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/ModAsMap.)
 module UHC.Light.Compiler.Core.ModAsMap(cexprModAsDatabase) where
 
 import qualified Data.Set as Set
@@ -247,15 +247,9 @@
          copy                 : CBound 
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local copy        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local copy        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -279,10 +273,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -291,26 +283,12 @@
     (sem_CBound_FFE _callconv _expEnt (sem_CExpr _expr) _ty)
 -- semantic domain
 type T_CBound = ( CBound)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (case (expr_) of
      { ( _exprIbindSq,_exprIcopy,_exprIexpr) ->
-         (case (bindMeta_) of
-          { ( _bindMetaIcopy) ->
-              (case (CBound_Bind _bindMetaIcopy _exprIcopy) of
-               { _copy ->
-               (case (_copy) of
-                { _lhsOcopy ->
-                ( _lhsOcopy) }) }) }) })
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (case (cmetas_) of
-     { ( _cmetasIcopy) ->
-         (case (CBound_Meta aspectKeyS_ _cmetasIcopy) of
+         (case (CBound_Bind _exprIcopy) of
           { _copy ->
           (case (_copy) of
            { _lhsOcopy ->
@@ -1232,176 +1210,6 @@
      (case (_copy) of
       { _lhsOcopy ->
       ( _lhsOcopy) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         copy                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local copy        : _
-      alternative Function0:
-         visit 0:
-            local copy        : _
-      alternative Function1:
-         visit 0:
-            local copy        : _
-      alternative Apply0:
-         visit 0:
-            local copy        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (case (CMetaBind_Plain) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (case (CMetaBind_Function0) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (case (CMetaBind_Function1) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (case (CMetaBind_Apply0) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         copy                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local copy        : _
-      alternative Dict:
-         visit 0:
-            local copy        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local copy        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local copy        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local copy        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (case (CMetaVal_Val) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (case (CMetaVal_Dict) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (case (CMetaVal_DictClass tracks_) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (case (CMetaVal_DictInstance tracks_) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (case (CMetaVal_Track track_) of
-     { _copy ->
-     (case (_copy) of
-      { _lhsOcopy ->
-      ( _lhsOcopy) }) })
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         copy                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local copy        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (case (x2_) of
-     { ( _x2Icopy) ->
-         (case (x1_) of
-          { ( _x1Icopy) ->
-              (case ((_x1Icopy,_x2Icopy)) of
-               { _copy ->
-               (case (_copy) of
-                { _lhsOcopy ->
-                ( _lhsOcopy) }) }) }) })
 -- CModule -----------------------------------------------------
 {-
    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
@@ -115,12 +115,6 @@
   <|> pOPAREN *> (pCExpr {- <**> pCExprAnn -}) <* pCPAREN
 
 {-
-pCExprBaseMeta :: CParser (CExpr,CMetaVal)
-pCExprBaseMeta
-  =   (\v m -> (acoreVar v, m))<$> pDollNm <*> pCMetaValOpt
-  <|> (\n   -> (n, CMetaVal_Val)  ) <$> pCNumber
-  <|> pOPAREN *> pCExpr P.<+> pCMetaValOpt <* pCPAREN
-
 pCExprSelSuffix :: CParser (CExpr -> CExpr)
 pCExprSelSuffix
   =   (\(t,o,l)    e -> CExpr_TupDel e t l o   ) <$ pKeyTk "-=" <*> pS
@@ -166,11 +160,6 @@
 
 
 {-
-pTrack          ::   CParser Track
-pTrack          =    (\x -> TrackVarApply x [])  <$> pDollNm     -- TODO: this is just a mockup, should do real track parsing
--}
-
-{-
 pMbDollNm :: CParser (Maybe HsName)
 pMbDollNm
   =  f <$> pDollNm
@@ -189,38 +178,9 @@
           f ns        = ns
 -}
 
-{-
-pCMetas :: CParser CMetas
-pCMetas
-  =   (,) <$ pOCURLY <*> pCMetaBind <* pCOMMA <*> pCMetaVal <* pCCURLY
-
-pCMetasOpt :: CParser CMetas
-pCMetasOpt
-  =   pMaybe cmetasDefault id pCMetas
-
-pCMetaBind :: CParser CMetaBind
-pCMetaBind
-  =   CMetaBind_Plain       <$ pKeyTk "BINDPLAIN"
-  <|> CMetaBind_Function0   <$ pKeyTk "BINDFUNCTION0"
-  <|> CMetaBind_Function1   <$ pKeyTk "BINDFUNCTION1"
-  <|> CMetaBind_Apply0      <$ pKeyTk "BINDAPPLY0"
-
-pCMetaVal :: CParser CMetaVal
-pCMetaVal
-  =   CMetaVal_Val          <$ pKeyTk "VAL"
-  <|> CMetaVal_Dict         <$ pKeyTk "DICT"
-  <|> CMetaVal_DictClass    <$ pKeyTk "DICTCLASS"    <* pOCURLY <*> pListSep pCOMMA pTrack <* pCCURLY
-  <|> CMetaVal_DictInstance <$ pKeyTk "DICTINSTANCE" <* pOCURLY <*> pList1Sep pCOMMA pTrack <* pCCURLY
-  -- TODO: parse Track
-
-pCMetaValOpt :: CParser CMetaVal
-pCMetaValOpt
-  =   pMaybe CMetaVal_Val id (pCOLON *> pCMetaVal)
--}
-
 pCBound :: CParser CBound
 pCBound
-  = CBound_Bind cmetasDefault <$> pCExpr
+  = CBound_Bind <$> pCExpr
 
 pCBind :: CParser CBind
 pCBind
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Pretty.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Pretty.ag)
 module UHC.Light.Compiler.Core.Pretty(ppCModule
 , ppCBindL) where
 
@@ -87,18 +87,6 @@
 
 
 
-ppOptCMetas :: CMetas -> PP_Doc
-ppOptCMetas x
-  =  let  t = wrap_CMetas (sem_CMetas x)
-                          (Inh_CMetas
-                             { {- lamMp_Inh_CMetas = Map.empty
-                             , -} opts_Inh_CMetas = emptyEHCOpts
-                             , mlev_Inh_CMetas = metaLevVal
-                             })
-     in   (pp_Syn_CMetas t)
-
-
-
 ehcOptDumpMore :: EHCOpts -> Bool
 ehcOptDumpMore opts = CoreOpt_DumpAlsoNonParseable `elem` ehcOptCoreOpts opts
 
@@ -118,7 +106,7 @@
 ppCBindL
   = ppAssocL
   . map (\b -> case b of
-                 CBind_Bind n [CBound_Bind m v] -> (n,v >|< ppOptCMetas m)
+                 CBind_Bind n [CBound_Bind v] -> (n,pp v)
                  CBind_Bind n a -> (n, vlist a)
         )
 
@@ -609,7 +597,6 @@
          ppBindInfoL          : [PPBindInfo]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local mlevHere    : _
@@ -619,14 +606,6 @@
             local sep         : _
             local mustPar     : _
             intra mlevHere    : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 1:
-            local ppBound     : _
-            local pp          : _
-            local sep         : _
-            local mustPar     : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -668,10 +647,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -696,10 +673,9 @@
     (let ( _lhsOgathMinMetaLev,_lhsOgathVarPPMp,sem_1) = sem _lhsImlev
          ( _lhsOpp,_lhsOppBindInfoL) = sem_1 _lhsIminMetaLev _lhsInm _lhsIopts _lhsIppHow _lhsIvarPPMp
      in  (Syn_CBound _lhsOgathMinMetaLev _lhsOgathVarPPMp _lhsOpp _lhsOppBindInfoL))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsImlev ->
          (case (_lhsImlev +                  metaLevVal) of
           { _mlevHere ->
@@ -724,66 +700,22 @@
                                      { _exprOvarPPMp ->
                                      (case (expr_ _exprOmlev _exprOopts _exprOppHow _exprOvarPPMp) of
                                       { ( _exprIappArgPPL,_exprIappFunPP,_exprIlamArgPPL,_exprIlamBodyPP,_exprIpp) ->
-                                          (case (_lhsIopts) of
-                                           { _bindMetaOopts ->
-                                           (case (_lhsImlev) of
-                                            { _bindMetaOmlev ->
-                                            (case (bindMeta_ _bindMetaOmlev _bindMetaOopts) of
-                                             { ( _bindMetaIpp) ->
-                                                 (case (whenMore _lhsIopts _bindMetaIpp >-< _exprIpp) of
-                                                  { _ppBound ->
-                                                  (case (_ppBound) of
-                                                   { _pp ->
-                                                   (case (_pp) of
-                                                    { _lhsOpp ->
-                                                    (case ("=") of
-                                                     { _sep ->
-                                                     (case (False) of
-                                                      { _mustPar ->
-                                                      (case ([(_sep,_mustPar,_ppBound)]) of
-                                                       { _lhsOppBindInfoL ->
-                                                       ( _lhsOpp,_lhsOppBindInfoL) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                          (case (_exprIpp) of
+                                           { _ppBound ->
+                                           (case (_ppBound) of
+                                            { _pp ->
+                                            (case (_pp) of
+                                             { _lhsOpp ->
+                                             (case ("=") of
+                                              { _sep ->
+                                              (case (False) of
+                                               { _mustPar ->
+                                               (case ([(_sep,_mustPar,_ppBound)]) of
+                                                { _lhsOppBindInfoL ->
+                                                ( _lhsOpp,_lhsOppBindInfoL) }) }) }) }) }) }) }) }) }) }) }))
                     in  sem_CBound_Bind_1)) of
              { ( sem_CBound_1) ->
              ( _lhsOgathMinMetaLev,_lhsOgathVarPPMp,sem_CBound_1) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsImlev ->
-         (case (100) of
-          { _lhsOgathMinMetaLev ->
-          (case (Map.empty) of
-           { _lhsOgathVarPPMp ->
-           (case ((let sem_CBound_Meta_1 :: T_CBound_1
-                       sem_CBound_Meta_1 =
-                           (\ _lhsIminMetaLev
-                              _lhsInm
-                              _lhsIopts
-                              _lhsIppHow
-                              _lhsIvarPPMp ->
-                                (case (_lhsIopts) of
-                                 { _cmetasOopts ->
-                                 (case (_lhsImlev) of
-                                  { _cmetasOmlev ->
-                                  (case (cmetas_ _cmetasOmlev _cmetasOopts) of
-                                   { ( _cmetasIpp) ->
-                                       (case (ppACBaspKeyS aspectKeyS_ >#< _cmetasIpp) of
-                                        { _ppBound ->
-                                        (case (_ppBound) of
-                                         { _pp ->
-                                         (case (_pp) of
-                                          { _lhsOpp ->
-                                          (case ("::M") of
-                                           { _sep ->
-                                           (case (False) of
-                                            { _mustPar ->
-                                            (case ([(_sep,_mustPar,_ppBound)]) of
-                                             { _lhsOppBindInfoL ->
-                                             ( _lhsOpp,_lhsOppBindInfoL) }) }) }) }) }) }) }) }) }))
-                   in  sem_CBound_Meta_1)) of
-            { ( sem_CBound_1) ->
-            ( _lhsOgathMinMetaLev,_lhsOgathVarPPMp,sem_CBound_1) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2370,253 +2302,6 @@
           (case ([]) of
            { _lhsOppL ->
            ( _lhsOpp,_lhsOppL) }) }))
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         mlev                 : MetaLev
-         opts                 : EHCOpts
-      synthesized attribute:
-         pp                   : PP_Doc
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local pp          : _
-      alternative Function0:
-         visit 0:
-            local pp          : _
-      alternative Function1:
-         visit 0:
-            local pp          : _
-      alternative Apply0:
-         visit 0:
-            local pp          : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = MetaLev ->
-                   EHCOpts ->
-                   ( PP_Doc)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "BINDPLAIN") of
-          { _pp ->
-          (case (_pp) of
-           { _lhsOpp ->
-           ( _lhsOpp) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "BINDFUNCTION0") of
-          { _pp ->
-          (case (_pp) of
-           { _lhsOpp ->
-           ( _lhsOpp) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "BINDFUNCTION1") of
-          { _pp ->
-          (case (_pp) of
-           { _lhsOpp ->
-           ( _lhsOpp) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "BINDAPPLY0") of
-          { _pp ->
-          (case (_pp) of
-           { _lhsOpp ->
-           ( _lhsOpp) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         mlev                 : MetaLev
-         opts                 : EHCOpts
-      synthesized attributes:
-         optPP                : PP_Doc
-         pp                   : PP_Doc
-   alternatives:
-      alternative Val:
-         visit 0:
-            local optPP       : _
-            local pp          : _
-      alternative Dict:
-         visit 0:
-            local pp          : _
-            local optPP       : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local pp          : _
-            local optPP       : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local pp          : _
-            local optPP       : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local pp          : _
-            local optPP       : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = MetaLev ->
-                  EHCOpts ->
-                  ( PP_Doc,PP_Doc)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (empty) of
-          { _optPP ->
-          (case (_optPP) of
-           { _lhsOoptPP ->
-           (case (pp "VAL") of
-            { _pp ->
-            (case (_pp) of
-             { _lhsOpp ->
-             ( _lhsOoptPP,_lhsOpp) }) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "DICT") of
-          { _pp ->
-          (case (" :" >#< _pp) of
-           { _optPP ->
-           (case (_optPP) of
-            { _lhsOoptPP ->
-            (case (_pp) of
-             { _lhsOpp ->
-             ( _lhsOoptPP,_lhsOpp) }) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "DICTCLASS"    >|< ppCurlyList ppTrack tracks_) of
-          { _pp ->
-          (case (" :" >#< _pp) of
-           { _optPP ->
-           (case (_optPP) of
-            { _lhsOoptPP ->
-            (case (_pp) of
-             { _lhsOpp ->
-             ( _lhsOoptPP,_lhsOpp) }) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "DICTINSTANCE" >|< ppCurlyList ppTrack tracks_) of
-          { _pp ->
-          (case (" :" >#< _pp) of
-           { _optPP ->
-           (case (_optPP) of
-            { _lhsOoptPP ->
-            (case (_pp) of
-             { _lhsOpp ->
-             ( _lhsOoptPP,_lhsOpp) }) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (pp "TRACK"        >|< ppCurlys (show track_)) of
-          { _pp ->
-          (case (" :" >#< _pp) of
-           { _optPP ->
-           (case (_optPP) of
-            { _lhsOoptPP ->
-            (case (_pp) of
-             { _lhsOpp ->
-             ( _lhsOoptPP,_lhsOpp) }) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         mlev                 : MetaLev
-         opts                 : EHCOpts
-      synthesized attribute:
-         pp                   : PP_Doc
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local pp          : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = MetaLev ->
-                EHCOpts ->
-                ( PP_Doc)
-data Inh_CMetas = Inh_CMetas {mlev_Inh_CMetas :: !(MetaLev),opts_Inh_CMetas :: !(EHCOpts)}
-data Syn_CMetas = Syn_CMetas {pp_Syn_CMetas :: !(PP_Doc)}
-wrap_CMetas :: T_CMetas ->
-               Inh_CMetas ->
-               Syn_CMetas
-wrap_CMetas sem (Inh_CMetas _lhsImlev _lhsIopts) =
-    (let ( _lhsOpp) = sem _lhsImlev _lhsIopts
-     in  (Syn_CMetas _lhsOpp))
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsImlev
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts ->
-          (case (_lhsImlev) of
-           { _x2Omlev ->
-           (case (x2_ _x2Omlev _x2Oopts) of
-            { ( _x2IoptPP,_x2Ipp) ->
-                (case (_lhsIopts) of
-                 { _x1Oopts ->
-                 (case (_lhsImlev) of
-                  { _x1Omlev ->
-                  (case (x1_ _x1Omlev _x1Oopts) of
-                   { ( _x1Ipp) ->
-                       (case (ppCurlysCommas [_x1Ipp,_x2Ipp]) of
-                        { _pp ->
-                        (case (_pp) of
-                         { _lhsOpp ->
-                         ( _lhsOpp) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/PrettyTrace.hs b/src/UHC/Light/Compiler/Core/PrettyTrace.hs
new file mode 100644
--- /dev/null
+++ b/src/UHC/Light/Compiler/Core/PrettyTrace.hs
@@ -0,0 +1,1838 @@
+
+
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/PrettyTra)
+module UHC.Light.Compiler.Core.PrettyTrace(ppASTCModule) where
+
+import UHC.Util.Pretty
+import UHC.Light.Compiler.Base.HsName.Builtin
+import UHC.Light.Compiler.Base.CfgPP
+import UHC.Light.Compiler.Opts.Base
+import UHC.Light.Compiler.Base.Common
+import UHC.Light.Compiler.Ty
+import UHC.Light.Compiler.Core
+import UHC.Light.Compiler.Base.Trace
+import UHC.Light.Compiler.Ty.Pretty
+import qualified Data.Set as Set
+import UHC.Light.Compiler.Foreign.Pretty
+
+
+
+
+
+
+
+
+
+
+
+
+ppASTCModule :: EHCOpts -> {- LamMp -> -} CModule -> PP_Doc
+ppASTCModule opts {- lamMp -} cmod
+  =  let  t = wrap_CodeAGItf (sem_CodeAGItf (CodeAGItf_AGItf cmod))
+                             (Inh_CodeAGItf
+                               { {- lamMp_Inh_CodeAGItf = lamMp
+                               , -} opts_Inh_CodeAGItf = opts
+                               })
+     in   (ppAST_Syn_CodeAGItf t)
+
+
+-- CAlt --------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Alt:
+         child pat            : CPat 
+         child expr           : CExpr 
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CAlt :: CAlt ->
+            T_CAlt
+sem_CAlt (CAlt_Alt _pat _expr) =
+    (sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr))
+-- semantic domain
+type T_CAlt = EHCOpts ->
+              (TraceOn -> [PP_Doc] -> TrPP) ->
+              ( PP_Doc)
+sem_CAlt_Alt :: T_CPat ->
+                T_CExpr ->
+                T_CAlt
+sem_CAlt_Alt pat_ expr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _exprOtr ->
+           (case (_lhsIopts) of
+            { _exprOopts ->
+            (case (expr_ _exprOopts _exprOtr) of
+             { ( _exprIppAST) ->
+                 (case (_lhsItr) of
+                  { _patOtr ->
+                  (case (_lhsIopts) of
+                   { _patOopts ->
+                   (case (pat_ _patOopts _patOtr) of
+                    { ( _patIppAST) ->
+                        (case (ppNestTrPP ["CAlt","Alt"] [] [_patIppAST, _exprIppAST] _trppHere) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+-- CAltL -------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CAlt 
+         child tl             : CAltL 
+      alternative Nil:
+-}
+-- cata
+sem_CAltL :: CAltL ->
+             T_CAltL
+sem_CAltL list =
+    (Prelude.foldr sem_CAltL_Cons sem_CAltL_Nil (Prelude.map sem_CAlt list))
+-- semantic domain
+type T_CAltL = EHCOpts ->
+               (TraceOn -> [PP_Doc] -> TrPP) ->
+               ( PP_Doc)
+sem_CAltL_Cons :: T_CAlt ->
+                  T_CAltL ->
+                  T_CAltL
+sem_CAltL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CAltL_Nil :: T_CAltL
+sem_CAltL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CBind -------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Bind:
+         child nm             : {HsName}
+         child bindAspects    : CBoundL 
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CBind :: CBind ->
+             T_CBind
+sem_CBind (CBind_Bind _nm _bindAspects) =
+    (sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
+-- semantic domain
+type T_CBind = EHCOpts ->
+               (TraceOn -> [PP_Doc] -> TrPP) ->
+               ( PP_Doc)
+sem_CBind_Bind :: HsName ->
+                  T_CBoundL ->
+                  T_CBind
+sem_CBind_Bind nm_ bindAspects_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _bindAspectsOtr ->
+           (case (_lhsIopts) of
+            { _bindAspectsOopts ->
+            (case (bindAspects_ _bindAspectsOopts _bindAspectsOtr) of
+             { ( _bindAspectsIppAST) ->
+                 (case (ppNestTrPP ["CBind","Bind"] [ppTrNm nm_] [_bindAspectsIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+-- CBindAnn ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Coe:
+         child coe            : {()}
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CBindAnn :: CBindAnn ->
+                T_CBindAnn
+sem_CBindAnn (CBindAnn_Coe _coe) =
+    (sem_CBindAnn_Coe _coe)
+-- semantic domain
+type T_CBindAnn = EHCOpts ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CBindAnn_Coe :: (()) ->
+                    T_CBindAnn
+sem_CBindAnn_Coe coe_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CBindAnn","Coe"] [pp coe_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+-- CBindAnnL ---------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CBindAnn 
+         child tl             : CBindAnnL 
+      alternative Nil:
+-}
+-- cata
+sem_CBindAnnL :: CBindAnnL ->
+                 T_CBindAnnL
+sem_CBindAnnL list =
+    (Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list))
+-- semantic domain
+type T_CBindAnnL = EHCOpts ->
+                   (TraceOn -> [PP_Doc] -> TrPP) ->
+                   ( PP_Doc)
+sem_CBindAnnL_Cons :: T_CBindAnn ->
+                      T_CBindAnnL ->
+                      T_CBindAnnL
+sem_CBindAnnL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CBindAnnL_Nil :: T_CBindAnnL
+sem_CBindAnnL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CBindL ------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CBind 
+         child tl             : CBindL 
+      alternative Nil:
+-}
+-- cata
+sem_CBindL :: CBindL ->
+              T_CBindL
+sem_CBindL list =
+    (Prelude.foldr sem_CBindL_Cons sem_CBindL_Nil (Prelude.map sem_CBind list))
+-- semantic domain
+type T_CBindL = EHCOpts ->
+                (TraceOn -> [PP_Doc] -> TrPP) ->
+                ( PP_Doc)
+sem_CBindL_Cons :: T_CBind ->
+                   T_CBindL ->
+                   T_CBindL
+sem_CBindL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CBindL_Nil :: T_CBindL
+sem_CBindL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CBound ------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Bind:
+         child expr           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative Val:
+         child aspectKeyS     : {ACoreBindAspectKeyS}
+         child mlev           : {MetaLev}
+         child lbl            : {CLbl}
+         child expr           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative Ty:
+         child aspectKeyS     : {ACoreBindAspectKeyS}
+         child ty             : {Ty}
+         visit 0:
+            local trppHere    : _
+      alternative FFE:
+         child callconv       : {FFIWay}
+         child expEnt         : {ForeignEnt}
+         child expr           : CExpr 
+         child ty             : {Ty}
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CBound :: CBound ->
+              T_CBound
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
+sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
+    (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
+sem_CBound (CBound_Ty _aspectKeyS _ty) =
+    (sem_CBound_Ty _aspectKeyS _ty)
+sem_CBound (CBound_FFE _callconv _expEnt _expr _ty) =
+    (sem_CBound_FFE _callconv _expEnt (sem_CExpr _expr) _ty)
+-- semantic domain
+type T_CBound = EHCOpts ->
+                (TraceOn -> [PP_Doc] -> TrPP) ->
+                ( PP_Doc)
+sem_CBound_Bind :: T_CExpr ->
+                   T_CBound
+sem_CBound_Bind expr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _exprOtr ->
+           (case (_lhsIopts) of
+            { _exprOopts ->
+            (case (expr_ _exprOopts _exprOtr) of
+             { ( _exprIppAST) ->
+                 (case (ppNestTrPP ["CBound","Bind"] [] [_exprIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+sem_CBound_Val :: ACoreBindAspectKeyS ->
+                  MetaLev ->
+                  CLbl ->
+                  T_CExpr ->
+                  T_CBound
+sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _exprOtr ->
+           (case (_lhsIopts) of
+            { _exprOopts ->
+            (case (expr_ _exprOopts _exprOtr) of
+             { ( _exprIppAST) ->
+                 (case (ppNestTrPP ["CBound","Val"] [pp aspectKeyS_, pp mlev_, pp lbl_] [_exprIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+sem_CBound_Ty :: ACoreBindAspectKeyS ->
+                 Ty ->
+                 T_CBound
+sem_CBound_Ty aspectKeyS_ ty_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CBound","Ty"] [pp aspectKeyS_, pp ty_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CBound_FFE :: FFIWay ->
+                  ForeignEnt ->
+                  T_CExpr ->
+                  Ty ->
+                  T_CBound
+sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _exprOtr ->
+           (case (_lhsIopts) of
+            { _exprOopts ->
+            (case (expr_ _exprOopts _exprOtr) of
+             { ( _exprIppAST) ->
+                 (case (ppNestTrPP ["CBound","FFE"] [pp callconv_, pp expEnt_, pp ty_] [_exprIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+-- CBoundL -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CBound 
+         child tl             : CBoundL 
+      alternative Nil:
+-}
+-- cata
+sem_CBoundL :: CBoundL ->
+               T_CBoundL
+sem_CBoundL list =
+    (Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list))
+-- semantic domain
+type T_CBoundL = EHCOpts ->
+                 (TraceOn -> [PP_Doc] -> TrPP) ->
+                 ( PP_Doc)
+sem_CBoundL_Cons :: T_CBound ->
+                    T_CBoundL ->
+                    T_CBoundL
+sem_CBoundL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CBoundL_Nil :: T_CBoundL
+sem_CBoundL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CDataCon ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Con:
+         child conNm          : {HsName}
+         child tagNr          : {Int}
+         child arity          : {Int}
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CDataCon :: CDataCon ->
+                T_CDataCon
+sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) =
+    (sem_CDataCon_Con _conNm _tagNr _arity)
+-- semantic domain
+type T_CDataCon = EHCOpts ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CDataCon_Con :: HsName ->
+                    Int ->
+                    Int ->
+                    T_CDataCon
+sem_CDataCon_Con conNm_ tagNr_ arity_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CDataCon","Con"] [ppTrNm conNm_, pp tagNr_, pp arity_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+-- CDataConL ---------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CDataCon 
+         child tl             : CDataConL 
+      alternative Nil:
+-}
+-- cata
+sem_CDataConL :: CDataConL ->
+                 T_CDataConL
+sem_CDataConL list =
+    (Prelude.foldr sem_CDataConL_Cons sem_CDataConL_Nil (Prelude.map sem_CDataCon list))
+-- semantic domain
+type T_CDataConL = EHCOpts ->
+                   (TraceOn -> [PP_Doc] -> TrPP) ->
+                   ( PP_Doc)
+sem_CDataConL_Cons :: T_CDataCon ->
+                      T_CDataConL ->
+                      T_CDataConL
+sem_CDataConL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CDataConL_Nil :: T_CDataConL
+sem_CDataConL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CDeclMeta ---------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Data:
+         child tyNm           : {HsName}
+         child dataCons       : CDataConL 
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CDeclMeta :: CDeclMeta ->
+                 T_CDeclMeta
+sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) =
+    (sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons))
+-- semantic domain
+type T_CDeclMeta = EHCOpts ->
+                   (TraceOn -> [PP_Doc] -> TrPP) ->
+                   ( PP_Doc)
+sem_CDeclMeta_Data :: HsName ->
+                      T_CDataConL ->
+                      T_CDeclMeta
+sem_CDeclMeta_Data tyNm_ dataCons_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _dataConsOtr ->
+           (case (_lhsIopts) of
+            { _dataConsOopts ->
+            (case (dataCons_ _dataConsOopts _dataConsOtr) of
+             { ( _dataConsIppAST) ->
+                 (case (ppNestTrPP ["CDeclMeta","Data"] [ppTrNm tyNm_] [_dataConsIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+-- CDeclMetaL --------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CDeclMeta 
+         child tl             : CDeclMetaL 
+      alternative Nil:
+-}
+-- cata
+sem_CDeclMetaL :: CDeclMetaL ->
+                  T_CDeclMetaL
+sem_CDeclMetaL list =
+    (Prelude.foldr sem_CDeclMetaL_Cons sem_CDeclMetaL_Nil (Prelude.map sem_CDeclMeta list))
+-- semantic domain
+type T_CDeclMetaL = EHCOpts ->
+                    (TraceOn -> [PP_Doc] -> TrPP) ->
+                    ( PP_Doc)
+sem_CDeclMetaL_Cons :: T_CDeclMeta ->
+                       T_CDeclMetaL ->
+                       T_CDeclMetaL
+sem_CDeclMetaL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CDeclMetaL_Nil :: T_CDeclMetaL
+sem_CDeclMetaL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local trppHere    : _
+      alternative ExportData:
+         child nm             : {HsName}
+         child mbConNmL       : {Maybe [HsName]}
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+sem_CExport (CExport_ExportData _nm _mbConNmL) =
+    (sem_CExport_ExportData _nm _mbConNmL)
+-- semantic domain
+type T_CExport = EHCOpts ->
+                 (TraceOn -> [PP_Doc] -> TrPP) ->
+                 ( PP_Doc)
+sem_CExport_Export :: HsName ->
+                      T_CExport
+sem_CExport_Export nm_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExport","Export"] [ppTrNm nm_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExport_ExportData :: HsName ->
+                          (Maybe [HsName]) ->
+                          T_CExport
+sem_CExport_ExportData nm_ mbConNmL_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExport","ExportData"] [ppTrNm nm_, pp $ fmap ppParensCommas' mbConNmL_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+-- CExportL ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : 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 ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CExportL_Cons :: T_CExport ->
+                     T_CExportL ->
+                     T_CExportL
+sem_CExportL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CExportL_Nil :: T_CExportL
+sem_CExportL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CExpr -------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Var:
+         child ref            : {ACoreBindRef}
+         visit 0:
+            local trppHere    : _
+      alternative Int:
+         child int            : {Int}
+         visit 0:
+            local trppHere    : _
+      alternative Char:
+         child char           : {Char}
+         visit 0:
+            local trppHere    : _
+      alternative String:
+         child str            : {String}
+         visit 0:
+            local trppHere    : _
+      alternative Integer:
+         child integer        : {Integer}
+         visit 0:
+            local trppHere    : _
+      alternative Tup:
+         child tag            : {CTag}
+         visit 0:
+            local trppHere    : _
+      alternative Let:
+         child categ          : {CBindCateg}
+         child binds          : CBindL 
+         child body           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative App:
+         child func           : CExpr 
+         child arg            : CBound 
+         visit 0:
+            local trppHere    : _
+      alternative Lam:
+         child bind           : CBind 
+         child body           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative Case:
+         child expr           : CExpr 
+         child alts           : CAltL 
+         child dflt           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative CaseAltFail:
+         child failReason     : {CaseAltFailReason}
+         child errorExpr      : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative TupDel:
+         child expr           : CExpr 
+         child tag            : {CTag}
+         child nm             : {HsName}
+         child offset         : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative TupIns:
+         child expr           : CExpr 
+         child tag            : {CTag}
+         child nm             : {HsName}
+         child offset         : CExpr 
+         child fldExpr        : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative TupUpd:
+         child expr           : CExpr 
+         child tag            : {CTag}
+         child nm             : {HsName}
+         child offset         : CExpr 
+         child fldExpr        : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative FFI:
+         child callconv       : {FFIWay}
+         child safety         : {String}
+         child impEnt         : {ForeignEnt}
+         child ty             : {Ty}
+         visit 0:
+            local trppHere    : _
+      alternative Dbg:
+         child info           : {String}
+         visit 0:
+            local trppHere    : _
+      alternative Hole:
+         child uid            : {UID}
+         visit 0:
+            local trppHere    : _
+      alternative HoleLet:
+         child bindsUid       : {UID}
+         child body           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative CoeArg:
+         visit 0:
+            local trppHere    : _
+      alternative ImplsApp:
+         child func           : CExpr 
+         child uid            : {ImplsVarId}
+         visit 0:
+            local trppHere    : _
+      alternative ImplsLam:
+         child uid            : {ImplsVarId}
+         child body           : CExpr 
+         visit 0:
+            local trppHere    : _
+      alternative Ann:
+         child ann            : CExprAnn 
+         child expr           : CExpr 
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CExpr :: CExpr ->
+             T_CExpr
+sem_CExpr (CExpr_Var _ref) =
+    (sem_CExpr_Var _ref)
+sem_CExpr (CExpr_Int _int) =
+    (sem_CExpr_Int _int)
+sem_CExpr (CExpr_Char _char) =
+    (sem_CExpr_Char _char)
+sem_CExpr (CExpr_String _str) =
+    (sem_CExpr_String _str)
+sem_CExpr (CExpr_Integer _integer) =
+    (sem_CExpr_Integer _integer)
+sem_CExpr (CExpr_Tup _tag) =
+    (sem_CExpr_Tup _tag)
+sem_CExpr (CExpr_Let _categ _binds _body) =
+    (sem_CExpr_Let _categ (sem_CBindL _binds) (sem_CExpr _body))
+sem_CExpr (CExpr_App _func _arg) =
+    (sem_CExpr_App (sem_CExpr _func) (sem_CBound _arg))
+sem_CExpr (CExpr_Lam _bind _body) =
+    (sem_CExpr_Lam (sem_CBind _bind) (sem_CExpr _body))
+sem_CExpr (CExpr_Case _expr _alts _dflt) =
+    (sem_CExpr_Case (sem_CExpr _expr) (sem_CAltL _alts) (sem_CExpr _dflt))
+sem_CExpr (CExpr_CaseAltFail _failReason _errorExpr) =
+    (sem_CExpr_CaseAltFail _failReason (sem_CExpr _errorExpr))
+sem_CExpr (CExpr_TupDel _expr _tag _nm _offset) =
+    (sem_CExpr_TupDel (sem_CExpr _expr) _tag _nm (sem_CExpr _offset))
+sem_CExpr (CExpr_TupIns _expr _tag _nm _offset _fldExpr) =
+    (sem_CExpr_TupIns (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
+sem_CExpr (CExpr_TupUpd _expr _tag _nm _offset _fldExpr) =
+    (sem_CExpr_TupUpd (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
+sem_CExpr (CExpr_FFI _callconv _safety _impEnt _ty) =
+    (sem_CExpr_FFI _callconv _safety _impEnt _ty)
+sem_CExpr (CExpr_Dbg _info) =
+    (sem_CExpr_Dbg _info)
+sem_CExpr (CExpr_Hole _uid) =
+    (sem_CExpr_Hole _uid)
+sem_CExpr (CExpr_HoleLet _bindsUid _body) =
+    (sem_CExpr_HoleLet _bindsUid (sem_CExpr _body))
+sem_CExpr (CExpr_CoeArg) =
+    (sem_CExpr_CoeArg)
+sem_CExpr (CExpr_ImplsApp _func _uid) =
+    (sem_CExpr_ImplsApp (sem_CExpr _func) _uid)
+sem_CExpr (CExpr_ImplsLam _uid _body) =
+    (sem_CExpr_ImplsLam _uid (sem_CExpr _body))
+sem_CExpr (CExpr_Ann _ann _expr) =
+    (sem_CExpr_Ann (sem_CExprAnn _ann) (sem_CExpr _expr))
+-- semantic domain
+type T_CExpr = EHCOpts ->
+               (TraceOn -> [PP_Doc] -> TrPP) ->
+               ( PP_Doc)
+sem_CExpr_Var :: ACoreBindRef ->
+                 T_CExpr
+sem_CExpr_Var ref_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Var"] [pp ref_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Int :: Int ->
+                 T_CExpr
+sem_CExpr_Int int_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Int"] [pp int_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Char :: Char ->
+                  T_CExpr
+sem_CExpr_Char char_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Char"] [pp char_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_String :: String ->
+                    T_CExpr
+sem_CExpr_String str_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","String"] [pp str_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Integer :: Integer ->
+                     T_CExpr
+sem_CExpr_Integer integer_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Integer"] [pp integer_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Tup :: CTag ->
+                 T_CExpr
+sem_CExpr_Tup tag_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Tup"] [pp tag_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Let :: CBindCateg ->
+                 T_CBindL ->
+                 T_CExpr ->
+                 T_CExpr
+sem_CExpr_Let categ_ binds_ body_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _bodyOtr ->
+           (case (_lhsIopts) of
+            { _bodyOopts ->
+            (case (body_ _bodyOopts _bodyOtr) of
+             { ( _bodyIppAST) ->
+                 (case (_lhsItr) of
+                  { _bindsOtr ->
+                  (case (_lhsIopts) of
+                   { _bindsOopts ->
+                   (case (binds_ _bindsOopts _bindsOtr) of
+                    { ( _bindsIppAST) ->
+                        (case (ppNestTrPP ["CExpr","Let"] [pp categ_] [_bindsIppAST] _trppHere
+                               >-< _bodyIppAST) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+sem_CExpr_App :: T_CExpr ->
+                 T_CBound ->
+                 T_CExpr
+sem_CExpr_App func_ arg_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _argOtr ->
+           (case (_lhsIopts) of
+            { _argOopts ->
+            (case (arg_ _argOopts _argOtr) of
+             { ( _argIppAST) ->
+                 (case (_lhsItr) of
+                  { _funcOtr ->
+                  (case (_lhsIopts) of
+                   { _funcOopts ->
+                   (case (func_ _funcOopts _funcOtr) of
+                    { ( _funcIppAST) ->
+                        (case (ppNestTrPP ["CExpr","App"] [] [_funcIppAST,_argIppAST] _trppHere) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+sem_CExpr_Lam :: T_CBind ->
+                 T_CExpr ->
+                 T_CExpr
+sem_CExpr_Lam bind_ body_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _bodyOtr ->
+           (case (_lhsIopts) of
+            { _bodyOopts ->
+            (case (body_ _bodyOopts _bodyOtr) of
+             { ( _bodyIppAST) ->
+                 (case (_lhsItr) of
+                  { _bindOtr ->
+                  (case (_lhsIopts) of
+                   { _bindOopts ->
+                   (case (bind_ _bindOopts _bindOtr) of
+                    { ( _bindIppAST) ->
+                        (case (ppNestTrPP ["CExpr","Lam"] [] [_bindIppAST,_bodyIppAST] _trppHere) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+sem_CExpr_Case :: T_CExpr ->
+                  T_CAltL ->
+                  T_CExpr ->
+                  T_CExpr
+sem_CExpr_Case expr_ alts_ dflt_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _dfltOtr ->
+           (case (_lhsIopts) of
+            { _dfltOopts ->
+            (case (dflt_ _dfltOopts _dfltOtr) of
+             { ( _dfltIppAST) ->
+                 (case (_lhsItr) of
+                  { _altsOtr ->
+                  (case (_lhsIopts) of
+                   { _altsOopts ->
+                   (case (alts_ _altsOopts _altsOtr) of
+                    { ( _altsIppAST) ->
+                        (case (_lhsItr) of
+                         { _exprOtr ->
+                         (case (_lhsIopts) of
+                          { _exprOopts ->
+                          (case (expr_ _exprOopts _exprOtr) of
+                           { ( _exprIppAST) ->
+                               (case (ppNestTrPP ["CExpr","Case"] [] [_exprIppAST, _dfltIppAST, _altsIppAST] _trppHere) of
+                                { _lhsOppAST ->
+                                ( _lhsOppAST) }) }) }) }) }) }) }) }) }) }) }))
+sem_CExpr_CaseAltFail :: CaseAltFailReason ->
+                         T_CExpr ->
+                         T_CExpr
+sem_CExpr_CaseAltFail failReason_ errorExpr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _errorExprOtr ->
+           (case (_lhsIopts) of
+            { _errorExprOopts ->
+            (case (errorExpr_ _errorExprOopts _errorExprOtr) of
+             { ( _errorExprIppAST) ->
+                 (case (ppNestTrPP ["CExpr","CaseAltFail"] [pp failReason_] [_errorExprIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+sem_CExpr_TupDel :: T_CExpr ->
+                    CTag ->
+                    HsName ->
+                    T_CExpr ->
+                    T_CExpr
+sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _offsetOtr ->
+           (case (_lhsIopts) of
+            { _offsetOopts ->
+            (case (offset_ _offsetOopts _offsetOtr) of
+             { ( _offsetIppAST) ->
+                 (case (_lhsItr) of
+                  { _exprOtr ->
+                  (case (_lhsIopts) of
+                   { _exprOopts ->
+                   (case (expr_ _exprOopts _exprOtr) of
+                    { ( _exprIppAST) ->
+                        (case (ppNestTrPP ["CExpr","TupDel"] [pp tag_, ppTrNm nm_] [_offsetIppAST, _exprIppAST] _trppHere) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+sem_CExpr_TupIns :: T_CExpr ->
+                    CTag ->
+                    HsName ->
+                    T_CExpr ->
+                    T_CExpr ->
+                    T_CExpr
+sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _fldExprOtr ->
+           (case (_lhsIopts) of
+            { _fldExprOopts ->
+            (case (fldExpr_ _fldExprOopts _fldExprOtr) of
+             { ( _fldExprIppAST) ->
+                 (case (_lhsItr) of
+                  { _offsetOtr ->
+                  (case (_lhsIopts) of
+                   { _offsetOopts ->
+                   (case (offset_ _offsetOopts _offsetOtr) of
+                    { ( _offsetIppAST) ->
+                        (case (_lhsItr) of
+                         { _exprOtr ->
+                         (case (_lhsIopts) of
+                          { _exprOopts ->
+                          (case (expr_ _exprOopts _exprOtr) of
+                           { ( _exprIppAST) ->
+                               (case (ppNestTrPP ["CExpr","TupIns"] [pp tag_, ppTrNm nm_] [_offsetIppAST, _fldExprIppAST, _exprIppAST] _trppHere) of
+                                { _lhsOppAST ->
+                                ( _lhsOppAST) }) }) }) }) }) }) }) }) }) }) }))
+sem_CExpr_TupUpd :: T_CExpr ->
+                    CTag ->
+                    HsName ->
+                    T_CExpr ->
+                    T_CExpr ->
+                    T_CExpr
+sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _fldExprOtr ->
+           (case (_lhsIopts) of
+            { _fldExprOopts ->
+            (case (fldExpr_ _fldExprOopts _fldExprOtr) of
+             { ( _fldExprIppAST) ->
+                 (case (_lhsItr) of
+                  { _offsetOtr ->
+                  (case (_lhsIopts) of
+                   { _offsetOopts ->
+                   (case (offset_ _offsetOopts _offsetOtr) of
+                    { ( _offsetIppAST) ->
+                        (case (_lhsItr) of
+                         { _exprOtr ->
+                         (case (_lhsIopts) of
+                          { _exprOopts ->
+                          (case (expr_ _exprOopts _exprOtr) of
+                           { ( _exprIppAST) ->
+                               (case (ppNestTrPP ["CExpr","TupUpd"] [pp tag_, ppTrNm nm_] [_offsetIppAST, _fldExprIppAST, _exprIppAST] _trppHere) of
+                                { _lhsOppAST ->
+                                ( _lhsOppAST) }) }) }) }) }) }) }) }) }) }) }))
+sem_CExpr_FFI :: FFIWay ->
+                 String ->
+                 ForeignEnt ->
+                 Ty ->
+                 T_CExpr
+sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","FFI"] [pp callconv_, pp safety_, pp impEnt_, pp ty_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Dbg :: String ->
+                 T_CExpr
+sem_CExpr_Dbg info_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Dbg"] [pp info_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_Hole :: UID ->
+                  T_CExpr
+sem_CExpr_Hole uid_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","Hole"] [pp uid_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_HoleLet :: UID ->
+                     T_CExpr ->
+                     T_CExpr
+sem_CExpr_HoleLet bindsUid_ body_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _bodyOtr ->
+           (case (_lhsIopts) of
+            { _bodyOopts ->
+            (case (body_ _bodyOopts _bodyOtr) of
+             { ( _bodyIppAST) ->
+                 (case (ppNestTrPP ["CExpr","HoleLet"] [pp bindsUid_] [_bodyIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+sem_CExpr_CoeArg :: T_CExpr
+sem_CExpr_CoeArg =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExpr","CoeArg"] [] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExpr_ImplsApp :: T_CExpr ->
+                      ImplsVarId ->
+                      T_CExpr
+sem_CExpr_ImplsApp func_ uid_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _funcOtr ->
+           (case (_lhsIopts) of
+            { _funcOopts ->
+            (case (func_ _funcOopts _funcOtr) of
+             { ( _funcIppAST) ->
+                 (case (ppNestTrPP ["CExpr","ImplsApp"] [pp uid_] [_funcIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+sem_CExpr_ImplsLam :: ImplsVarId ->
+                      T_CExpr ->
+                      T_CExpr
+sem_CExpr_ImplsLam uid_ body_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _bodyOtr ->
+           (case (_lhsIopts) of
+            { _bodyOopts ->
+            (case (body_ _bodyOopts _bodyOtr) of
+             { ( _bodyIppAST) ->
+                 (case (ppNestTrPP ["CExpr","ImplsLam"] [pp uid_] [_bodyIppAST] _trppHere) of
+                  { _lhsOppAST ->
+                  ( _lhsOppAST) }) }) }) }) }))
+sem_CExpr_Ann :: T_CExprAnn ->
+                 T_CExpr ->
+                 T_CExpr
+sem_CExpr_Ann ann_ expr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _exprOtr ->
+           (case (_lhsIopts) of
+            { _exprOopts ->
+            (case (expr_ _exprOopts _exprOtr) of
+             { ( _exprIppAST) ->
+                 (case (_lhsItr) of
+                  { _annOtr ->
+                  (case (_lhsIopts) of
+                   { _annOopts ->
+                   (case (ann_ _annOopts _annOtr) of
+                    { ( _annIppAST) ->
+                        (case (ppNestTrPP ["CExpr","Ann"] [] [_annIppAST, _exprIppAST] _trppHere) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+-- CExprAnn ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Ty:
+         child ty             : {Ty}
+         visit 0:
+            local trppHere    : _
+      alternative Debug:
+         child info           : {String}
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CExprAnn :: CExprAnn ->
+                T_CExprAnn
+sem_CExprAnn (CExprAnn_Ty _ty) =
+    (sem_CExprAnn_Ty _ty)
+sem_CExprAnn (CExprAnn_Debug _info) =
+    (sem_CExprAnn_Debug _info)
+-- semantic domain
+type T_CExprAnn = EHCOpts ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CExprAnn_Ty :: Ty ->
+                   T_CExprAnn
+sem_CExprAnn_Ty ty_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExprAnn","Ty"] [pp ty_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CExprAnn_Debug :: String ->
+                      T_CExprAnn
+sem_CExprAnn_Debug info_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CExprAnn","Debug"] [pp info_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+-- CImport -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Import:
+         child nm             : {HsName}
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CImport :: CImport ->
+               T_CImport
+sem_CImport (CImport_Import _nm) =
+    (sem_CImport_Import _nm)
+-- semantic domain
+type T_CImport = EHCOpts ->
+                 (TraceOn -> [PP_Doc] -> TrPP) ->
+                 ( PP_Doc)
+sem_CImport_Import :: HsName ->
+                      T_CImport
+sem_CImport_Import nm_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CImport","Import"] [ppTrNm nm_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+-- CImportL ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CImport 
+         child tl             : CImportL 
+      alternative Nil:
+-}
+-- cata
+sem_CImportL :: CImportL ->
+                T_CImportL
+sem_CImportL list =
+    (Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list))
+-- semantic domain
+type T_CImportL = EHCOpts ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CImportL_Cons :: T_CImport ->
+                     T_CImportL ->
+                     T_CImportL
+sem_CImportL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CImportL_Nil :: T_CImportL
+sem_CImportL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CModule -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Mod:
+         child moduleNm       : {HsName}
+         child exports        : CExportL 
+         child imports        : CImportL 
+         child declMetas      : CDeclMetaL 
+         child expr           : CExpr 
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CModule :: CModule ->
+               T_CModule
+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 ->
+                 (TraceOn -> [PP_Doc] -> TrPP) ->
+                 ( PP_Doc)
+sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
+                   T_CImportL ->
+                   T_CDeclMetaL ->
+                   T_CExpr ->
+                   T_CModule
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _exprOtr ->
+           (case (_lhsIopts) of
+            { _exprOopts ->
+            (case (expr_ _exprOopts _exprOtr) of
+             { ( _exprIppAST) ->
+                 (case (_lhsItr) of
+                  { _declMetasOtr ->
+                  (case (_lhsIopts) of
+                   { _declMetasOopts ->
+                   (case (declMetas_ _declMetasOopts _declMetasOtr) of
+                    { ( _declMetasIppAST) ->
+                        (case (_lhsItr) of
+                         { _importsOtr ->
+                         (case (_lhsIopts) of
+                          { _importsOopts ->
+                          (case (imports_ _importsOopts _importsOtr) of
+                           { ( _importsIppAST) ->
+                               (case (_lhsItr) of
+                                { _exportsOtr ->
+                                (case (_lhsIopts) of
+                                 { _exportsOopts ->
+                                 (case (exports_ _exportsOopts _exportsOtr) of
+                                  { ( _exportsIppAST) ->
+                                      (case (ppNestTrPP ["CModule","Mod"] [ppTrNm moduleNm_] [_exportsIppAST,_importsIppAST,_declMetasIppAST,_exprIppAST] _trppHere) of
+                                       { _lhsOppAST ->
+                                       ( _lhsOppAST) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+-- CPat --------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Var:
+         child pnm            : {HsName}
+         visit 0:
+            local trppHere    : _
+      alternative Con:
+         child tag            : {CTag}
+         child rest           : CPatRest 
+         child binds          : CPatFldL 
+         visit 0:
+            local trppHere    : _
+      alternative Int:
+         child int            : {Int}
+         visit 0:
+            local trppHere    : _
+      alternative Char:
+         child char           : {Char}
+         visit 0:
+            local trppHere    : _
+      alternative BoolExpr:
+         child cexpr          : {CExpr}
+         visit 0:
+            inst  cexpr'      : CExpr 
+            local trppHere    : _
+-}
+-- cata
+sem_CPat :: CPat ->
+            T_CPat
+sem_CPat (CPat_Var _pnm) =
+    (sem_CPat_Var _pnm)
+sem_CPat (CPat_Con _tag _rest _binds) =
+    (sem_CPat_Con _tag (sem_CPatRest _rest) (sem_CPatFldL _binds))
+sem_CPat (CPat_Int _int) =
+    (sem_CPat_Int _int)
+sem_CPat (CPat_Char _char) =
+    (sem_CPat_Char _char)
+sem_CPat (CPat_BoolExpr _cexpr) =
+    (sem_CPat_BoolExpr _cexpr)
+-- semantic domain
+type T_CPat = EHCOpts ->
+              (TraceOn -> [PP_Doc] -> TrPP) ->
+              ( PP_Doc)
+sem_CPat_Var :: HsName ->
+                T_CPat
+sem_CPat_Var pnm_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CPat","Var"] [ppTrNm pnm_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CPat_Con :: CTag ->
+                T_CPatRest ->
+                T_CPatFldL ->
+                T_CPat
+sem_CPat_Con tag_ rest_ binds_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _bindsOtr ->
+           (case (_lhsIopts) of
+            { _bindsOopts ->
+            (case (binds_ _bindsOopts _bindsOtr) of
+             { ( _bindsIppAST) ->
+                 (case (_lhsItr) of
+                  { _restOtr ->
+                  (case (_lhsIopts) of
+                   { _restOopts ->
+                   (case (rest_ _restOopts _restOtr) of
+                    { ( _restIppAST) ->
+                        (case (ppNestTrPP ["CPat","Con"] [pp tag_] [_restIppAST, _bindsIppAST] _trppHere) of
+                         { _lhsOppAST ->
+                         ( _lhsOppAST) }) }) }) }) }) }) }) }))
+sem_CPat_Int :: Int ->
+                T_CPat
+sem_CPat_Int int_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CPat","Int"] [pp int_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CPat_Char :: Char ->
+                 T_CPat
+sem_CPat_Char char_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CPat","Char"] [pp char_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CPat_BoolExpr :: CExpr ->
+                     T_CPat
+sem_CPat_BoolExpr cexpr_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (cexpr_) of
+          { cexpr'_val_ ->
+          (case ((sem_CExpr cexpr'_val_)) of
+           { cexpr'_inst_ ->
+           (case (trppEmpty) of
+            { _trppHere ->
+            (case (_lhsItr) of
+             { _cexpr'Otr ->
+             (case (_lhsIopts) of
+              { _cexpr'Oopts ->
+              (case (cexpr'_inst_ _cexpr'Oopts _cexpr'Otr) of
+               { ( _cexpr'IppAST) ->
+                   (case (ppNestTrPP ["CPat","BoolExpr"] [] [_cexpr'IppAST] _trppHere) of
+                    { _lhsOppAST ->
+                    ( _lhsOppAST) }) }) }) }) }) }) }))
+-- CPatFld -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Fld:
+         child lbl            : {HsName}
+         child offset         : CExpr 
+         child bind           : CBind 
+         child fldAnns        : CBindAnnL 
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CPatFld :: CPatFld ->
+               T_CPatFld
+sem_CPatFld (CPatFld_Fld _lbl _offset _bind _fldAnns) =
+    (sem_CPatFld_Fld _lbl (sem_CExpr _offset) (sem_CBind _bind) (sem_CBindAnnL _fldAnns))
+-- semantic domain
+type T_CPatFld = EHCOpts ->
+                 (TraceOn -> [PP_Doc] -> TrPP) ->
+                 ( PP_Doc)
+sem_CPatFld_Fld :: HsName ->
+                   T_CExpr ->
+                   T_CBind ->
+                   T_CBindAnnL ->
+                   T_CPatFld
+sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (_lhsItr) of
+           { _fldAnnsOtr ->
+           (case (_lhsIopts) of
+            { _fldAnnsOopts ->
+            (case (fldAnns_ _fldAnnsOopts _fldAnnsOtr) of
+             { ( _fldAnnsIppAST) ->
+                 (case (_lhsItr) of
+                  { _bindOtr ->
+                  (case (_lhsIopts) of
+                   { _bindOopts ->
+                   (case (bind_ _bindOopts _bindOtr) of
+                    { ( _bindIppAST) ->
+                        (case (_lhsItr) of
+                         { _offsetOtr ->
+                         (case (_lhsIopts) of
+                          { _offsetOopts ->
+                          (case (offset_ _offsetOopts _offsetOtr) of
+                           { ( _offsetIppAST) ->
+                               (case (ppNestTrPP ["CPatFld","Fld"] [ppTrNm lbl_] [_offsetIppAST, _bindIppAST, _fldAnnsIppAST] _trppHere) of
+                                { _lhsOppAST ->
+                                ( _lhsOppAST) }) }) }) }) }) }) }) }) }) }) }))
+-- CPatFldL ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Cons:
+         child hd             : CPatFld 
+         child tl             : CPatFldL 
+      alternative Nil:
+-}
+-- cata
+sem_CPatFldL :: CPatFldL ->
+                T_CPatFldL
+sem_CPatFldL list =
+    (Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list))
+-- semantic domain
+type T_CPatFldL = EHCOpts ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CPatFldL_Cons :: T_CPatFld ->
+                     T_CPatFldL ->
+                     T_CPatFldL
+sem_CPatFldL_Cons hd_ tl_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (_lhsItr) of
+          { _tlOtr ->
+          (case (_lhsIopts) of
+           { _tlOopts ->
+           (case (tl_ _tlOopts _tlOtr) of
+            { ( _tlIppAST) ->
+                (case (_lhsItr) of
+                 { _hdOtr ->
+                 (case (_lhsIopts) of
+                  { _hdOopts ->
+                  (case (hd_ _hdOopts _hdOtr) of
+                   { ( _hdIppAST) ->
+                       (case (_hdIppAST >-< _tlIppAST) of
+                        { _lhsOppAST ->
+                        ( _lhsOppAST) }) }) }) }) }) }) }))
+sem_CPatFldL_Nil :: T_CPatFldL
+sem_CPatFldL_Nil =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (empty) of
+          { _lhsOppAST ->
+          ( _lhsOppAST) }))
+-- CPatRest ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         opts                 : EHCOpts
+         tr                   : TraceOn -> [PP_Doc] -> TrPP
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative Var:
+         child nm             : {HsName}
+         visit 0:
+            local trppHere    : _
+      alternative Empty:
+         visit 0:
+            local trppHere    : _
+-}
+-- cata
+sem_CPatRest :: CPatRest ->
+                T_CPatRest
+sem_CPatRest (CPatRest_Var _nm) =
+    (sem_CPatRest_Var _nm)
+sem_CPatRest (CPatRest_Empty) =
+    (sem_CPatRest_Empty)
+-- semantic domain
+type T_CPatRest = EHCOpts ->
+                  (TraceOn -> [PP_Doc] -> TrPP) ->
+                  ( PP_Doc)
+sem_CPatRest_Var :: HsName ->
+                    T_CPatRest
+sem_CPatRest_Var nm_ =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CPatRest","Var"] [ppTrNm nm_] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+sem_CPatRest_Empty :: T_CPatRest
+sem_CPatRest_Empty =
+    (\ _lhsIopts
+       _lhsItr ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (ppNestTrPP ["CPatRest","Empty"] [] [] _trppHere) of
+           { _lhsOppAST ->
+           ( _lhsOppAST) }) }))
+-- CodeAGItf ---------------------------------------------------
+{-
+   visit 0:
+      inherited attribute:
+         opts                 : EHCOpts
+      synthesized attribute:
+         ppAST                : PP_Doc
+   alternatives:
+      alternative AGItf:
+         child module         : CModule 
+         visit 0:
+            local trppHere    : _
+            local tr          : _
+-}
+-- cata
+sem_CodeAGItf :: CodeAGItf ->
+                 T_CodeAGItf
+sem_CodeAGItf (CodeAGItf_AGItf _module) =
+    (sem_CodeAGItf_AGItf (sem_CModule _module))
+-- semantic domain
+type T_CodeAGItf = EHCOpts ->
+                   ( PP_Doc)
+data Inh_CodeAGItf = Inh_CodeAGItf {opts_Inh_CodeAGItf :: !(EHCOpts)}
+data Syn_CodeAGItf = Syn_CodeAGItf {ppAST_Syn_CodeAGItf :: !(PP_Doc)}
+wrap_CodeAGItf :: T_CodeAGItf ->
+                  Inh_CodeAGItf ->
+                  Syn_CodeAGItf
+wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIopts) =
+    (let ( _lhsOppAST) = sem _lhsIopts
+     in  (Syn_CodeAGItf _lhsOppAST))
+sem_CodeAGItf_AGItf :: T_CModule ->
+                       T_CodeAGItf
+sem_CodeAGItf_AGItf module_ =
+    (\ _lhsIopts ->
+         (case (trppEmpty) of
+          { _trppHere ->
+          (case (trPP (`Set.member` ehcOptTraceOn _lhsIopts)) of
+           { _tr ->
+           (case (_tr) of
+            { _moduleOtr ->
+            (case (_lhsIopts) of
+             { _moduleOopts ->
+             (case (module_ _moduleOopts _moduleOtr) of
+              { ( _moduleIppAST) ->
+                  (case (ppNestTrPP ["CodeAGItf","AGItf"] [] [_moduleIppAST] _trppHere) of
+                   { _lhsOppAST ->
+                   ( _lhsOppAST) }) }) }) }) }) }))
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Subst.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Subst.ag)
 module UHC.Light.Compiler.Core.Subst(CSubst
 , cSubstAppExpr, cSubstAppBind, cSubstAppBound
 , cSubstAppExprAndBinds
@@ -35,8 +35,8 @@
 
 
 
-type CSubstInfo = CSubstInfo' CExpr CMetaVal CBind CBound CTy
-type CSubst     = CSubst'     CExpr CMetaVal CBind CBound CTy
+type CSubstInfo = CSubstInfo' CExpr CBind CBound CTy
+type CSubst     = CSubst'     CExpr CBind CBound CTy
 
 
 
@@ -83,7 +83,7 @@
 
 
 
-instance CSubstitutable CExpr CMetaVal CBind CBound CTy CExpr where
+instance CSubstitutable CExpr CBind CBound CTy CExpr where
   cSubstApp cs ce | Map.null cs
     =  ce
   cSubstApp cs ce
@@ -576,15 +576,9 @@
          cRepl                : CBound 
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cRepl       : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cRepl       : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -608,10 +602,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -631,10 +623,9 @@
 wrap_CBound sem (Inh_CBound _lhsIcSubst _lhsIcoeArg _lhsIdoDeepSubst) =
     (let ( _lhsOcRepl) = sem _lhsIcSubst _lhsIcoeArg _lhsIdoDeepSubst
      in  (Syn_CBound _lhsOcRepl))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIcSubst
        _lhsIcoeArg
        _lhsIdoDeepSubst ->
@@ -646,35 +637,7 @@
             { _exprOcSubst ->
             (case (expr_ _exprOcSubst _exprOcoeArg _exprOdoDeepSubst) of
              { ( _exprIcRepl) ->
-                 (case (_lhsIdoDeepSubst) of
-                  { _bindMetaOdoDeepSubst ->
-                  (case (_lhsIcoeArg) of
-                   { _bindMetaOcoeArg ->
-                   (case (_lhsIcSubst) of
-                    { _bindMetaOcSubst ->
-                    (case (bindMeta_ _bindMetaOcSubst _bindMetaOcoeArg _bindMetaOdoDeepSubst) of
-                     { ( _bindMetaIcRepl) ->
-                         (case (CBound_Bind _bindMetaIcRepl _exprIcRepl) of
-                          { _cRepl ->
-                          (case (_cRepl) of
-                           { _lhsOcRepl ->
-                           ( _lhsOcRepl) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (_lhsIdoDeepSubst) of
-          { _cmetasOdoDeepSubst ->
-          (case (_lhsIcoeArg) of
-           { _cmetasOcoeArg ->
-           (case (_lhsIcSubst) of
-            { _cmetasOcSubst ->
-            (case (cmetas_ _cmetasOcSubst _cmetasOcoeArg _cmetasOdoDeepSubst) of
-             { ( _cmetasIcRepl) ->
-                 (case (CBound_Meta aspectKeyS_ _cmetasIcRepl) of
+                 (case (CBound_Bind _exprIcRepl) of
                   { _cRepl ->
                   (case (_cRepl) of
                    { _lhsOcRepl ->
@@ -1960,239 +1923,6 @@
      (case (_cRepl) of
       { _lhsOcRepl ->
       ( _lhsOcRepl) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cSubst               : CSubst
-         coeArg               : CExpr 
-         doDeepSubst          : Bool
-      synthesized attribute:
-         cRepl                : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cRepl       : _
-      alternative Function0:
-         visit 0:
-            local cRepl       : _
-      alternative Function1:
-         visit 0:
-            local cRepl       : _
-      alternative Apply0:
-         visit 0:
-            local cRepl       : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = CSubst ->
-                   CExpr ->
-                   Bool ->
-                   ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaBind_Plain) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaBind_Function0) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaBind_Function1) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaBind_Apply0) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cSubst               : CSubst
-         coeArg               : CExpr 
-         doDeepSubst          : Bool
-      synthesized attribute:
-         cRepl                : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cRepl       : _
-      alternative Dict:
-         visit 0:
-            local cRepl       : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cRepl       : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cRepl       : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cRepl       : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = CSubst ->
-                  CExpr ->
-                  Bool ->
-                  ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaVal_Val) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaVal_Dict) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (CMetaVal_Track track_) of
-          { _cRepl ->
-          (case (_cRepl) of
-           { _lhsOcRepl ->
-           ( _lhsOcRepl) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cSubst               : CSubst
-         coeArg               : CExpr 
-         doDeepSubst          : Bool
-      synthesized attribute:
-         cRepl                : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cRepl       : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = CSubst ->
-                CExpr ->
-                Bool ->
-                ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIcSubst
-       _lhsIcoeArg
-       _lhsIdoDeepSubst ->
-         (case (_lhsIdoDeepSubst) of
-          { _x2OdoDeepSubst ->
-          (case (_lhsIcoeArg) of
-           { _x2OcoeArg ->
-           (case (_lhsIcSubst) of
-            { _x2OcSubst ->
-            (case (x2_ _x2OcSubst _x2OcoeArg _x2OdoDeepSubst) of
-             { ( _x2IcRepl) ->
-                 (case (_lhsIdoDeepSubst) of
-                  { _x1OdoDeepSubst ->
-                  (case (_lhsIcoeArg) of
-                   { _x1OcoeArg ->
-                   (case (_lhsIcSubst) of
-                    { _x1OcSubst ->
-                    (case (x1_ _x1OcSubst _x1OcoeArg _x1OdoDeepSubst) of
-                     { ( _x1IcRepl) ->
-                         (case ((_x1IcRepl,_x2IcRepl)) of
-                          { _cRepl ->
-                          (case (_cRepl) of
-                           { _lhsOcRepl ->
-                           ( _lhsOcRepl) }) }) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/ToCoreRun)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/ToCoreRun)
 module UHC.Light.Compiler.Core.ToCoreRun(Inh_CodeAGItf (..), Syn_CodeAGItf (..), wrap_CodeAGItf, sem_CodeAGItf
 , cmod2CoreRun', cmod2CoreRun'', cmod2CoreRun) where
 
@@ -912,7 +912,6 @@
          stackDepthMax        : Int
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
@@ -931,9 +930,6 @@
             local stackDepthExpr : _
             intra isToBeThunked : _
             intra toBe        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -972,10 +968,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -998,10 +992,9 @@
                   EHCOpts ->
                   Int ->
                   ( ([(HsName, CR.Bind)]),Int,Int,Int)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIlev
@@ -1043,128 +1036,71 @@
                       { _exprOrefOffset ->
                       (case (expr_1 _exprOlev _exprOrefOffset _exprOwhatAbove) of
                        { ( _exprInm2refGath,_exprIrefOffset,expr_2) ->
-                           (case (_lhsIrefOffset) of
-                            { _bindMetaOrefOffset ->
-                            (case (bindMeta_ _bindMetaOrefOffset) of
-                             { ( _bindMetaInm2refGath,_bindMetaIrefOffset,bindMeta_1) ->
-                                 (case (_bindMetaInm2refGath `CR.nm2refUnion` _exprInm2refGath) of
-                                  { _lhsOnm2refGath ->
-                                  (case (if _isToBeThunked then _lhsIrefOffset else _exprIrefOffset) of
-                                   { _lhsOrefOffset ->
-                                   (case ((let sem_CBound_Bind_1 :: T_CBound_1
-                                               sem_CBound_Bind_1 =
-                                                   (\ _lhsIimpNmLkup
-                                                      _lhsIisTopApp
-                                                      _lhsIisTopTup
-                                                      _lhsIletBindingsCateg
-                                                      _lhsImodNr
-                                                      _lhsInm2ref
-                                                      _lhsIopts
-                                                      _lhsIstackDepth ->
-                                                        (case (if _isToBeThunked then TailCtx_TailCall else TailCtx_Plain) of
-                                                         { _tailCtx ->
-                                                         (case (_tailCtx) of
-                                                          { _exprOtailCtx ->
-                                                          (case (_lhsInm2ref) of
-                                                           { _exprOnm2ref ->
-                                                           (case (_lhsIimpNmLkup) of
-                                                            { _exprOimpNmLkup ->
-                                                            (case (if _isToBeThunked then _exprInm2refGath else CR.emptyNm2RefMp) of
-                                                             { _nm2refNew ->
-                                                             (case (_isToBeThunked || whatExprIsLam _exprIwhatBelow) of
-                                                              { _isToBeALam ->
-                                                              (case (if _isToBeALam then 0                 else _lhsIstackDepth) of
-                                                               { _exprOstackDepth ->
-                                                               (case (_lhsIopts) of
-                                                                { _exprOopts ->
-                                                                (case (_lhsImodNr) of
-                                                                 { _exprOmodNr ->
-                                                                 (case (_lhsIevalCtx) of
-                                                                  { _exprOevalCtx ->
-                                                                  (case (True) of
-                                                                   { _exprOisTopTup ->
-                                                                   (case (True) of
-                                                                    { _exprOisTopApp ->
-                                                                    (case (expr_2 _exprOevalCtx _exprOimpNmLkup _exprOisTopApp _exprOisTopTup _exprOmodNr _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of
-                                                                     { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->
-                                                                         (case (max _exprIstackDepth _exprIstackDepthMax) of
-                                                                          { _stackDepthMaxThunked ->
-                                                                          (case (case _toBe of
-                                                                                     ToBe_Forced   -> tailrec _tailCtx . CR.mkEval
-                                                                                     ToBe_Thunked  -> CR.Exp_Lam (Just _lhsInm)            0                          (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)
-                                                                                     ToBe_LeftAsIs -> id) of
-                                                                           { _creMkForce ->
-                                                                           (case (_creMkForce _exprIcre) of
-                                                                            { _creBind ->
-                                                                            (case ([( _lhsInm, _creBind )]) of
-                                                                             { _crb ->
-                                                                             (case (_crb) of
-                                                                              { _lhsOcrb ->
-                                                                              (case (if _isToBeThunked then _lhsIrefOffset else max _exprIrefOffset _exprIrefOffsetMax) of
-                                                                               { _lhsOrefOffsetMax ->
-                                                                               (case (if _isToBeALam then _lhsIstackDepth+1 else _exprIstackDepth) of
-                                                                                { _stackDepthExpr ->
-                                                                                (case (_stackDepthExpr) of
-                                                                                 { _lhsOstackDepth ->
-                                                                                 (case (if _isToBeALam then _stackDepthExpr else _stackDepthMaxThunked) of
-                                                                                  { _lhsOstackDepthMax ->
-                                                                                  ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-                                           in  sem_CBound_Bind_1)) of
-                                    { ( sem_CBound_1) ->
-                                    ( _lhsOnm2refGath,_lhsOrefOffset,sem_CBound_1) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIlev
-       _lhsInm
-       _lhsIrefOffset ->
-         (case (_lhsIrefOffset) of
-          { _cmetasOrefOffset ->
-          (case (cmetas_ _cmetasOrefOffset) of
-           { ( _cmetasInm2refGath,_cmetasIrefOffset,cmetas_1) ->
-               (case (_cmetasInm2refGath) of
-                { _lhsOnm2refGath ->
-                (case (_cmetasIrefOffset) of
-                 { _lhsOrefOffset ->
-                 (case ((let sem_CBound_Meta_1 :: T_CBound_1
-                             sem_CBound_Meta_1 =
-                                 (\ _lhsIimpNmLkup
-                                    _lhsIisTopApp
-                                    _lhsIisTopTup
-                                    _lhsIletBindingsCateg
-                                    _lhsImodNr
-                                    _lhsInm2ref
-                                    _lhsIopts
-                                    _lhsIstackDepth ->
-                                      (case ([]) of
-                                       { _lhsOcrb ->
-                                       (case (0) of
-                                        { _lhsOrefOffsetMax ->
-                                        (case (_lhsIstackDepth) of
-                                         { _cmetasOstackDepth ->
-                                         (case (_lhsIopts) of
-                                          { _cmetasOopts ->
-                                          (case (_lhsInm2ref) of
-                                           { _cmetasOnm2ref ->
-                                           (case (_lhsImodNr) of
-                                            { _cmetasOmodNr ->
-                                            (case (_lhsIlev) of
-                                             { _cmetasOlev ->
-                                             (case (_lhsIimpNmLkup) of
-                                              { _cmetasOimpNmLkup ->
-                                              (case (cmetas_1 _cmetasOimpNmLkup _cmetasOlev _cmetasOmodNr _cmetasOnm2ref _cmetasOopts _cmetasOstackDepth) of
-                                               { ( _cmetasIstackDepth) ->
-                                                   (case (_cmetasIstackDepth) of
-                                                    { _lhsOstackDepth ->
-                                                    (case (0) of
-                                                     { _lhsOstackDepthMax ->
-                                                     ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }))
-                         in  sem_CBound_Meta_1)) of
-                  { ( sem_CBound_1) ->
-                  ( _lhsOnm2refGath,_lhsOrefOffset,sem_CBound_1) }) }) }) }) }))
+                           (case (_exprInm2refGath) of
+                            { _lhsOnm2refGath ->
+                            (case (if _isToBeThunked then _lhsIrefOffset else _exprIrefOffset) of
+                             { _lhsOrefOffset ->
+                             (case ((let sem_CBound_Bind_1 :: T_CBound_1
+                                         sem_CBound_Bind_1 =
+                                             (\ _lhsIimpNmLkup
+                                                _lhsIisTopApp
+                                                _lhsIisTopTup
+                                                _lhsIletBindingsCateg
+                                                _lhsImodNr
+                                                _lhsInm2ref
+                                                _lhsIopts
+                                                _lhsIstackDepth ->
+                                                  (case (if _isToBeThunked then TailCtx_TailCall else TailCtx_Plain) of
+                                                   { _tailCtx ->
+                                                   (case (_tailCtx) of
+                                                    { _exprOtailCtx ->
+                                                    (case (_lhsInm2ref) of
+                                                     { _exprOnm2ref ->
+                                                     (case (_lhsIimpNmLkup) of
+                                                      { _exprOimpNmLkup ->
+                                                      (case (if _isToBeThunked then _exprInm2refGath else CR.emptyNm2RefMp) of
+                                                       { _nm2refNew ->
+                                                       (case (_isToBeThunked || whatExprIsLam _exprIwhatBelow) of
+                                                        { _isToBeALam ->
+                                                        (case (if _isToBeALam then 0                 else _lhsIstackDepth) of
+                                                         { _exprOstackDepth ->
+                                                         (case (_lhsIopts) of
+                                                          { _exprOopts ->
+                                                          (case (_lhsImodNr) of
+                                                           { _exprOmodNr ->
+                                                           (case (_lhsIevalCtx) of
+                                                            { _exprOevalCtx ->
+                                                            (case (True) of
+                                                             { _exprOisTopTup ->
+                                                             (case (True) of
+                                                              { _exprOisTopApp ->
+                                                              (case (expr_2 _exprOevalCtx _exprOimpNmLkup _exprOisTopApp _exprOisTopTup _exprOmodNr _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of
+                                                               { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax,_exprIvref) ->
+                                                                   (case (max _exprIstackDepth _exprIstackDepthMax) of
+                                                                    { _stackDepthMaxThunked ->
+                                                                    (case (case _toBe of
+                                                                               ToBe_Forced   -> tailrec _tailCtx . CR.mkEval
+                                                                               ToBe_Thunked  -> CR.Exp_Lam (Just _lhsInm)            0                          (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)
+                                                                               ToBe_LeftAsIs -> id) of
+                                                                     { _creMkForce ->
+                                                                     (case (_creMkForce _exprIcre) of
+                                                                      { _creBind ->
+                                                                      (case ([( _lhsInm, _creBind )]) of
+                                                                       { _crb ->
+                                                                       (case (_crb) of
+                                                                        { _lhsOcrb ->
+                                                                        (case (if _isToBeThunked then _lhsIrefOffset else max _exprIrefOffset _exprIrefOffsetMax) of
+                                                                         { _lhsOrefOffsetMax ->
+                                                                         (case (if _isToBeALam then _lhsIstackDepth+1 else _exprIstackDepth) of
+                                                                          { _stackDepthExpr ->
+                                                                          (case (_stackDepthExpr) of
+                                                                           { _lhsOstackDepth ->
+                                                                           (case (if _isToBeALam then _stackDepthExpr else _stackDepthMaxThunked) of
+                                                                            { _lhsOstackDepthMax ->
+                                                                            ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                     in  sem_CBound_Bind_1)) of
+                              { ( sem_CBound_1) ->
+                              ( _lhsOnm2refGath,_lhsOrefOffset,sem_CBound_1) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -4981,385 +4917,6 @@
     (case ([]) of
      { _lhsOimpNmL ->
      ( _lhsOimpNmL) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      chained attribute:
-         refOffset            : Int
-      synthesized attribute:
-         nm2refGath           : CR.Nm2RefMp
-   visit 1:
-      inherited attributes:
-         impNmLkup            : HsName -> Maybe Int
-         lev                  : Int
-         modNr                : Maybe Int
-         nm2ref               : CR.Nm2RefMp
-         opts                 : EHCOpts
-      chained attribute:
-         stackDepth           : Int
-   alternatives:
-      alternative Plain:
-      alternative Function0:
-      alternative Function1:
-      alternative Apply0:
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   ( (CR.Nm2RefMp),Int,T_CMetaBind_1)
-type T_CMetaBind_1 = (HsName -> Maybe Int) ->
-                     Int ->
-                     (Maybe Int) ->
-                     (CR.Nm2RefMp) ->
-                     EHCOpts ->
-                     Int ->
-                     ( Int)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaBind_Plain_1 :: T_CMetaBind_1
-                       sem_CMetaBind_Plain_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaBind_Plain_1)) of
-            { ( sem_CMetaBind_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaBind_1) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaBind_Function0_1 :: T_CMetaBind_1
-                       sem_CMetaBind_Function0_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaBind_Function0_1)) of
-            { ( sem_CMetaBind_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaBind_1) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaBind_Function1_1 :: T_CMetaBind_1
-                       sem_CMetaBind_Function1_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaBind_Function1_1)) of
-            { ( sem_CMetaBind_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaBind_1) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaBind_Apply0_1 :: T_CMetaBind_1
-                       sem_CMetaBind_Apply0_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaBind_Apply0_1)) of
-            { ( sem_CMetaBind_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaBind_1) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      chained attribute:
-         refOffset            : Int
-      synthesized attribute:
-         nm2refGath           : CR.Nm2RefMp
-   visit 1:
-      inherited attributes:
-         impNmLkup            : HsName -> Maybe Int
-         lev                  : Int
-         modNr                : Maybe Int
-         nm2ref               : CR.Nm2RefMp
-         opts                 : EHCOpts
-      chained attribute:
-         stackDepth           : Int
-   alternatives:
-      alternative Val:
-      alternative Dict:
-      alternative DictClass:
-         child tracks         : {[Track]}
-      alternative DictInstance:
-         child tracks         : {[Track]}
-      alternative Track:
-         child track          : {Track}
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  ( (CR.Nm2RefMp),Int,T_CMetaVal_1)
-type T_CMetaVal_1 = (HsName -> Maybe Int) ->
-                    Int ->
-                    (Maybe Int) ->
-                    (CR.Nm2RefMp) ->
-                    EHCOpts ->
-                    Int ->
-                    ( Int)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaVal_Val_1 :: T_CMetaVal_1
-                       sem_CMetaVal_Val_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaVal_Val_1)) of
-            { ( sem_CMetaVal_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaVal_Dict_1 :: T_CMetaVal_1
-                       sem_CMetaVal_Dict_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaVal_Dict_1)) of
-            { ( sem_CMetaVal_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaVal_DictClass_1 :: T_CMetaVal_1
-                       sem_CMetaVal_DictClass_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaVal_DictClass_1)) of
-            { ( sem_CMetaVal_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaVal_DictInstance_1 :: T_CMetaVal_1
-                       sem_CMetaVal_DictInstance_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaVal_DictInstance_1)) of
-            { ( sem_CMetaVal_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIrefOffset ->
-         (case (CR.emptyNm2RefMp) of
-          { _lhsOnm2refGath ->
-          (case (_lhsIrefOffset) of
-           { _lhsOrefOffset ->
-           (case ((let sem_CMetaVal_Track_1 :: T_CMetaVal_1
-                       sem_CMetaVal_Track_1 =
-                           (\ _lhsIimpNmLkup
-                              _lhsIlev
-                              _lhsImodNr
-                              _lhsInm2ref
-                              _lhsIopts
-                              _lhsIstackDepth ->
-                                (case (_lhsIstackDepth) of
-                                 { _lhsOstackDepth ->
-                                 ( _lhsOstackDepth) }))
-                   in  sem_CMetaVal_Track_1)) of
-            { ( sem_CMetaVal_1) ->
-            ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetaVal_1) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      chained attribute:
-         refOffset            : Int
-      synthesized attribute:
-         nm2refGath           : CR.Nm2RefMp
-   visit 1:
-      inherited attributes:
-         impNmLkup            : HsName -> Maybe Int
-         lev                  : Int
-         modNr                : Maybe Int
-         nm2ref               : CR.Nm2RefMp
-         opts                 : EHCOpts
-      chained attribute:
-         stackDepth           : Int
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                ( (CR.Nm2RefMp),Int,T_CMetas_1)
-type T_CMetas_1 = (HsName -> Maybe Int) ->
-                  Int ->
-                  (Maybe Int) ->
-                  (CR.Nm2RefMp) ->
-                  EHCOpts ->
-                  Int ->
-                  ( Int)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIrefOffset ->
-         (case (_lhsIrefOffset) of
-          { _x1OrefOffset ->
-          (case (x1_ _x1OrefOffset) of
-           { ( _x1Inm2refGath,_x1IrefOffset,x1_1) ->
-               (case (_x1IrefOffset) of
-                { _x2OrefOffset ->
-                (case (x2_ _x2OrefOffset) of
-                 { ( _x2Inm2refGath,_x2IrefOffset,x2_1) ->
-                     (case (_x1Inm2refGath `CR.nm2refUnion` _x2Inm2refGath) of
-                      { _lhsOnm2refGath ->
-                      (case (_x2IrefOffset) of
-                       { _lhsOrefOffset ->
-                       (case ((let sem_CMetas_Tuple_1 :: T_CMetas_1
-                                   sem_CMetas_Tuple_1 =
-                                       (\ _lhsIimpNmLkup
-                                          _lhsIlev
-                                          _lhsImodNr
-                                          _lhsInm2ref
-                                          _lhsIopts
-                                          _lhsIstackDepth ->
-                                            (case (_lhsIstackDepth) of
-                                             { _x1OstackDepth ->
-                                             (case (_lhsIopts) of
-                                              { _x1Oopts ->
-                                              (case (_lhsInm2ref) of
-                                               { _x1Onm2ref ->
-                                               (case (_lhsImodNr) of
-                                                { _x1OmodNr ->
-                                                (case (_lhsIlev) of
-                                                 { _x1Olev ->
-                                                 (case (_lhsIimpNmLkup) of
-                                                  { _x1OimpNmLkup ->
-                                                  (case (x1_1 _x1OimpNmLkup _x1Olev _x1OmodNr _x1Onm2ref _x1Oopts _x1OstackDepth) of
-                                                   { ( _x1IstackDepth) ->
-                                                       (case (_x1IstackDepth) of
-                                                        { _x2OstackDepth ->
-                                                        (case (_lhsIopts) of
-                                                         { _x2Oopts ->
-                                                         (case (_lhsInm2ref) of
-                                                          { _x2Onm2ref ->
-                                                          (case (_lhsImodNr) of
-                                                           { _x2OmodNr ->
-                                                           (case (_lhsIlev) of
-                                                            { _x2Olev ->
-                                                            (case (_lhsIimpNmLkup) of
-                                                             { _x2OimpNmLkup ->
-                                                             (case (x2_1 _x2OimpNmLkup _x2Olev _x2OmodNr _x2Onm2ref _x2Oopts _x2OstackDepth) of
-                                                              { ( _x2IstackDepth) ->
-                                                                  (case (_x2IstackDepth) of
-                                                                   { _lhsOstackDepth ->
-                                                                   ( _lhsOstackDepth) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-                               in  sem_CMetas_Tuple_1)) of
-                        { ( sem_CMetas_1) ->
-                        ( _lhsOnm2refGath,_lhsOrefOffset,sem_CMetas_1) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/ToGrin.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/ToGrin.ag)
 module UHC.Light.Compiler.Core.ToGrin(Inh_CodeAGItf (..), Syn_CodeAGItf (..), wrap_CodeAGItf, sem_CodeAGItf) where
 
 import Data.Char
@@ -731,13 +731,9 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 2:
             local whatAbove   : {WhatExpr}
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -759,10 +755,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -785,10 +779,9 @@
                   HsName ->
                   EHCOpts ->
                   ( FvS,FvSMp,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsInm ->
          (case (expr_) of
           { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) ->
@@ -838,80 +831,19 @@
                                                                           { _exprOisTopApp ->
                                                                           (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of
                                                                            { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) ->
-                                                                               (case (_lhsIopts) of
-                                                                                { _bindMetaOopts ->
-                                                                                (case (_lhsImodNm) of
-                                                                                 { _bindMetaOmodNm ->
-                                                                                 (case (_lhsIlev) of
-                                                                                  { _bindMetaOlev ->
-                                                                                  (case (_lhsIlamMp) of
-                                                                                   { _bindMetaOlamMp ->
-                                                                                   (case (_lhsIdataGam) of
-                                                                                    { _bindMetaOdataGam ->
-                                                                                    (case (bindMeta_ _bindMetaOdataGam _bindMetaOlamMp _bindMetaOlev _bindMetaOmodNm _bindMetaOopts) of
-                                                                                     { ( _bindMetaIfvS) ->
-                                                                                         (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                                                                                          { _lhsOfvS ->
-                                                                                          (case (Map.empty) of
-                                                                                           { _lhsOfvSMp ->
-                                                                                           (case ([]) of
-                                                                                            { _lhsOnmL ->
-                                                                                            ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
+                                                                               (case (_exprIfvS) of
+                                                                                { _lhsOfvS ->
+                                                                                (case (Map.empty) of
+                                                                                 { _lhsOfvSMp ->
+                                                                                 (case ([]) of
+                                                                                  { _lhsOnmL ->
+                                                                                  ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
                                                    in  sem_CBound_Bind_2)) of
                                             { ( sem_CBound_2) ->
                                             ( _lhsOgUniq,sem_CBound_2) }) }) }) }))
                        in  sem_CBound_Bind_1)) of
                 { ( sem_CBound_1) ->
                 ( _lhsObindLamMp,sem_CBound_1) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsInm ->
-         (case (Map.empty) of
-          { _lhsObindLamMp ->
-          (case ((let sem_CBound_Meta_1 :: T_CBound_1
-                      sem_CBound_Meta_1 =
-                          (\ _lhsIgUniq ->
-                               (case (_lhsIgUniq) of
-                                { _lhsOgUniq ->
-                                (case ((let sem_CBound_Meta_2 :: T_CBound_2
-                                            sem_CBound_Meta_2 =
-                                                (\ _lhsIdataGam
-                                                   _lhsIevalCtx
-                                                   _lhsIisGlobal
-                                                   _lhsIisTopApp
-                                                   _lhsIisTopTup
-                                                   _lhsIlamMp
-                                                   _lhsIletBindingsCateg
-                                                   _lhsIlev
-                                                   _lhsImodNm
-                                                   _lhsIopts ->
-                                                     (case (_lhsIopts) of
-                                                      { _cmetasOopts ->
-                                                      (case (_lhsImodNm) of
-                                                       { _cmetasOmodNm ->
-                                                       (case (_lhsIlev) of
-                                                        { _cmetasOlev ->
-                                                        (case (_lhsIlamMp) of
-                                                         { _cmetasOlamMp ->
-                                                         (case (_lhsIdataGam) of
-                                                          { _cmetasOdataGam ->
-                                                          (case (cmetas_ _cmetasOdataGam _cmetasOlamMp _cmetasOlev _cmetasOmodNm _cmetasOopts) of
-                                                           { ( _cmetasIfvS) ->
-                                                               (case (_cmetasIfvS) of
-                                                                { _lhsOfvS ->
-                                                                (case (Map.empty) of
-                                                                 { _lhsOfvSMp ->
-                                                                 (case ([]) of
-                                                                  { _lhsOnmL ->
-                                                                  ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }))
-                                        in  sem_CBound_Meta_2)) of
-                                 { ( sem_CBound_2) ->
-                                 ( _lhsOgUniq,sem_CBound_2) }) }))
-                  in  sem_CBound_Meta_1)) of
-           { ( sem_CBound_1) ->
-           ( _lhsObindLamMp,sem_CBound_1) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -3514,239 +3446,6 @@
 sem_CImportL_Nil :: T_CImportL
 sem_CImportL_Nil =
     ( )
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         dataGam              : DataGam
-         lamMp                : LamMp
-         lev                  : Int
-         modNm                : HsName
-         opts                 : EHCOpts
-      synthesized attribute:
-         fvS                  : FvS
-   alternatives:
-      alternative Plain:
-      alternative Function0:
-      alternative Function1:
-      alternative Apply0:
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = DataGam ->
-                   LamMp ->
-                   Int ->
-                   HsName ->
-                   EHCOpts ->
-                   ( FvS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         dataGam              : DataGam
-         lamMp                : LamMp
-         lev                  : Int
-         modNm                : HsName
-         opts                 : EHCOpts
-      synthesized attribute:
-         fvS                  : FvS
-   alternatives:
-      alternative Val:
-      alternative Dict:
-      alternative DictClass:
-         child tracks         : {[Track]}
-      alternative DictInstance:
-         child tracks         : {[Track]}
-      alternative Track:
-         child track          : {Track}
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = DataGam ->
-                  LamMp ->
-                  Int ->
-                  HsName ->
-                  EHCOpts ->
-                  ( FvS)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (Set.empty) of
-          { _lhsOfvS ->
-          ( _lhsOfvS) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         dataGam              : DataGam
-         lamMp                : LamMp
-         lev                  : Int
-         modNm                : HsName
-         opts                 : EHCOpts
-      synthesized attribute:
-         fvS                  : FvS
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = DataGam ->
-                LamMp ->
-                Int ->
-                HsName ->
-                EHCOpts ->
-                ( FvS)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIdataGam
-       _lhsIlamMp
-       _lhsIlev
-       _lhsImodNm
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts ->
-          (case (_lhsImodNm) of
-           { _x2OmodNm ->
-           (case (_lhsIlev) of
-            { _x2Olev ->
-            (case (_lhsIlamMp) of
-             { _x2OlamMp ->
-             (case (_lhsIdataGam) of
-              { _x2OdataGam ->
-              (case (x2_ _x2OdataGam _x2OlamMp _x2Olev _x2OmodNm _x2Oopts) of
-               { ( _x2IfvS) ->
-                   (case (_lhsIopts) of
-                    { _x1Oopts ->
-                    (case (_lhsImodNm) of
-                     { _x1OmodNm ->
-                     (case (_lhsIlev) of
-                      { _x1Olev ->
-                      (case (_lhsIlamMp) of
-                       { _x1OlamMp ->
-                       (case (_lhsIdataGam) of
-                        { _x1OdataGam ->
-                        (case (x1_ _x1OdataGam _x1OlamMp _x1Olev _x1OmodNm _x1Oopts) of
-                         { ( _x1IfvS) ->
-                             (case (_x1IfvS `Set.union` _x2IfvS) of
-                              { _lhsOfvS ->
-                              ( _lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Trf.hs b/src/UHC/Light/Compiler/Core/Trf.hs
--- a/src/UHC/Light/Compiler/Core/Trf.hs
+++ b/src/UHC/Light/Compiler/Core/Trf.hs
@@ -36,13 +36,13 @@
 
 
 
-{-# LINE 79 "src/ehc/Core/Trf.chs" #-}
+{-# LINE 75 "src/ehc/Core/Trf.chs" #-}
 type TrfCore = TrfState CModule TrfCoreExtra
 
 emptyTrfCore :: TrfCore
 emptyTrfCore = mkEmptyTrfState emptyCModule emptyTrfCoreExtra
 
-{-# LINE 86 "src/ehc/Core/Trf.chs" #-}
+{-# LINE 82 "src/ehc/Core/Trf.chs" #-}
 data TrfCoreExtra
   = TrfCoreExtra
       { trfcoreInhLamMp         :: LamMp        -- from context, possibly overridden from gathered one
@@ -63,7 +63,7 @@
                        -- False
                        (Set.fromList [minBound .. maxBound])
 
-{-# LINE 124 "src/ehc/Core/Trf.chs" #-}
+{-# LINE 120 "src/ehc/Core/Trf.chs" #-}
 -- | Perform Core transformations.
 --   The 'optScope' tells at which compilation phase (per module, whole program) the transformations are done, default only per module
 trfCore :: EHCOpts -> OptimizationScope -> DataGam -> HsName -> TrfCore -> TrfCore
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANorm)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANorm)
 module UHC.Light.Compiler.Core.Trf.ANormal(cmodTrfANormal) where
 
 import UHC.Light.Compiler.Base.Common
@@ -153,16 +153,16 @@
               _exprIlevBindSq :: LevBindSq
               _exprIlevOf :: Int
               _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 15, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 12, column 17)
               _cvi =
                   emptyCVarIntro { cviLev  = _lev }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 36, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
               _exprOcvarIntroMp =
                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
               _exprOintroCVarIntroMp =
                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
               _lhsOlevOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)
@@ -327,7 +327,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _hdIlevBindSq Seq.:++: _tlIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- self rule
@@ -399,7 +399,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -515,10 +515,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   _bindAspectsIbindL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _bindAspectsIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _bindAspectsIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -527,7 +527,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _bindAspectsIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bindAspectsIlevOf
               -- self rule
@@ -620,7 +620,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -717,7 +717,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _hdIlevBindSq Seq.:++: _tlIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -786,7 +786,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -912,10 +912,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   _hdIbindL ++ _tlIbindL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -927,7 +927,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _hdIlevBindSq Seq.:++: _tlIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1018,10 +1018,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1033,7 +1033,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1080,19 +1080,12 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
-            local cmetaVal    : _
             local cvi         : _
             local cviExpr     : _
             local whatAbove   : {WhatExpr}
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -1118,10 +1111,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -1144,10 +1135,9 @@
                 HsName ->
                 HsName ->
                 ( (AssocL Int CBind),CVarIntroMp,CBound,CVarIntroMp,FvS,FvSMp,UID,LevBindSq,Int,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIappTrfIsOk
        _lhsIcvarIntroMp
        _lhsIevalCtx
@@ -1178,11 +1168,6 @@
               _lhsOnmL :: ([HsName])
               _lhsOcTrf :: CBound
               _lhsOgUniq :: UID
-              _bindMetaOcvarIntroMp :: CVarIntroMp
-              _bindMetaOgUniq :: UID
-              _bindMetaOintroCVarIntroMp :: CVarIntroMp
-              _bindMetaOlev :: Int
-              _bindMetaOmodNm :: HsName
               _exprOcvarIntroMp :: CVarIntroMp
               _exprOevalCtx :: EvalCtx
               _exprOgUniq :: UID
@@ -1190,31 +1175,22 @@
               _exprOlev :: Int
               _exprOmodNm :: HsName
               _exprOwhatAbove :: WhatExpr
-              _bindMetaIcTrf :: CMetas
-              _bindMetaIfvS :: FvS
-              _bindMetaIgUniq :: UID
-              _bindMetaIlevBindSq :: LevBindSq
-              _bindMetaIlevOf :: Int
-              _bindMetaIself :: CMetas
               _exprIcTrf :: CExpr
               _exprIfvS :: FvS
               _exprIgUniq :: UID
               _exprIlevBindSq :: LevBindSq
               _exprIlevOf :: Int
               _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
-              _cmetaVal =
-                  cmetasVal _bindMetaIself
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
               _cvi =
-                  emptyCVarIntro { cviLev  = _lhsIlev   , cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
+                  emptyCVarIntro { cviLev  = _lhsIlev    }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
               _cviExpr =
-                  emptyCVarIntro { cviLev  = _exprIlevOf, cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)
+                  emptyCVarIntro { cviLev  = _exprIlevOf }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 17)
               _lhsObindsIntroCVarIntroMp =
                   Map.singleton _lhsInm _cvi
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 17)
               _lhsOcvarIntroExprMp =
                   Map.singleton _lhsInm _cviExpr
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
@@ -1240,22 +1216,22 @@
                   False
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
-                  _bindMetaIfvS `Set.union` _exprIfvS
+                  _exprIfvS
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
               _lhsOfvSMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
-                  _bindMetaIlevBindSq Seq.:++: _exprIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+                  _exprIlevBindSq
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
-                  _bindMetaIlevOf `max` _exprIlevOf
+                  _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
               _lhsOnmL =
                   []
               -- self rule
               _cTrf =
-                  CBound_Bind _bindMetaIcTrf _exprIcTrf
+                  CBound_Bind _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -1263,29 +1239,14 @@
               _lhsOgUniq =
                   _exprIgUniq
               -- copy rule (down)
-              _bindMetaOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bindMetaOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bindMetaOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindMetaOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindMetaOmodNm =
-                  _lhsImodNm
-              -- copy rule (down)
               _exprOcvarIntroMp =
                   _lhsIcvarIntroMp
               -- copy rule (down)
               _exprOevalCtx =
                   _lhsIevalCtx
-              -- copy rule (chain)
+              -- copy rule (down)
               _exprOgUniq =
-                  _bindMetaIgUniq
+                  _lhsIgUniq
               -- copy rule (down)
               _exprOintroCVarIntroMp =
                   _lhsIintroCVarIntroMp
@@ -1298,101 +1259,9 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
-              ( _bindMetaIcTrf,_bindMetaIfvS,_bindMetaIgUniq,_bindMetaIlevBindSq,_bindMetaIlevOf,_bindMetaIself) =
-                  bindMeta_ _bindMetaOcvarIntroMp _bindMetaOgUniq _bindMetaOintroCVarIntroMp _bindMetaOlev _bindMetaOmodNm
               ( _exprIcTrf,_exprIfvS,_exprIgUniq,_exprIlevBindSq,_exprIlevOf,_exprIwhatBelow) =
                   expr_ _exprOappTrfIsOk _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisTopApp _exprOisTopTup _exprOlamTrfIsOk _exprOletTrfIsOk _exprOlev _exprOmodNm _exprOwhatAbove
           in  ( _lhsObindL,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOnmL)))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIappTrfIsOk
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamTrfIsOk
-       _lhsIletBindingsCateg
-       _lhsIletTrfIsOk
-       _lhsIlev
-       _lhsImodNm
-       _lhsInm ->
-         (let _lhsObindL :: (AssocL Int CBind)
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBound
-              _lhsOgUniq :: UID
-              _cmetasOcvarIntroMp :: CVarIntroMp
-              _cmetasOgUniq :: UID
-              _cmetasOintroCVarIntroMp :: CVarIntroMp
-              _cmetasOlev :: Int
-              _cmetasOmodNm :: HsName
-              _cmetasIcTrf :: CMetas
-              _cmetasIfvS :: FvS
-              _cmetasIgUniq :: UID
-              _cmetasIlevBindSq :: LevBindSq
-              _cmetasIlevOf :: Int
-              _cmetasIself :: CMetas
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
-              _lhsObindL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _cmetasIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  _cmetasIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _cmetasIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_Meta aspectKeyS_ _cmetasIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _cmetasIgUniq
-              -- copy rule (down)
-              _cmetasOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _cmetasOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _cmetasOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _cmetasOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _cmetasOmodNm =
-                  _lhsImodNm
-              ( _cmetasIcTrf,_cmetasIfvS,_cmetasIgUniq,_cmetasIlevBindSq,_cmetasIlevOf,_cmetasIself) =
-                  cmetas_ _cmetasOcvarIntroMp _cmetasOgUniq _cmetasOintroCVarIntroMp _cmetasOlev _cmetasOmodNm
-          in  ( _lhsObindL,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOnmL)))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -1448,10 +1317,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1463,7 +1332,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _exprIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1548,10 +1417,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1563,7 +1432,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1649,10 +1518,10 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 170, column 33)
               _exprOletTrfIsOk =
                   False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1664,7 +1533,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _exprIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1837,10 +1706,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   _hdIbindL ++ _tlIbindL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1852,7 +1721,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _hdIlevBindSq Seq.:++: _tlIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1950,10 +1819,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 70, column 26)
               _lhsObindL =
                   []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1965,7 +1834,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -2690,7 +2559,7 @@
               _lhsOcTrf :: CExpr
               _lhsOgUniq :: UID
               _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 17)
               _lhsOlevOf =
                   fvLev _nm _lhsIcvarIntroMp
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 7, column 17)
@@ -2789,7 +2658,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -2855,7 +2724,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -2894,7 +2763,7 @@
               _lhsOcTrf :: CExpr
               _lhsOgUniq :: UID
               _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
               _levOf =
                   cLevIntern
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -2924,7 +2793,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -2990,7 +2859,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3029,7 +2898,7 @@
               _lhsOlevBindSq :: LevBindSq
               _lhsOlevOf :: Int
               _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
               _levOf =
                   cLevModule
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -3084,7 +2953,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _levBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3155,10 +3024,10 @@
               _bodyIlevBindSq :: LevBindSq
               _bodyIlevOf :: Int
               _bodyIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 24, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 21, column 17)
               _maxBindLev =
                   fvsLev _lhsIcvarIntroMp cLevModule _bindsIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               __tup4 =
                   case categ_ of
                       CBindCateg_Strict -> (const _lhsIlev,_lhsIcvarIntroMp)
@@ -3167,19 +3036,19 @@
                                                `Map.union` _lhsIcvarIntroMp
                                            )
                       _                 -> (id,_lhsIcvarIntroMp)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               (_strLev,_) =
                   __tup4
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               (_,_bindsOcvarIntroMp) =
                   __tup4
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 30, column 17)
               _bodyOcvarIntroMp =
                   Map.map (\cvi -> cvi {cviLev = _strLev $ cviLev cvi}) _bindsIcvarIntroExprMp `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 42, column 17)
               _introCVarIntroMp =
                   Map.map (\cvi -> cvi {cviLev = _lhsIlev}) _bindsIbindsIntroCVarIntroMp `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 66, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 63, column 17)
               _levOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _fvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 6, column 17)
@@ -3268,7 +3137,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3398,7 +3267,7 @@
               _argIlevBindSq :: LevBindSq
               _argIlevOf :: Int
               _argInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 60, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 57, column 17)
               _levOf =
                   _funcIlevOf `max` _argIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 8, column 17)
@@ -3477,7 +3346,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3612,19 +3481,18 @@
               _bodyIlevBindSq :: LevBindSq
               _bodyIlevOf :: Int
               _bodyIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 4, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 2, column 17)
               _cvi =
                   CVarIntro
                     { cviLev  = _lev
-                    , cviMeta = CMetaVal_Val
                     }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 23, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
               _bodyOcvarIntroMp =
                   Map.insert _argNm _cvi _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 44, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
               _bodyOintroCVarIntroMp =
                   Map.insert _argNm _cvi _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
               _levOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _bodyIfvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 5, column 17)
@@ -3721,7 +3589,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3855,7 +3723,7 @@
               _dfltIlevBindSq :: LevBindSq
               _dfltIlevOf :: Int
               _dfltIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 58, column 17)
               _levOf =
                   _exprIlevOf `max` _altsIlevOf `max` _dfltIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -3910,7 +3778,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4073,7 +3941,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _errorExprIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _errorExprIlevOf
               -- self rule
@@ -4189,7 +4057,7 @@
               _offsetIlevBindSq :: LevBindSq
               _offsetIlevOf :: Int
               _offsetIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4247,7 +4115,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4411,7 +4279,7 @@
               _fldExprIlevBindSq :: LevBindSq
               _fldExprIlevOf :: Int
               _fldExprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4469,7 +4337,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4665,7 +4533,7 @@
               _fldExprIlevBindSq :: LevBindSq
               _fldExprIlevOf :: Int
               _fldExprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4723,7 +4591,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4891,7 +4759,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -4957,7 +4825,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5023,7 +4891,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5108,7 +4976,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _bodyIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bodyIlevOf
               -- self rule
@@ -5211,7 +5079,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5296,7 +5164,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _funcIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _funcIlevOf
               -- self rule
@@ -5419,7 +5287,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _bodyIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bodyIlevOf
               -- self rule
@@ -5529,7 +5397,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _annIlevBindSq Seq.:++: _exprIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _annIlevOf `max` _exprIlevOf
               -- self rule
@@ -5658,7 +5526,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5690,7 +5558,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5782,596 +5650,6 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lev                  : Int
-         modNm                : HsName
-      chained attribute:
-         gUniq                : UID
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-         levBindSq            : LevBindSq
-         levOf                : Int
-         self                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = CVarIntroMp ->
-                   UID ->
-                   CVarIntroMp ->
-                   Int ->
-                   HsName ->
-                   ( CMetaBind,FvS,UID,LevBindSq,Int,CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Plain
-              -- self rule
-              _self =
-                  CMetaBind_Plain
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function0
-              -- self rule
-              _self =
-                  CMetaBind_Function0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function1
-              -- self rule
-              _self =
-                  CMetaBind_Function1
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Apply0
-              -- self rule
-              _self =
-                  CMetaBind_Apply0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lev                  : Int
-         modNm                : HsName
-      chained attribute:
-         gUniq                : UID
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-         levBindSq            : LevBindSq
-         levOf                : Int
-         self                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = CVarIntroMp ->
-                  UID ->
-                  CVarIntroMp ->
-                  Int ->
-                  HsName ->
-                  ( CMetaVal,FvS,UID,LevBindSq,Int,CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Val
-              -- self rule
-              _self =
-                  CMetaVal_Val
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Dict
-              -- self rule
-              _self =
-                  CMetaVal_Dict
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: UID
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Track track_
-              -- self rule
-              _self =
-                  CMetaVal_Track track_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lev                  : Int
-         modNm                : HsName
-      chained attribute:
-         gUniq                : UID
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-         levBindSq            : LevBindSq
-         levOf                : Int
-         self                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = CVarIntroMp ->
-                UID ->
-                CVarIntroMp ->
-                Int ->
-                HsName ->
-                ( CMetas,FvS,UID,LevBindSq,Int,CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsImodNm ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevBindSq :: LevBindSq
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetas
-              _lhsOself :: CMetas
-              _lhsOgUniq :: UID
-              _x1OcvarIntroMp :: CVarIntroMp
-              _x1OgUniq :: UID
-              _x1OintroCVarIntroMp :: CVarIntroMp
-              _x1Olev :: Int
-              _x1OmodNm :: HsName
-              _x2OcvarIntroMp :: CVarIntroMp
-              _x2OgUniq :: UID
-              _x2OintroCVarIntroMp :: CVarIntroMp
-              _x2Olev :: Int
-              _x2OmodNm :: HsName
-              _x1IcTrf :: CMetaBind
-              _x1IfvS :: FvS
-              _x1IgUniq :: UID
-              _x1IlevBindSq :: LevBindSq
-              _x1IlevOf :: Int
-              _x1Iself :: CMetaBind
-              _x2IcTrf :: CMetaVal
-              _x2IfvS :: FvS
-              _x2IgUniq :: UID
-              _x2IlevBindSq :: LevBindSq
-              _x2IlevOf :: Int
-              _x2Iself :: CMetaVal
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _x1IfvS `Set.union` _x2IfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
-              _lhsOlevBindSq =
-                  _x1IlevBindSq Seq.:++: _x2IlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _x1IlevOf `max` _x2IlevOf
-              -- self rule
-              _cTrf =
-                  (_x1IcTrf,_x2IcTrf)
-              -- self rule
-              _self =
-                  (_x1Iself,_x2Iself)
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _x2IgUniq
-              -- copy rule (down)
-              _x1OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x1OgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _x1OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x1Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x1OmodNm =
-                  _lhsImodNm
-              -- copy rule (down)
-              _x2OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _x2OgUniq =
-                  _x1IgUniq
-              -- copy rule (down)
-              _x2OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x2Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x2OmodNm =
-                  _lhsImodNm
-              ( _x1IcTrf,_x1IfvS,_x1IgUniq,_x1IlevBindSq,_x1IlevOf,_x1Iself) =
-                  x1_ _x1OcvarIntroMp _x1OgUniq _x1OintroCVarIntroMp _x1Olev _x1OmodNm
-              ( _x2IcTrf,_x2IfvS,_x2IgUniq,_x2IlevBindSq,_x2IlevOf,_x2Iself) =
-                  x2_ _x2OcvarIntroMp _x2OgUniq _x2OintroCVarIntroMp _x2Olev _x2OmodNm
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevBindSq,_lhsOlevOf,_lhsOself)))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
@@ -6476,7 +5754,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _exprIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- self rule
@@ -6603,7 +5881,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -6668,7 +5946,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _restIlevBindSq Seq.:++: _bindsIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _restIlevOf `max` _bindsIlevOf
               -- self rule
@@ -6739,7 +6017,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -6779,7 +6057,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -6819,7 +6097,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -6987,7 +6265,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _offsetIlevBindSq Seq.:++: _bindIlevBindSq Seq.:++: _fldAnnsIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _offsetIlevOf `max` _bindIlevOf `max` _fldAnnsIlevOf
               -- self rule
@@ -7142,7 +6420,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   _hdIlevBindSq Seq.:++: _tlIlevBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7215,7 +6493,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7293,7 +6571,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -7325,7 +6603,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ANormal.ag"(line 69, column 32)
               _lhsOlevBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7386,10 +6664,10 @@
               _moduleIgUniq :: UID
               _moduleIlevBindSq :: LevBindSq
               _moduleIlevOf :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 17, column 17)
               _moduleOcvarIntroMp =
                   Map.empty
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 38, column 17)
               _moduleOintroCVarIntroMp =
                   Map.empty
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 4, column 17)
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnnBa)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnnBa)
 module UHC.Light.Compiler.Core.Trf.AnnBasedSimplify(cmodTrfAnnBasedSimplify) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -443,19 +443,12 @@
          propUp               : Prop
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local propDown    : _
             local whatAbove   : {WhatExpr}
             local cTrf        : _
             local propUp      : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
-            local propUp      : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -485,10 +478,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -506,10 +497,9 @@
                 EHCOpts ->
                 Prop ->
                 ( CBound,Prop)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisTopApp
@@ -539,49 +529,15 @@
                   { _exprOisTopTup | _exprOisTopTup `seq` (True) ->
                   (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
                    { ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
-                       (case (_lhsIopts) of
-                        { _bindMetaOopts | _bindMetaOopts `seq` (True) ->
-                        (case (_lhsIlev) of
-                         { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                         (case (bindMeta_ _bindMetaOlev _bindMetaOopts) of
-                          { ( _bindMetaIcTrf) | True ->
-                              (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                               { _cTrf | _cTrf `seq` (True) ->
-                               (case (_cTrf) of
-                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                (case (Prop_None) of
-                                 { _propUp | _propUp `seq` (True) ->
-                                 (case (_propUp) of
-                                  { _lhsOpropUp | _lhsOpropUp `seq` (True) ->
-                                  ( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIopts
-       _lhsIpropDown ->
-         (case (_lhsIopts) of
-          { _cmetasOopts | _cmetasOopts `seq` (True) ->
-          (case (_lhsIlev) of
-           { _cmetasOlev | _cmetasOlev `seq` (True) ->
-           (case (cmetas_ _cmetasOlev _cmetasOopts) of
-            { ( _cmetasIcTrf) | True ->
-                (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                 { _cTrf | _cTrf `seq` (True) ->
-                 (case (_cTrf) of
-                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                  (case (Prop_None) of
-                   { _propUp | _propUp `seq` (True) ->
-                   (case (_propUp) of
-                    { _lhsOpropUp | _lhsOpropUp `seq` (True) ->
-                    ( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }))
+                       (case (CBound_Bind _exprIcTrf) of
+                        { _cTrf | _cTrf `seq` (True) ->
+                        (case (_cTrf) of
+                         { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                         (case (Prop_None) of
+                          { _propUp | _propUp `seq` (True) ->
+                          (case (_propUp) of
+                           { _lhsOpropUp | _lhsOpropUp `seq` (True) ->
+                           ( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2679,219 +2635,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   EHCOpts ->
-                   ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  EHCOpts ->
-                  ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                EHCOpts ->
-                ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts | _x2Oopts `seq` (True) ->
-          (case (_lhsIlev) of
-           { _x2Olev | _x2Olev `seq` (True) ->
-           (case (x2_ _x2Olev _x2Oopts) of
-            { ( _x2IcTrf) | True ->
-                (case (_lhsIopts) of
-                 { _x1Oopts | _x1Oopts `seq` (True) ->
-                 (case (_lhsIlev) of
-                  { _x1Olev | _x1Olev `seq` (True) ->
-                  (case (x1_ _x1Olev _x1Oopts) of
-                   { ( _x1IcTrf) | True ->
-                       (case ((_x1IcTrf,_x2IcTrf)) of
-                        { _cTrf | _cTrf `seq` (True) ->
-                        (case (_cTrf) of
-                         { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                         ( _lhsOcTrf) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGl)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGl)
 module UHC.Light.Compiler.Core.Trf.CAFGlobalAsArg(cmodTrfCAFGlobalAsArg) where
 
 import UHC.Util.Utils
@@ -136,16 +136,16 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 23, column 17)
               _exprOvarS =
                   _lhsIvarS `Set.union` Set.fromList _patInmL
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 15, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 12, column 17)
               _cvi =
                   emptyCVarIntro { cviLev  = _lev }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 36, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
               _exprOcvarIntroMp =
                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
               _exprOintroCVarIntroMp =
                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
               _lhsOlevOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)
@@ -315,7 +315,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- self rule
@@ -404,7 +404,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -541,10 +541,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   _bindAspectsIbindVarS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _bindAspectsIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _bindAspectsIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -553,7 +553,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   _bindAspectsIlamBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bindAspectsIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 97, column 32)
@@ -662,7 +662,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -767,7 +767,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -853,7 +853,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1005,10 +1005,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   _hdIbindVarS `Set.union` _tlIbindVarS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1020,7 +1020,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   _hdIlamBindSq `Seq.union` _tlIlamBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1140,10 +1140,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1155,7 +1155,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1207,12 +1207,10 @@
          varBindSq            : Seq.Seq CBind
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local isClosurableBind : _
             local _tup1       : _
-            local cmetaVal    : _
             local cvi         : _
             local cviExpr     : _
             local whatAbove   : {WhatExpr}
@@ -1227,11 +1225,6 @@
             local cTrfLam     : _
             local _tup3       : _
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -1257,10 +1250,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -1283,10 +1274,9 @@
                 HsName ->
                 FvS ->
                 ( FvS,FvS,CVarIntroMp,CBound,CVarIntroMp,FvS,FvSMp,Int,(Seq.Seq CBind),Int,([HsName]),(Seq.Seq CBind))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIargMp
        _lhsIcvarIntroMp
        _lhsIevalCtx
@@ -1318,14 +1308,6 @@
               _lhsOnmL :: ([HsName])
               _lhsOcTrf :: CBound
               _lhsOgUniq :: Int
-              _bindMetaOargMp :: CVarReplNmMp
-              _bindMetaOcvarIntroMp :: CVarIntroMp
-              _bindMetaOfvSCafMp :: FvSMp
-              _bindMetaOgUniq :: Int
-              _bindMetaOintroCVarIntroMp :: CVarIntroMp
-              _bindMetaOlamS :: FvS
-              _bindMetaOlev :: Int
-              _bindMetaOvarS :: FvS
               _exprOcvarIntroMp :: CVarIntroMp
               _exprOevalCtx :: EvalCtx
               _exprOfvSCafMp :: FvSMp
@@ -1334,11 +1316,6 @@
               _exprOlev :: Int
               _exprOvarS :: FvS
               _exprOwhatAbove :: WhatExpr
-              _bindMetaIcTrf :: CMetas
-              _bindMetaIfvS :: FvS
-              _bindMetaIgUniq :: Int
-              _bindMetaIlevOf :: Int
-              _bindMetaIself :: CMetas
               _exprIappFunKind :: AppFunKind
               _exprIcTrf :: CExpr
               _exprIfvS :: FvS
@@ -1364,19 +1341,16 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
               (_,_lhsObindLamS) =
                   __tup1
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
-              _cmetaVal =
-                  cmetasVal _bindMetaIself
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
               _cvi =
-                  emptyCVarIntro { cviLev  = _lhsIlev   , cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
+                  emptyCVarIntro { cviLev  = _lhsIlev    }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
               _cviExpr =
-                  emptyCVarIntro { cviLev  = _exprIlevOf, cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)
+                  emptyCVarIntro { cviLev  = _exprIlevOf }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 17)
               _lhsObindsIntroCVarIntroMp =
                   Map.singleton _lhsInm _cvi
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 17)
               _lhsOcvarIntroExprMp =
                   Map.singleton _lhsInm _cviExpr
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
@@ -1422,7 +1396,7 @@
                   mkFvNm _lUniq1 _lhsInm
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 102, column 17)
               _cTrfVar =
-                  acoreBind1MetasTy _lhsInm _bindMetaIcTrf (acoreTyErr "CAFGlobalAsArg.CBound.Bind.cTrfVar")
+                  acoreBind1Ty _lhsInm (acoreTyErr "CAFGlobalAsArg.CBound.Bind.cTrfVar")
                   $ acoreApp (acoreVar _nmLam)
                   $ map (\(n,cvi) -> (fvVarRepl _lhsIargMp n)) _argOldL
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 102, column 17)
@@ -1442,19 +1416,19 @@
                   __tup3
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
-                  _bindMetaIfvS `Set.union` _exprIfvS
+                  _exprIfvS
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
               _lhsOfvSMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
-                  _bindMetaIlevOf `max` _exprIlevOf
+                  _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
               _lhsOnmL =
                   []
               -- self rule
               _cTrf =
-                  CBound_Bind _bindMetaIcTrf _exprIcTrf
+                  CBound_Bind _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -1462,30 +1436,6 @@
               _lhsOgUniq =
                   _exprIgUniq
               -- copy rule (down)
-              _bindMetaOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bindMetaOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bindMetaOfvSCafMp =
-                  _lhsIfvSCafMp
-              -- copy rule (down)
-              _bindMetaOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bindMetaOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindMetaOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bindMetaOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindMetaOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
               _exprOcvarIntroMp =
                   _lhsIcvarIntroMp
               -- copy rule (down)
@@ -1509,120 +1459,9 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
-              ( _bindMetaIcTrf,_bindMetaIfvS,_bindMetaIgUniq,_bindMetaIlevOf,_bindMetaIself) =
-                  bindMeta_ _bindMetaOargMp _bindMetaOcvarIntroMp _bindMetaOfvSCafMp _bindMetaOgUniq _bindMetaOintroCVarIntroMp _bindMetaOlamS _bindMetaOlev _bindMetaOvarS
               ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprIgUniq,_exprIisClosurableExpr,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
                   expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOfvSCafMp _exprOgUniq _exprOintroCVarIntroMp _exprOisTopApp _exprOisTopTup _exprOlamS _exprOlev _exprOvarS _exprOwhatAbove
           in  ( _lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlamBindSq,_lhsOlevOf,_lhsOnmL,_lhsOvarBindSq)))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIvarS ->
-         (let _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOlamBindSq :: (Seq.Seq CBind)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOvarBindSq :: (Seq.Seq CBind)
-              _lhsOcTrf :: CBound
-              _lhsOgUniq :: Int
-              _cmetasOargMp :: CVarReplNmMp
-              _cmetasOcvarIntroMp :: CVarIntroMp
-              _cmetasOfvSCafMp :: FvSMp
-              _cmetasOgUniq :: Int
-              _cmetasOintroCVarIntroMp :: CVarIntroMp
-              _cmetasOlamS :: FvS
-              _cmetasOlev :: Int
-              _cmetasOvarS :: FvS
-              _cmetasIcTrf :: CMetas
-              _cmetasIfvS :: FvS
-              _cmetasIgUniq :: Int
-              _cmetasIlevOf :: Int
-              _cmetasIself :: CMetas
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _cmetasIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
-              _lhsOlamBindSq =
-                  Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _cmetasIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 97, column 32)
-              _lhsOvarBindSq =
-                  Seq.empty
-              -- self rule
-              _cTrf =
-                  CBound_Meta aspectKeyS_ _cmetasIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _cmetasIgUniq
-              -- copy rule (down)
-              _cmetasOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _cmetasOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _cmetasOfvSCafMp =
-                  _lhsIfvSCafMp
-              -- copy rule (down)
-              _cmetasOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _cmetasOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _cmetasOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _cmetasOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _cmetasOvarS =
-                  _lhsIvarS
-              ( _cmetasIcTrf,_cmetasIfvS,_cmetasIgUniq,_cmetasIlevOf,_cmetasIself) =
-                  cmetas_ _cmetasOargMp _cmetasOcvarIntroMp _cmetasOfvSCafMp _cmetasOgUniq _cmetasOintroCVarIntroMp _cmetasOlamS _cmetasOlev _cmetasOvarS
-          in  ( _lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlamBindSq,_lhsOlevOf,_lhsOnmL,_lhsOvarBindSq)))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -1686,10 +1525,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1701,7 +1540,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1794,10 +1633,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1809,7 +1648,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1900,10 +1739,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1915,7 +1754,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -2111,10 +1950,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   _hdIbindVarS `Set.union` _tlIbindVarS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -2126,7 +1965,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   _hdIlamBindSq `Seq.union` _tlIlamBindSq
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -2253,10 +2092,10 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
               _lhsObindVarS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -2268,7 +2107,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.ag"(line 98, column 32)
               _lhsOlamBindSq =
                   Seq.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -2912,7 +2751,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 21, column 17)
               _mbVar =
                   Just _nm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 17)
               _lhsOlevOf =
                   fvLev _nm _lhsIcvarIntroMp
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 7, column 17)
@@ -3005,7 +2844,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3074,7 +2913,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3128,7 +2967,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
               _levOf =
                   cLevIntern
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -3146,7 +2985,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3215,7 +3054,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3269,7 +3108,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
               _levOf =
                   cLevModule
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -3287,7 +3126,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3396,10 +3235,10 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 18, column 17)
               _lamS =
                   _lhsIlamS `Set.union` _bindsIbindLamS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 24, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 21, column 17)
               _maxBindLev =
                   fvsLev _lhsIcvarIntroMp cLevModule _bindsIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               __tup4 =
                   case categ_ of
                       CBindCateg_Strict -> (const _lhsIlev,_lhsIcvarIntroMp)
@@ -3408,19 +3247,19 @@
                                                `Map.union` _lhsIcvarIntroMp
                                            )
                       _                 -> (id,_lhsIcvarIntroMp)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               (_strLev,_) =
                   __tup4
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               (_,_bindsOcvarIntroMp) =
                   __tup4
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 30, column 17)
               _bodyOcvarIntroMp =
                   Map.map (\cvi -> cvi {cviLev = _strLev $ cviLev cvi}) _bindsIcvarIntroExprMp `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 42, column 17)
               _introCVarIntroMp =
                   Map.map (\cvi -> cvi {cviLev = _lhsIlev}) _bindsIbindsIntroCVarIntroMp `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 66, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 63, column 17)
               _levOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _fvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 6, column 17)
@@ -3471,7 +3310,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3633,7 +3472,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 60, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 57, column 17)
               _levOf =
                   _funcIlevOf `max` _argIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 8, column 17)
@@ -3672,7 +3511,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3845,19 +3684,18 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 20, column 17)
               _varS =
                   _argNm `Set.insert` _lhsIvarS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 4, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 2, column 17)
               _cvi =
                   CVarIntro
                     { cviLev  = _lev
-                    , cviMeta = CMetaVal_Val
                     }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 23, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
               _bodyOcvarIntroMp =
                   Map.insert _argNm _cvi _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 44, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
               _bodyOintroCVarIntroMp =
                   Map.insert _argNm _cvi _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
               _levOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _bodyIfvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 5, column 17)
@@ -3896,7 +3734,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4074,7 +3912,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 58, column 17)
               _levOf =
                   _exprIlevOf `max` _altsIlevOf `max` _dfltIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4092,7 +3930,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4276,7 +4114,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _errorExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _errorExprIlevOf
               -- self rule
@@ -4422,7 +4260,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4443,7 +4281,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4637,7 +4475,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4658,7 +4496,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -4890,7 +4728,7 @@
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
               _lhsOmbVar =
                   Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
@@ -4911,7 +4749,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -5094,7 +4932,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5163,7 +5001,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5232,7 +5070,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5323,7 +5161,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _bodyIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bodyIlevOf
               -- self rule
@@ -5429,7 +5267,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5520,7 +5358,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _funcIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _funcIlevOf
               -- self rule
@@ -5649,7 +5487,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _bodyIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bodyIlevOf
               -- self rule
@@ -5764,7 +5602,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _annIfvS `Set.union` _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _annIlevOf `max` _exprIlevOf
               -- self rule
@@ -5918,7 +5756,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5949,7 +5787,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -6041,623 +5879,6 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         fvSCafMp             : FvSMp
-         introCVarIntroMp     : CVarIntroMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-         levOf                : Int
-         self                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = CVarReplNmMp ->
-                   CVarIntroMp ->
-                   FvSMp ->
-                   Int ->
-                   CVarIntroMp ->
-                   FvS ->
-                   Int ->
-                   FvS ->
-                   ( CMetaBind,FvS,Int,Int,CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Plain
-              -- self rule
-              _self =
-                  CMetaBind_Plain
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function0
-              -- self rule
-              _self =
-                  CMetaBind_Function0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function1
-              -- self rule
-              _self =
-                  CMetaBind_Function1
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Apply0
-              -- self rule
-              _self =
-                  CMetaBind_Apply0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         fvSCafMp             : FvSMp
-         introCVarIntroMp     : CVarIntroMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-         levOf                : Int
-         self                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = CVarReplNmMp ->
-                  CVarIntroMp ->
-                  FvSMp ->
-                  Int ->
-                  CVarIntroMp ->
-                  FvS ->
-                  Int ->
-                  FvS ->
-                  ( CMetaVal,FvS,Int,Int,CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Val
-              -- self rule
-              _self =
-                  CMetaVal_Val
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Dict
-              -- self rule
-              _self =
-                  CMetaVal_Dict
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Track track_
-              -- self rule
-              _self =
-                  CMetaVal_Track track_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         fvSCafMp             : FvSMp
-         introCVarIntroMp     : CVarIntroMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-         levOf                : Int
-         self                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = CVarReplNmMp ->
-                CVarIntroMp ->
-                FvSMp ->
-                Int ->
-                CVarIntroMp ->
-                FvS ->
-                Int ->
-                FvS ->
-                ( CMetas,FvS,Int,Int,CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIfvSCafMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetas
-              _lhsOself :: CMetas
-              _lhsOgUniq :: Int
-              _x1OargMp :: CVarReplNmMp
-              _x1OcvarIntroMp :: CVarIntroMp
-              _x1OfvSCafMp :: FvSMp
-              _x1OgUniq :: Int
-              _x1OintroCVarIntroMp :: CVarIntroMp
-              _x1OlamS :: FvS
-              _x1Olev :: Int
-              _x1OvarS :: FvS
-              _x2OargMp :: CVarReplNmMp
-              _x2OcvarIntroMp :: CVarIntroMp
-              _x2OfvSCafMp :: FvSMp
-              _x2OgUniq :: Int
-              _x2OintroCVarIntroMp :: CVarIntroMp
-              _x2OlamS :: FvS
-              _x2Olev :: Int
-              _x2OvarS :: FvS
-              _x1IcTrf :: CMetaBind
-              _x1IfvS :: FvS
-              _x1IgUniq :: Int
-              _x1IlevOf :: Int
-              _x1Iself :: CMetaBind
-              _x2IcTrf :: CMetaVal
-              _x2IfvS :: FvS
-              _x2IgUniq :: Int
-              _x2IlevOf :: Int
-              _x2Iself :: CMetaVal
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _x1IfvS `Set.union` _x2IfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _x1IlevOf `max` _x2IlevOf
-              -- self rule
-              _cTrf =
-                  (_x1IcTrf,_x2IcTrf)
-              -- self rule
-              _self =
-                  (_x1Iself,_x2Iself)
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _x2IgUniq
-              -- copy rule (down)
-              _x1OargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _x1OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x1OfvSCafMp =
-                  _lhsIfvSCafMp
-              -- copy rule (down)
-              _x1OgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _x1OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x1OlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _x1Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x1OvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _x2OargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _x2OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x2OfvSCafMp =
-                  _lhsIfvSCafMp
-              -- copy rule (chain)
-              _x2OgUniq =
-                  _x1IgUniq
-              -- copy rule (down)
-              _x2OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x2OlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _x2Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x2OvarS =
-                  _lhsIvarS
-              ( _x1IcTrf,_x1IfvS,_x1IgUniq,_x1IlevOf,_x1Iself) =
-                  x1_ _x1OargMp _x1OcvarIntroMp _x1OfvSCafMp _x1OgUniq _x1OintroCVarIntroMp _x1OlamS _x1Olev _x1OvarS
-              ( _x2IcTrf,_x2IfvS,_x2IgUniq,_x2IlevOf,_x2Iself) =
-                  x2_ _x2OargMp _x2OcvarIntroMp _x2OfvSCafMp _x2OgUniq _x2OintroCVarIntroMp _x2OlamS _x2Olev _x2OvarS
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
@@ -6760,7 +5981,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- self rule
@@ -6900,7 +6121,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -6968,7 +6189,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _restIfvS `Set.union` _bindsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _restIlevOf `max` _bindsIlevOf
               -- self rule
@@ -7056,7 +6277,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7095,7 +6316,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7134,7 +6355,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7307,7 +6528,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _offsetIlevOf `max` _bindIlevOf `max` _fldAnnsIlevOf
               -- self rule
@@ -7497,7 +6718,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7587,7 +6808,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7669,7 +6890,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -7700,7 +6921,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -7762,10 +6983,10 @@
          -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 14, column 17)
          _moduleOlamS =
              Set.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 17, column 17)
          _moduleOcvarIntroMp =
              Map.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 38, column 17)
          _moduleOintroCVarIntroMp =
              Map.empty
          -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 4, column 17)
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Const)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Const)
 module UHC.Light.Compiler.Core.Trf.ConstProp(cmodTrfConstProp) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -410,16 +410,10 @@
          cTrf                 : CBound 
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -445,10 +439,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -465,10 +457,9 @@
                 HsName ->
                 EHCOpts ->
                 ( CBound)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisTopApp
@@ -493,40 +484,11 @@
                 { _exprOisTopTup | _exprOisTopTup `seq` (True) ->
                 (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
                  { ( _exprIappArgL,_exprIappLam,_exprIcTrf,_exprIwhatBelow) | True ->
-                     (case (_lhsIopts) of
-                      { _bindMetaOopts | _bindMetaOopts `seq` (True) ->
-                      (case (_lhsIlev) of
-                       { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                       (case (bindMeta_ _bindMetaOlev _bindMetaOopts) of
-                        { ( _bindMetaIcTrf) | True ->
-                            (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                             { _cTrf | _cTrf `seq` (True) ->
-                             (case (_cTrf) of
-                              { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                              ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _cmetasOopts | _cmetasOopts `seq` (True) ->
-          (case (_lhsIlev) of
-           { _cmetasOlev | _cmetasOlev `seq` (True) ->
-           (case (cmetas_ _cmetasOlev _cmetasOopts) of
-            { ( _cmetasIcTrf) | True ->
-                (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                 { _cTrf | _cTrf `seq` (True) ->
-                 (case (_cTrf) of
-                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                  ( _lhsOcTrf) }) }) }) }) }))
+                     (case (CBound_Bind _exprIcTrf) of
+                      { _cTrf | _cTrf `seq` (True) ->
+                      (case (_cTrf) of
+                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                       ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2211,219 +2173,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   EHCOpts ->
-                   ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  EHCOpts ->
-                  ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                EHCOpts ->
-                ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts | _x2Oopts `seq` (True) ->
-          (case (_lhsIlev) of
-           { _x2Olev | _x2Olev `seq` (True) ->
-           (case (x2_ _x2Olev _x2Oopts) of
-            { ( _x2IcTrf) | True ->
-                (case (_lhsIopts) of
-                 { _x1Oopts | _x1Oopts `seq` (True) ->
-                 (case (_lhsIlev) of
-                  { _x1Olev | _x1Olev `seq` (True) ->
-                  (case (x1_ _x1Olev _x1Oopts) of
-                   { ( _x1IcTrf) | True ->
-                       (case ((_x1IcTrf,_x2IcTrf)) of
-                        { _cTrf | _cTrf `seq` (True) ->
-                        (case (_cTrf) of
-                         { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                         ( _lhsOcTrf) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ElimN)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ElimN)
 module UHC.Light.Compiler.Core.Trf.ElimNonCodegenConstructs(cmodTrfElimNonCodegenConstructs) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -297,15 +297,9 @@
          cTrf                 : CBound 
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -329,10 +323,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -342,34 +334,15 @@
 -- semantic domain
 type T_CBound = EHCOpts ->
                 ( CBound)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIopts ->
          (case (_lhsIopts) of
           { _exprOopts | _exprOopts `seq` (True) ->
           (case (expr_ _exprOopts) of
            { ( _exprIcTrf) | True ->
-               (case (_lhsIopts) of
-                { _bindMetaOopts | _bindMetaOopts `seq` (True) ->
-                (case (bindMeta_ _bindMetaOopts) of
-                 { ( _bindMetaIcTrf) | True ->
-                     (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       ( _lhsOcTrf) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIopts ->
-         (case (_lhsIopts) of
-          { _cmetasOopts | _cmetasOopts `seq` (True) ->
-          (case (cmetas_ _cmetasOopts) of
-           { ( _cmetasIcTrf) | True ->
-               (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
+               (case (CBound_Bind _exprIcTrf) of
                 { _cTrf | _cTrf `seq` (True) ->
                 (case (_cTrf) of
                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
@@ -1289,199 +1262,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = EHCOpts ->
-                   ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIopts ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIopts ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIopts ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIopts ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = EHCOpts ->
-                  ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIopts ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIopts ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIopts ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIopts ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIopts ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = EHCOpts ->
-                ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts | _x2Oopts `seq` (True) ->
-          (case (x2_ _x2Oopts) of
-           { ( _x2IcTrf) | True ->
-               (case (_lhsIopts) of
-                { _x1Oopts | _x1Oopts `seq` (True) ->
-                (case (x1_ _x1Oopts) of
-                 { ( _x1IcTrf) | True ->
-                     (case ((_x1IcTrf,_x2IcTrf)) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       ( _lhsOcTrf) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ElimT)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ElimT)
 module UHC.Light.Compiler.Core.Trf.ElimTrivApp(cmodTrfElimTrivApp) where
 
 import Data.Maybe
@@ -466,16 +466,10 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -501,10 +495,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -521,10 +513,9 @@
                 HsName ->
                 EHCOpts ->
                 ( CBound,FvS,FvSMp,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisTopApp
@@ -549,52 +540,17 @@
                 { _exprOisTopTup | _exprOisTopTup `seq` (True) ->
                 (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of
                  { ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIfvS,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
-                     (case (_lhsIopts) of
-                      { _bindMetaOopts | _bindMetaOopts `seq` (True) ->
-                      (case (_lhsIlev) of
-                       { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                       (case (bindMeta_ _bindMetaOlev _bindMetaOopts) of
-                        { ( _bindMetaIcTrf,_bindMetaIfvS) | True ->
-                            (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                             { _cTrf | _cTrf `seq` (True) ->
-                             (case (_cTrf) of
-                              { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                              (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                               { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                               (case (Map.empty) of
-                                { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                                (case ([]) of
-                                 { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                                 ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _cmetasOopts | _cmetasOopts `seq` (True) ->
-          (case (_lhsIlev) of
-           { _cmetasOlev | _cmetasOlev `seq` (True) ->
-           (case (cmetas_ _cmetasOlev _cmetasOopts) of
-            { ( _cmetasIcTrf,_cmetasIfvS) | True ->
-                (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                 { _cTrf | _cTrf `seq` (True) ->
-                 (case (_cTrf) of
-                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                  (case (_cmetasIfvS) of
-                   { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                   (case (Map.empty) of
-                    { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                    (case ([]) of
-                     { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                     ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }))
+                     (case (CBound_Bind _exprIcTrf) of
+                      { _cTrf | _cTrf `seq` (True) ->
+                      (case (_cTrf) of
+                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                       (case (_exprIfvS) of
+                        { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                        (case (Map.empty) of
+                         { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
+                         (case ([]) of
+                          { _lhsOnmL | _lhsOnmL `seq` (True) ->
+                          ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2507,242 +2463,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   EHCOpts ->
-                   ( CMetaBind,FvS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  EHCOpts ->
-                  ( CMetaVal,FvS)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lev                  : Int
-         opts                 : EHCOpts
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                EHCOpts ->
-                ( CMetas,FvS)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts | _x2Oopts `seq` (True) ->
-          (case (_lhsIlev) of
-           { _x2Olev | _x2Olev `seq` (True) ->
-           (case (x2_ _x2Olev _x2Oopts) of
-            { ( _x2IcTrf,_x2IfvS) | True ->
-                (case (_lhsIopts) of
-                 { _x1Oopts | _x1Oopts `seq` (True) ->
-                 (case (_lhsIlev) of
-                  { _x1Olev | _x1Olev `seq` (True) ->
-                  (case (x1_ _x1Olev _x1Oopts) of
-                   { ( _x1IcTrf,_x1IfvS) | True ->
-                       (case ((_x1IcTrf,_x2IcTrf)) of
-                        { _cTrf | _cTrf `seq` (True) ->
-                        (case (_cTrf) of
-                         { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                         (case (_x1IfvS `Set.union` _x2IfvS) of
-                          { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                          ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Erase)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Erase)
 module UHC.Light.Compiler.Core.Trf.EraseExtractTysigCore(cmodTrfEraseExtractTysigCore, cmodTrfEraseTyCore) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -425,21 +425,12 @@
          selvalYesL           : [SelVal]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cTrf        : _
             local boundval    : _
             local isSelected  : _
             local _tup1       : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
-            local boundval    : _
-            local isSelected  : _
-            local _tup2       : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -449,7 +440,7 @@
             local cTrf        : _
             local boundval    : _
             local isSelected  : _
-            local _tup3       : _
+            local _tup2       : _
       alternative Ty:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child ty             : {Ty}
@@ -457,7 +448,7 @@
             local cTrf        : _
             local boundval    : _
             local isSelected  : _
-            local _tup4       : _
+            local _tup3       : _
       alternative FFE:
          child callconv       : {FFIWay}
          child expEnt         : {ForeignEnt}
@@ -467,15 +458,13 @@
             local cTrf        : _
             local boundval    : _
             local isSelected  : _
-            local _tup5       : _
+            local _tup4       : _
 -}
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -488,10 +477,9 @@
                 HsName ->
                 EHCOpts ->
                 ( LamMp,([CBind]),CBound,([StateSel]),([SelVal]),([SelVal]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIboundsel
        _lhsIlamMp
        _lhsInm
@@ -506,62 +494,21 @@
              { _exprOlamMp | _exprOlamMp `seq` (True) ->
              (case (expr_ _exprOlamMp _exprOopts) of
               { ( _exprIcTrf,_exprIgathLamMp) | True ->
-                  (case (_lhsIopts) of
-                   { _bindMetaOopts | _bindMetaOopts `seq` (True) ->
-                   (case (_lhsIlamMp) of
-                    { _bindMetaOlamMp | _bindMetaOlamMp `seq` (True) ->
-                    (case (bindMeta_ _bindMetaOlamMp _bindMetaOopts) of
-                     { ( _bindMetaIcTrf) | True ->
-                         (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                          { _cTrf | _cTrf `seq` (True) ->
-                          (case (_cTrf) of
-                           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                           (case (_cTrf) of
-                            { _boundval | _boundval `seq` (True) ->
-                            (case (selBind    _lhsIboundsel) of
-                             { _isSelected | _isSelected `seq` (True) ->
-                             (case (mkSel _isSelected _boundval) of
-                              { __tup1 | __tup1 `seq` (True) ->
-                              (case (__tup1) of
-                               { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->
-                               (case (__tup1) of
-                                { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->
-                                (case (__tup1) of
-                                 { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->
-                                 ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIboundsel
-       _lhsIlamMp
-       _lhsInm
-       _lhsIopts ->
-         (case (Map.empty) of
-          { _lhsObindLamMp | _lhsObindLamMp `seq` (True) ->
-          (case ([]) of
-           { _lhsOcBindL | _lhsOcBindL `seq` (True) ->
-           (case (_lhsIopts) of
-            { _cmetasOopts | _cmetasOopts `seq` (True) ->
-            (case (_lhsIlamMp) of
-             { _cmetasOlamMp | _cmetasOlamMp `seq` (True) ->
-             (case (cmetas_ _cmetasOlamMp _cmetasOopts) of
-              { ( _cmetasIcTrf) | True ->
-                  (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
+                  (case (CBound_Bind _exprIcTrf) of
                    { _cTrf | _cTrf `seq` (True) ->
                    (case (_cTrf) of
                     { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
                     (case (_cTrf) of
                      { _boundval | _boundval `seq` (True) ->
-                     (case (selMeta    _lhsIboundsel aspectKeyS_) of
+                     (case (selBind    _lhsIboundsel) of
                       { _isSelected | _isSelected `seq` (True) ->
                       (case (mkSel _isSelected _boundval) of
-                       { __tup2 | __tup2 `seq` (True) ->
-                       (case (__tup2) of
+                       { __tup1 | __tup1 `seq` (True) ->
+                       (case (__tup1) of
                         { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->
-                        (case (__tup2) of
+                        (case (__tup1) of
                          { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->
-                         (case (__tup2) of
+                         (case (__tup1) of
                           { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->
                           ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
@@ -593,12 +540,12 @@
                      (case (selVal     _lhsIboundsel aspectKeyS_ mlev_ lbl_) of
                       { _isSelected | _isSelected `seq` (True) ->
                       (case (mkSel _isSelected _boundval) of
-                       { __tup3 | __tup3 `seq` (True) ->
-                       (case (__tup3) of
+                       { __tup2 | __tup2 `seq` (True) ->
+                       (case (__tup2) of
                         { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->
-                        (case (__tup3) of
+                        (case (__tup2) of
                          { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->
-                         (case (__tup3) of
+                         (case (__tup2) of
                           { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->
                           ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Ty :: ACoreBindAspectKeyS ->
@@ -622,12 +569,12 @@
               (case (selTy      _lhsIboundsel aspectKeyS_) of
                { _isSelected | _isSelected `seq` (True) ->
                (case (mkSel _isSelected _boundval) of
-                { __tup4 | __tup4 `seq` (True) ->
-                (case (__tup4) of
+                { __tup3 | __tup3 `seq` (True) ->
+                (case (__tup3) of
                  { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->
-                 (case (__tup4) of
+                 (case (__tup3) of
                   { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->
-                  (case (__tup4) of
+                  (case (__tup3) of
                    { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->
                    ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_FFE :: FFIWay ->
@@ -659,12 +606,12 @@
                      (case (selFFE     _lhsIboundsel) of
                       { _isSelected | _isSelected `seq` (True) ->
                       (case (mkSel _isSelected _boundval) of
-                       { __tup5 | __tup5 `seq` (True) ->
-                       (case (__tup5) of
+                       { __tup4 | __tup4 `seq` (True) ->
+                       (case (__tup4) of
                         { (_,_,_lhsOselvalInsertYesM) | _lhsOselvalInsertYesM `seq` (True) ->
-                        (case (__tup5) of
+                        (case (__tup4) of
                          { (_,_lhsOselvalNoL,_) | _lhsOselvalNoL `seq` (True) ->
-                         (case (__tup5) of
+                         (case (__tup4) of
                           { (_lhsOselvalYesL,_,_) | _lhsOselvalYesL `seq` (True) ->
                           ( _lhsObindLamMp,_lhsOcBindL,_lhsOcTrf,_lhsOselvalInsertYesM,_lhsOselvalNoL,_lhsOselvalYesL) }) }) }) }) }) }) }) }) }) }) }) }) }))
 -- CBoundL -----------------------------------------------------
@@ -1723,219 +1670,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lamMp                : LamMp
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = LamMp ->
-                   EHCOpts ->
-                   ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lamMp                : LamMp
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = LamMp ->
-                  EHCOpts ->
-                  ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lamMp                : LamMp
-         opts                 : EHCOpts
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = LamMp ->
-                EHCOpts ->
-                ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlamMp
-       _lhsIopts ->
-         (case (_lhsIopts) of
-          { _x2Oopts | _x2Oopts `seq` (True) ->
-          (case (_lhsIlamMp) of
-           { _x2OlamMp | _x2OlamMp `seq` (True) ->
-           (case (x2_ _x2OlamMp _x2Oopts) of
-            { ( _x2IcTrf) | True ->
-                (case (_lhsIopts) of
-                 { _x1Oopts | _x1Oopts `seq` (True) ->
-                 (case (_lhsIlamMp) of
-                  { _x1OlamMp | _x1OlamMp `seq` (True) ->
-                  (case (x1_ _x1OlamMp _x1Oopts) of
-                   { ( _x1IcTrf) | True ->
-                       (case ((_x1IcTrf,_x2IcTrf)) of
-                        { _cTrf | _cTrf `seq` (True) ->
-                        (case (_cTrf) of
-                         { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                         ( _lhsOcTrf) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/EtaRe)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/EtaRe)
 module UHC.Light.Compiler.Core.Trf.EtaRed(cmodTrfEtaRed) where
 
 import Data.Maybe
@@ -426,16 +426,10 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -461,10 +455,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -480,10 +472,9 @@
                 Int ->
                 HsName ->
                 ( CBound,FvS,FvSMp,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisTopApp
@@ -505,47 +496,17 @@
                { _exprOisTopApp | _exprOisTopApp `seq` (True) ->
                (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
                 { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
-                    (case (_lhsIlev) of
-                     { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                     (case (bindMeta_ _bindMetaOlev) of
-                      { ( _bindMetaIcTrf,_bindMetaIfvS) | True ->
-                          (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                           { _cTrf | _cTrf `seq` (True) ->
-                           (case (_cTrf) of
-                            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                            (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                             (case (Map.empty) of
-                              { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                              (case ([]) of
-                               { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                               ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm ->
-         (case (_lhsIlev) of
-          { _cmetasOlev | _cmetasOlev `seq` (True) ->
-          (case (cmetas_ _cmetasOlev) of
-           { ( _cmetasIcTrf,_cmetasIfvS) | True ->
-               (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                { _cTrf | _cTrf `seq` (True) ->
-                (case (_cTrf) of
-                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                 (case (_cmetasIfvS) of
-                  { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                  (case (Map.empty) of
-                   { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                   (case ([]) of
-                    { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                    ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }))
+                    (case (CBound_Bind _exprIcTrf) of
+                     { _cTrf | _cTrf `seq` (True) ->
+                     (case (_cTrf) of
+                      { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                      (case (_exprIfvS) of
+                       { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                       (case (Map.empty) of
+                        { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
+                        (case ([]) of
+                         { _lhsOnmL | _lhsOnmL `seq` (True) ->
+                         ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2383,222 +2344,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   ( CMetaBind,FvS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  ( CMetaVal,FvS)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            ( _lhsOcTrf,_lhsOfvS) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                ( CMetas,FvS)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev ->
-         (case (_lhsIlev) of
-          { _x2Olev | _x2Olev `seq` (True) ->
-          (case (x2_ _x2Olev) of
-           { ( _x2IcTrf,_x2IfvS) | True ->
-               (case (_lhsIlev) of
-                { _x1Olev | _x1Olev `seq` (True) ->
-                (case (x1_ _x1Olev) of
-                 { ( _x1IcTrf,_x1IfvS) | True ->
-                     (case ((_x1IcTrf,_x2IcTrf)) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       (case (_x1IfvS `Set.union` _x2IfvS) of
-                        { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                        ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Expli)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Expli)
 module UHC.Light.Compiler.Core.Trf.ExplicitStackTrace(cmodTrfExplicitStackTrace) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -858,7 +858,6 @@
          debugLamMp           : LamMp
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
@@ -872,12 +871,6 @@
             local mbInStackTraceCtxt : _
             local newLamMp    : _
             local cTrf        : {CBound}
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local bindCTrfL   : _
-            local cTrf        : {CBound}
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -906,10 +899,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -929,10 +920,9 @@
                 EHCOpts ->
                 Int ->
                 ( ([CBind]),LamMp,CBound,LamMp,Int)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisTopApp
@@ -953,11 +943,6 @@
               _cTrf :: CBound
               _lhsOcTrf :: CBound
               _lhsOuniq :: Int
-              _bindMetaOlamMp :: LamMp
-              _bindMetaOlev :: Int
-              _bindMetaOmbInStackTraceCtxt :: (Maybe HsName)
-              _bindMetaOopts :: EHCOpts
-              _bindMetaOuniq :: Int
               _exprOevalCtx :: EvalCtx
               _exprOlamMp :: LamMp
               _exprOlev :: Int
@@ -965,9 +950,6 @@
               _exprOopts :: EHCOpts
               _exprOuniq :: Int
               _exprOwhatAbove :: WhatExpr
-              _bindMetaIcTrf :: CMetas
-              _bindMetaIdebugLamMp :: LamMp
-              _bindMetaIuniq :: Int
               _exprIcTrf :: CExpr
               _exprIdebugLamMp :: LamMp
               _exprIgathLamMp :: LamMp
@@ -1009,7 +991,7 @@
                   case _mbStackTrace of
                     StackTraceInfo_HasStackTraceEquiv dbNm | _isTraceCandidate
                       -> ( [ acoreBind1Cat CBindCateg_Plain dbNm (acoreLam1 _nmStackTrace _exprIcTrf)
-                           , acoreBind1MetasTy _lhsInm _bindMetaIcTrf (acoreTyErr "ExplicitStackTrace.CBound.Bind")
+                           , acoreBind1Ty _lhsInm (acoreTyErr "ExplicitStackTrace.CBound.Bind")
                              $ acoreLam   _exprItraceCandidateLamArgs
                              $ acoreApp   (acoreVar dbNm)
                                           ( acoreVar (ehcOptBuiltin _lhsIopts ehbnDataListAltNil)
@@ -1039,7 +1021,7 @@
                   _bindCTrfL
               -- self rule
               _cTrf =
-                  CBound_Bind _bindMetaIcTrf _exprIcTrf
+                  CBound_Bind _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
@@ -1047,21 +1029,6 @@
               _lhsOuniq =
                   _uniq
               -- copy rule (down)
-              _bindMetaOlamMp =
-                  _lhsIlamMp
-              -- copy rule (down)
-              _bindMetaOlev =
-                  _lhsIlev
-              -- copy rule (from local)
-              _bindMetaOmbInStackTraceCtxt =
-                  _mbInStackTraceCtxt
-              -- copy rule (down)
-              _bindMetaOopts =
-                  _lhsIopts
-              -- copy rule (from local)
-              _bindMetaOuniq =
-                  _uniq
-              -- copy rule (down)
               _exprOevalCtx =
                   _lhsIevalCtx
               -- copy rule (down)
@@ -1082,79 +1049,9 @@
               -- copy rule (from local)
               _exprOwhatAbove =
                   _whatAbove
-              ( _bindMetaIcTrf,_bindMetaIdebugLamMp,_bindMetaIuniq) =
-                  bindMeta_ _bindMetaOlamMp _bindMetaOlev _bindMetaOmbInStackTraceCtxt _bindMetaOopts _bindMetaOuniq
               ( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
                   expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
           in  ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamMp
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsInm
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsObindCTrfL :: ([CBind])
-              _lhsObindLamMp :: LamMp
-              _lhsOdebugLamMp :: LamMp
-              _cTrf :: CBound
-              _lhsOcTrf :: CBound
-              _lhsOuniq :: Int
-              _cmetasOlamMp :: LamMp
-              _cmetasOlev :: Int
-              _cmetasOmbInStackTraceCtxt :: (Maybe HsName)
-              _cmetasOopts :: EHCOpts
-              _cmetasOuniq :: Int
-              _cmetasIcTrf :: CMetas
-              _cmetasIdebugLamMp :: LamMp
-              _cmetasIuniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 130, column 17)
-              _bindCTrfL =
-                  [acoreBind1Asp1 _lhsInm _cTrf]
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 110, column 30)
-              _lhsObindCTrfL =
-                  _bindCTrfL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
-              _lhsObindLamMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  _cmetasIdebugLamMp
-              -- self rule
-              _cTrf =
-                  CBound_Meta aspectKeyS_ _cmetasIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOuniq =
-                  _cmetasIuniq
-              -- copy rule (down)
-              _cmetasOlamMp =
-                  _lhsIlamMp
-              -- copy rule (down)
-              _cmetasOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _cmetasOmbInStackTraceCtxt =
-                  _lhsImbInStackTraceCtxt
-              -- copy rule (down)
-              _cmetasOopts =
-                  _lhsIopts
-              -- copy rule (down)
-              _cmetasOuniq =
-                  _lhsIuniq
-              ( _cmetasIcTrf,_cmetasIdebugLamMp,_cmetasIuniq) =
-                  cmetas_ _cmetasOlamMp _cmetasOlev _cmetasOmbInStackTraceCtxt _cmetasOopts _cmetasOuniq
-          in  ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -4753,421 +4650,6 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lamMp                : LamMp
-         lev                  : Int
-         mbInStackTraceCtxt   : Maybe HsName
-         opts                 : EHCOpts
-      chained attribute:
-         uniq                 : Int
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         debugLamMp           : LamMp
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = LamMp ->
-                   Int ->
-                   (Maybe HsName) ->
-                   EHCOpts ->
-                   Int ->
-                   ( CMetaBind,LamMp,Int)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaBind
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaBind_Plain
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaBind
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaBind
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function1
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaBind
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaBind_Apply0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lamMp                : LamMp
-         lev                  : Int
-         mbInStackTraceCtxt   : Maybe HsName
-         opts                 : EHCOpts
-      chained attribute:
-         uniq                 : Int
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         debugLamMp           : LamMp
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = LamMp ->
-                  Int ->
-                  (Maybe HsName) ->
-                  EHCOpts ->
-                  Int ->
-                  ( CMetaVal,LamMp,Int)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaVal
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaVal_Val
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaVal
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaVal_Dict
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaVal
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaVal
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetaVal
-              _lhsOuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CMetaVal_Track track_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOuniq =
-                  _lhsIuniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         lamMp                : LamMp
-         lev                  : Int
-         mbInStackTraceCtxt   : Maybe HsName
-         opts                 : EHCOpts
-      chained attribute:
-         uniq                 : Int
-      synthesized attributes:
-         cTrf                 : CMetas 
-         debugLamMp           : LamMp
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = LamMp ->
-                Int ->
-                (Maybe HsName) ->
-                EHCOpts ->
-                Int ->
-                ( CMetas,LamMp,Int)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlamMp
-       _lhsIlev
-       _lhsImbInStackTraceCtxt
-       _lhsIopts
-       _lhsIuniq ->
-         (let _lhsOdebugLamMp :: LamMp
-              _lhsOcTrf :: CMetas
-              _lhsOuniq :: Int
-              _x1OlamMp :: LamMp
-              _x1Olev :: Int
-              _x1OmbInStackTraceCtxt :: (Maybe HsName)
-              _x1Oopts :: EHCOpts
-              _x1Ouniq :: Int
-              _x2OlamMp :: LamMp
-              _x2Olev :: Int
-              _x2OmbInStackTraceCtxt :: (Maybe HsName)
-              _x2Oopts :: EHCOpts
-              _x2Ouniq :: Int
-              _x1IcTrf :: CMetaBind
-              _x1IdebugLamMp :: LamMp
-              _x1Iuniq :: Int
-              _x2IcTrf :: CMetaVal
-              _x2IdebugLamMp :: LamMp
-              _x2Iuniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.ag"(line 149, column 22)
-              _lhsOdebugLamMp =
-                  _x1IdebugLamMp `Map.union` _x2IdebugLamMp
-              -- self rule
-              _cTrf =
-                  (_x1IcTrf,_x2IcTrf)
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOuniq =
-                  _x2Iuniq
-              -- copy rule (down)
-              _x1OlamMp =
-                  _lhsIlamMp
-              -- copy rule (down)
-              _x1Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x1OmbInStackTraceCtxt =
-                  _lhsImbInStackTraceCtxt
-              -- copy rule (down)
-              _x1Oopts =
-                  _lhsIopts
-              -- copy rule (down)
-              _x1Ouniq =
-                  _lhsIuniq
-              -- copy rule (down)
-              _x2OlamMp =
-                  _lhsIlamMp
-              -- copy rule (down)
-              _x2Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x2OmbInStackTraceCtxt =
-                  _lhsImbInStackTraceCtxt
-              -- copy rule (down)
-              _x2Oopts =
-                  _lhsIopts
-              -- copy rule (chain)
-              _x2Ouniq =
-                  _x1Iuniq
-              ( _x1IcTrf,_x1IdebugLamMp,_x1Iuniq) =
-                  x1_ _x1OlamMp _x1Olev _x1OmbInStackTraceCtxt _x1Oopts _x1Ouniq
-              ( _x2IcTrf,_x2IdebugLamMp,_x2Iuniq) =
-                  x2_ _x2OlamMp _x2Olev _x2OmbInStackTraceCtxt _x2Oopts _x2Ouniq
-          in  ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/FixAf)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/FixAf)
 module UHC.Light.Compiler.Core.Trf.FixAfterParse(cmodTrfFixAfterParse) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -303,15 +303,9 @@
          cTrf                 : CBound 
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -335,10 +329,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -348,34 +340,15 @@
 -- semantic domain
 type T_CBound = DataGam ->
                 ( CBound)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIdataGam ->
          (case (_lhsIdataGam) of
           { _exprOdataGam | _exprOdataGam `seq` (True) ->
           (case (expr_ _exprOdataGam) of
            { ( _exprIcTrf) | True ->
-               (case (_lhsIdataGam) of
-                { _bindMetaOdataGam | _bindMetaOdataGam `seq` (True) ->
-                (case (bindMeta_ _bindMetaOdataGam) of
-                 { ( _bindMetaIcTrf) | True ->
-                     (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       ( _lhsOcTrf) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIdataGam ->
-         (case (_lhsIdataGam) of
-          { _cmetasOdataGam | _cmetasOdataGam `seq` (True) ->
-          (case (cmetas_ _cmetasOdataGam) of
-           { ( _cmetasIcTrf) | True ->
-               (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
+               (case (CBound_Bind _exprIcTrf) of
                 { _cTrf | _cTrf `seq` (True) ->
                 (case (_cTrf) of
                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
@@ -1299,199 +1272,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         dataGam              : DataGam
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = DataGam ->
-                   ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIdataGam ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIdataGam ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIdataGam ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIdataGam ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         dataGam              : DataGam
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = DataGam ->
-                  ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIdataGam ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIdataGam ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIdataGam ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIdataGam ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIdataGam ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           ( _lhsOcTrf) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         dataGam              : DataGam
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = DataGam ->
-                ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIdataGam ->
-         (case (_lhsIdataGam) of
-          { _x2OdataGam | _x2OdataGam `seq` (True) ->
-          (case (x2_ _x2OdataGam) of
-           { ( _x2IcTrf) | True ->
-               (case (_lhsIdataGam) of
-                { _x1OdataGam | _x1OdataGam `seq` (True) ->
-                (case (x1_ _x1OdataGam) of
-                 { ( _x1IcTrf) | True ->
-                     (case ((_x1IcTrf,_x2IcTrf)) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       ( _lhsOcTrf) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Float)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Float)
 module UHC.Light.Compiler.Core.Trf.FloatToGlobal(cmodTrfFloatToGlobal) where
 
 import UHC.Util.Utils
@@ -509,7 +509,6 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local whatAbove   : {WhatExpr}
@@ -517,11 +516,6 @@
             local cBindTrf    : _
             local isClosurableBind : _
             local _tup1       : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -547,10 +541,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -567,10 +559,9 @@
                 Int ->
                 HsName ->
                 ( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),(Seq.FastSeq CBind),(Seq.FastSeq CBind),(Seq.FastSeq CBind),CBound,FvS,FvSMp,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIevalCtx
        _lhsIisGlobal
        _lhsIisLocalInInstance
@@ -581,100 +572,61 @@
        _lhsInm ->
          (case (_lhsIlev) of
           { _exprOlev | _exprOlev `seq` (True) ->
-          (case (_lhsIlev) of
-           { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-           (case (bindMeta_ _bindMetaOlev) of
-            { ( _bindMetaIcFloatedBindGrps,_bindMetaIcTrf,_bindMetaIfvS,_bindMetaIisInstance) | True ->
-                (case (_bindMetaIisInstance || _lhsIisLocalInInstance) of
-                 { _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
-                 (case (ExprIsBind _lhsInm) of
-                  { _whatAbove | _whatAbove `seq` (True) ->
-                  (case (_whatAbove) of
-                   { _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
-                   (case (_lhsIevalCtx) of
-                    { _exprOevalCtx | _exprOevalCtx `seq` (True) ->
-                    (case (True) of
-                     { _exprOisTopTup | _exprOisTopTup `seq` (True) ->
-                     (case (True) of
-                      { _exprOisTopApp | _exprOisTopApp `seq` (True) ->
-                      (case (expr_ _exprOevalCtx _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
-                       { ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
-                           (case (_bindMetaIcFloatedBindGrps `Seq.union` _exprIcFloatedBindGrps) of
-                            { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-                            (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                             { _cTrf | _cTrf `seq` (True) ->
-                             (case (acoreBind1Asp1 _lhsInm _cTrf) of
-                              { _cBindTrf | _cBindTrf `seq` (True) ->
-                              (case ((  _lhsIletBindingsCateg /= CBindCateg_Strict
-                                     && _exprIisClosurableExpr
+          (case (_lhsIisLocalInInstance) of
+           { _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
+           (case (ExprIsBind _lhsInm) of
+            { _whatAbove | _whatAbove `seq` (True) ->
+            (case (_whatAbove) of
+             { _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
+             (case (_lhsIevalCtx) of
+              { _exprOevalCtx | _exprOevalCtx `seq` (True) ->
+              (case (True) of
+               { _exprOisTopTup | _exprOisTopTup `seq` (True) ->
+               (case (True) of
+                { _exprOisTopApp | _exprOisTopApp `seq` (True) ->
+                (case (expr_ _exprOevalCtx _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
+                 { ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
+                     (case (_exprIcFloatedBindGrps) of
+                      { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
+                      (case (CBound_Bind _exprIcTrf) of
+                       { _cTrf | _cTrf `seq` (True) ->
+                       (case (acoreBind1Asp1 _lhsInm _cTrf) of
+                        { _cBindTrf | _cBindTrf `seq` (True) ->
+                        (case ((  _lhsIletBindingsCateg /= CBindCateg_Strict
+                               && _exprIisClosurableExpr
+                               )) of
+                         { _isClosurableBind | _isClosurableBind `seq` (True) ->
+                         (case (if isJust _exprImbLam
+                                then ( Seq.singleton _cBindTrf
+                                     , Seq.empty
+                                     , Seq.empty
+                                     )
+                                else if _isClosurableBind
+                                        || _lhsIisLocalInInstance
+                                then ( Seq.empty
+                                     , Seq.singleton _cBindTrf
+                                     , Seq.empty
+                                     )
+                                else ( Seq.empty
+                                     , Seq.empty
+                                     , Seq.singleton _cBindTrf
                                      )) of
-                               { _isClosurableBind | _isClosurableBind `seq` (True) ->
-                               (case (if isJust _exprImbLam
-                                      then ( Seq.singleton _cBindTrf
-                                           , Seq.empty
-                                           , Seq.empty
-                                           )
-                                      else if _isClosurableBind
-                                              || _lhsIisLocalInInstance
-                                      then ( Seq.empty
-                                           , Seq.singleton _cBindTrf
-                                           , Seq.empty
-                                           )
-                                      else ( Seq.empty
-                                           , Seq.empty
-                                           , Seq.singleton _cBindTrf
-                                           )) of
-                                { __tup1 | __tup1 `seq` (True) ->
-                                (case (__tup1) of
-                                 { (_lhsOcLamBinds,_,_) | _lhsOcLamBinds `seq` (True) ->
-                                 (case (__tup1) of
-                                  { (_,_lhsOcLargeCAFBinds,_) | _lhsOcLargeCAFBinds `seq` (True) ->
-                                  (case (__tup1) of
-                                   { (_,_,_lhsOcSmallCAFBinds) | _lhsOcSmallCAFBinds `seq` (True) ->
-                                   (case (_cTrf) of
-                                    { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                    (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                                     { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                                     (case (Map.empty) of
-                                      { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                                      (case ([]) of
-                                       { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                                       ( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIevalCtx
-       _lhsIisGlobal
-       _lhsIisLocalInInstance
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm ->
-         (case (_lhsIlev) of
-          { _cmetasOlev | _cmetasOlev `seq` (True) ->
-          (case (cmetas_ _cmetasOlev) of
-           { ( _cmetasIcFloatedBindGrps,_cmetasIcTrf,_cmetasIfvS,_cmetasIisInstance) | True ->
-               (case (_cmetasIcFloatedBindGrps) of
-                { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-                (case (Seq.empty) of
-                 { _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
-                 (case (Seq.empty) of
-                  { _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
-                  (case (Seq.empty) of
-                   { _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (True) ->
-                   (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                    { _cTrf | _cTrf `seq` (True) ->
-                    (case (_cTrf) of
-                     { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                     (case (_cmetasIfvS) of
-                      { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                      (case (Map.empty) of
-                       { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                       (case ([]) of
-                        { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                        ( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }))
+                          { __tup1 | __tup1 `seq` (True) ->
+                          (case (__tup1) of
+                           { (_lhsOcLamBinds,_,_) | _lhsOcLamBinds `seq` (True) ->
+                           (case (__tup1) of
+                            { (_,_lhsOcLargeCAFBinds,_) | _lhsOcLargeCAFBinds `seq` (True) ->
+                            (case (__tup1) of
+                             { (_,_,_lhsOcSmallCAFBinds) | _lhsOcSmallCAFBinds `seq` (True) ->
+                             (case (_cTrf) of
+                              { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                              (case (_exprIfvS) of
+                               { _lhsOfvS | _lhsOfvS `seq` (True) ->
+                               (case (Map.empty) of
+                                { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
+                                (case ([]) of
+                                 { _lhsOnmL | _lhsOnmL `seq` (True) ->
+                                 ( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2694,259 +2646,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cFloatedBindGrps     : Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   ( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CMetaBind,FvS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaBind_Plain) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaBind_Function0) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaBind_Function1) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaBind_Apply0) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cFloatedBindGrps     : Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-         isInstance           : Bool
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  ( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CMetaVal,FvS,Bool)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaVal_Val) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             (case (False) of
-              { _lhsOisInstance | _lhsOisInstance `seq` (True) ->
-              ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaVal_Dict) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             (case (False) of
-              { _lhsOisInstance | _lhsOisInstance `seq` (True) ->
-              ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaVal_DictClass tracks_) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             (case (False) of
-              { _lhsOisInstance | _lhsOisInstance `seq` (True) ->
-              ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaVal_DictInstance tracks_) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             (case (True) of
-              { _lhsOisInstance | _lhsOisInstance `seq` (True) ->
-              ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev ->
-         (case (Seq.empty) of
-          { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-          (case (CMetaVal_Track track_) of
-           { _cTrf | _cTrf `seq` (True) ->
-           (case (_cTrf) of
-            { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             (case (False) of
-              { _lhsOisInstance | _lhsOisInstance `seq` (True) ->
-              ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cFloatedBindGrps     : Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)
-         cTrf                 : CMetas 
-         fvS                  : FvS
-         isInstance           : Bool
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                ( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CMetas,FvS,Bool)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev ->
-         (case (_lhsIlev) of
-          { _x2Olev | _x2Olev `seq` (True) ->
-          (case (x2_ _x2Olev) of
-           { ( _x2IcFloatedBindGrps,_x2IcTrf,_x2IfvS,_x2IisInstance) | True ->
-               (case (_lhsIlev) of
-                { _x1Olev | _x1Olev `seq` (True) ->
-                (case (x1_ _x1Olev) of
-                 { ( _x1IcFloatedBindGrps,_x1IcTrf,_x1IfvS) | True ->
-                     (case (_x1IcFloatedBindGrps `Seq.union` _x2IcFloatedBindGrps) of
-                      { _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
-                      (case ((_x1IcTrf,_x2IcTrf)) of
-                       { _cTrf | _cTrf `seq` (True) ->
-                       (case (_cTrf) of
-                        { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                        (case (_x1IfvS `Set.union` _x2IfvS) of
-                         { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                         (case (_x2IisInstance) of
-                          { _lhsOisInstance | _lhsOisInstance `seq` (True) ->
-                          ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Inlin)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/Inlin)
 module UHC.Light.Compiler.Core.Trf.InlineLetAlias(cmodTrfInlineLetAlias) where
 
 import Data.Maybe
@@ -34,17 +34,6 @@
 
 type NmMp = Map.Map HsName CExpr
 
-
-
-trackNames :: Track -> [HsName]
-trackNames (TrackSelect n t) = trackNames t
-trackNames (TrackVarApply x ts) = x : concatMap trackNames ts
-trackNames _ = []
-
-substTrack :: NmMp -> Track -> Track
-substTrack m (TrackSelect n t) = TrackSelect n (substTrack m t)
-substTrack m (TrackVarApply x ts) = TrackVarApply (maybe x (fromJust . cexprMbVar) (Map.lookup x m)) (map (substTrack m) ts)
-substTrack _ t = t
 -- CAlt --------------------------------------------------------
 {-
    visit 0:
@@ -117,16 +106,16 @@
               _exprIfvS :: FvS
               _exprIlevOf :: Int
               _exprImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 15, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 12, column 17)
               _cvi =
                   emptyCVarIntro { cviLev  = _lev }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 36, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
               _exprOcvarIntroMp =
                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
               _exprOintroCVarIntroMp =
                   Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
               _lhsOlevOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)
@@ -250,7 +239,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- self rule
@@ -314,7 +303,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -436,19 +425,19 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   _bindAspectsIbindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _bindAspectsIbindsIntroCVarIntroMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   _bindAspectsIbindsNoTrfNmS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _bindAspectsIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _bindAspectsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bindAspectsIlevOf
               -- self rule
@@ -531,7 +520,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -609,7 +598,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -663,7 +652,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -789,13 +778,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   _hdIbindNmMp `Map.union` _tlIbindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   _hdIbindsNoTrfNmS `Set.union` _tlIbindsNoTrfNmS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -804,7 +793,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
               _lhsOfvSMp =
                   _hdIfvSMp `Map.union` _tlIfvSMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -895,13 +884,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -910,7 +899,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
               _lhsOfvSMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -951,19 +940,12 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
-            local cmetaVal    : _
             local cvi         : _
             local cviExpr     : _
             local _tup1       : _
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -988,10 +970,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -1010,10 +990,9 @@
                 HsNameS ->
                 HsNameS ->
                 ( ([(HsName,CBind)]),NmMp,CVarIntroMp,HsNameS,CBound,CVarIntroMp,FvS,FvSMp,(ACoreBindAspMp NmMp),Int,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIallowTrfToCon
        _lhsIaspBindNmMp
        _lhsIcvarIntroMp
@@ -1031,45 +1010,32 @@
               _exprOallowTrfToCon :: Bool
               _exprOnoTrfToConNmS :: HsNameS
               _lhsOgathAspBindNmMp :: (ACoreBindAspMp NmMp)
-              _bindMetaObindNmMp :: NmMp
               _lhsObindsNoTrfNmS :: HsNameS
               _lhsOfvS :: FvS
               _lhsOfvSMp :: FvSMp
               _lhsOlevOf :: Int
               _lhsOnmL :: ([HsName])
               _lhsOcTrf :: CBound
-              _bindMetaOcvarIntroMp :: CVarIntroMp
-              _bindMetaOintroCVarIntroMp :: CVarIntroMp
-              _bindMetaOlev :: Int
-              _bindMetaOnmMp :: NmMp
               _exprOcvarIntroMp :: CVarIntroMp
               _exprOintroCVarIntroMp :: CVarIntroMp
               _exprOlev :: Int
               _exprOnmMp :: NmMp
               _exprOnoTrfNmS :: HsNameS
-              _bindMetaIcTrf :: CMetas
-              _bindMetaIfvS :: FvS
-              _bindMetaIlevOf :: Int
-              _bindMetaInameS :: HsNameS
-              _bindMetaIself :: CMetas
               _exprIbindNmMp :: NmMp
               _exprIcTrf :: CExpr
               _exprIfvS :: FvS
               _exprIlevOf :: Int
               _exprImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
-              _cmetaVal =
-                  cmetasVal _bindMetaIself
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
               _cvi =
-                  emptyCVarIntro { cviLev  = _lhsIlev   , cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
+                  emptyCVarIntro { cviLev  = _lhsIlev    }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
               _cviExpr =
-                  emptyCVarIntro { cviLev  = _exprIlevOf, cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)
+                  emptyCVarIntro { cviLev  = _exprIlevOf }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 17)
               _lhsObindsIntroCVarIntroMp =
                   Map.singleton _lhsInm _cvi
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 17)
               _lhsOcvarIntroExprMp =
                   Map.singleton _lhsInm _cviExpr
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 111, column 33)
@@ -1090,47 +1056,32 @@
                   not (_lhsInm `Set.member` _lhsInoTrfToConNmS)
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 142, column 11)
               _exprOnoTrfToConNmS =
-                  _lhsInoTrfToConNmS `Set.union` _bindMetaInameS
+                  _lhsInoTrfToConNmS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 151, column 25)
               _lhsOgathAspBindNmMp =
                   Map.singleton acbaspkeyDefault _exprIbindNmMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 179, column 25)
-              _bindMetaObindNmMp =
-                  _exprIbindNmMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   Set.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
-                  _bindMetaIfvS `Set.union` _exprIfvS
+                  _exprIfvS
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
               _lhsOfvSMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
-                  _bindMetaIlevOf `max` _exprIlevOf
+                  _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
               _lhsOnmL =
                   []
               -- self rule
               _cTrf =
-                  CBound_Bind _bindMetaIcTrf _exprIcTrf
+                  CBound_Bind _exprIcTrf
               -- self rule
               _lhsOcTrf =
                   _cTrf
               -- copy rule (down)
-              _bindMetaOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bindMetaOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindMetaOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindMetaOnmMp =
-                  _lhsInmMp
-              -- copy rule (down)
               _exprOcvarIntroMp =
                   _lhsIcvarIntroMp
               -- copy rule (down)
@@ -1145,100 +1096,9 @@
               -- copy rule (down)
               _exprOnoTrfNmS =
                   _lhsInoTrfNmS
-              ( _bindMetaIcTrf,_bindMetaIfvS,_bindMetaIlevOf,_bindMetaInameS,_bindMetaIself) =
-                  bindMeta_ _bindMetaObindNmMp _bindMetaOcvarIntroMp _bindMetaOintroCVarIntroMp _bindMetaOlev _bindMetaOnmMp
               ( _exprIbindNmMp,_exprIcTrf,_exprIfvS,_exprIlevOf,_exprImbRepl) =
                   expr_ _exprOallowTrfToCon _exprOcvarIntroMp _exprOintroCVarIntroMp _exprOlev _exprOnmMp _exprOnoTrfNmS _exprOnoTrfToConNmS
           in  ( _lhsObindL,_lhsObindNmMp,_lhsObindsIntroCVarIntroMp,_lhsObindsNoTrfNmS,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOfvS,_lhsOfvSMp,_lhsOgathAspBindNmMp,_lhsOlevOf,_lhsOnmL)))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIallowTrfToCon
-       _lhsIaspBindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIlev
-       _lhsInm
-       _lhsInmMp
-       _lhsInoTrfNmS
-       _lhsInoTrfToConNmS ->
-         (let _cmetasObindNmMp :: NmMp
-              _lhsObindL :: ([(HsName,CBind)])
-              _lhsObindNmMp :: NmMp
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsObindsNoTrfNmS :: HsNameS
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindNmMp :: (ACoreBindAspMp NmMp)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBound
-              _cmetasOcvarIntroMp :: CVarIntroMp
-              _cmetasOintroCVarIntroMp :: CVarIntroMp
-              _cmetasOlev :: Int
-              _cmetasOnmMp :: NmMp
-              _cmetasIcTrf :: CMetas
-              _cmetasIfvS :: FvS
-              _cmetasIlevOf :: Int
-              _cmetasInameS :: HsNameS
-              _cmetasIself :: CMetas
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 180, column 25)
-              _cmetasObindNmMp =
-                  panicJust "InlineLetAlias.CBound.Meta.aspBindNmMp" $ Map.lookup acbaspkeyDefault _lhsIaspBindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 107, column 26)
-              _lhsObindL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
-              _lhsObindNmMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
-              _lhsObindsNoTrfNmS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _cmetasIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 145, column 74)
-              _lhsOgathAspBindNmMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _cmetasIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_Meta aspectKeyS_ _cmetasIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (down)
-              _cmetasOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _cmetasOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _cmetasOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _cmetasOnmMp =
-                  _lhsInmMp
-              ( _cmetasIcTrf,_cmetasIfvS,_cmetasIlevOf,_cmetasInameS,_cmetasIself) =
-                  cmetas_ _cmetasObindNmMp _cmetasOcvarIntroMp _cmetasOintroCVarIntroMp _cmetasOlev _cmetasOnmMp
-          in  ( _lhsObindL,_lhsObindNmMp,_lhsObindsIntroCVarIntroMp,_lhsObindsNoTrfNmS,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOfvS,_lhsOfvSMp,_lhsOgathAspBindNmMp,_lhsOlevOf,_lhsOnmL)))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -1284,13 +1144,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   _exprIbindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1302,7 +1162,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 145, column 74)
               _lhsOgathAspBindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1369,13 +1229,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1387,7 +1247,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 145, column 74)
               _lhsOgathAspBindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1448,13 +1308,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   _exprIbindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   _bindsNoTrfNmS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1466,7 +1326,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 145, column 74)
               _lhsOgathAspBindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1628,13 +1488,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   _hdIbindNmMp `Map.union` _tlIbindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   _hdIbindsNoTrfNmS `Set.union` _tlIbindsNoTrfNmS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1646,7 +1506,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 145, column 74)
               _lhsOgathAspBindNmMp =
                   _hdIgathAspBindNmMp `Map.union` _tlIgathAspBindNmMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -1752,13 +1612,13 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 106, column 29)
               _lhsObindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
               _lhsObindsIntroCVarIntroMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 104, column 34)
               _lhsObindsNoTrfNmS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
               _lhsOcvarIntroExprMp =
                   Map.empty
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
@@ -1770,7 +1630,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 145, column 74)
               _lhsOgathAspBindNmMp =
                   Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -2280,7 +2140,7 @@
               _lhsOmbRepl :: (Maybe CExpr)
               _lhsOcTrf :: CExpr
               _lhsObindNmMp :: NmMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 17)
               _lhsOlevOf =
                   fvLev _nm _lhsIcvarIntroMp
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 7, column 17)
@@ -2331,7 +2191,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -2367,7 +2227,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -2392,7 +2252,7 @@
               _lhsOfvS :: FvS
               _lhsOlevOf :: Int
               _lhsOcTrf :: CExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
               _levOf =
                   cLevIntern
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)
@@ -2404,7 +2264,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -2438,7 +2298,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -2463,7 +2323,7 @@
               _lhsOfvS :: FvS
               _lhsOlevOf :: Int
               _lhsOcTrf :: CExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
               _levOf =
                   cLevModule
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)
@@ -2475,7 +2335,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -2532,10 +2392,10 @@
               _bodyIfvS :: FvS
               _bodyIlevOf :: Int
               _bodyImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 24, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 21, column 17)
               _maxBindLev =
                   fvsLev _lhsIcvarIntroMp cLevModule _bindsIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               __tup2 =
                   case categ_ of
                       CBindCateg_Strict -> (const _lhsIlev,_lhsIcvarIntroMp)
@@ -2544,19 +2404,19 @@
                                                `Map.union` _lhsIcvarIntroMp
                                            )
                       _                 -> (id,_lhsIcvarIntroMp)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               (_strLev,_) =
                   __tup2
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
               (_,_bindsOcvarIntroMp) =
                   __tup2
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 30, column 17)
               _bodyOcvarIntroMp =
                   Map.map (\cvi -> cvi {cviLev = _strLev $ cviLev cvi}) _bindsIcvarIntroExprMp `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 42, column 17)
               _introCVarIntroMp =
                   Map.map (\cvi -> cvi {cviLev = _lhsIlev}) _bindsIbindsIntroCVarIntroMp `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 66, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 63, column 17)
               _levOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _fvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 6, column 17)
@@ -2616,7 +2476,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -2715,7 +2575,7 @@
               _argIgathAspBindNmMp :: (ACoreBindAspMp NmMp)
               _argIlevOf :: Int
               _argInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 60, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 57, column 17)
               _levOf =
                   _funcIlevOf `max` _argIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 8, column 17)
@@ -2739,7 +2599,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -2845,19 +2705,18 @@
               _bodyIfvS :: FvS
               _bodyIlevOf :: Int
               _bodyImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 4, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 2, column 17)
               _cvi =
                   CVarIntro
                     { cviLev  = _lev
-                    , cviMeta = CMetaVal_Val
                     }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 23, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
               _bodyOcvarIntroMp =
                   Map.insert _argNm _cvi _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 44, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
               _bodyOintroCVarIntroMp =
                   Map.insert _argNm _cvi _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
               _levOf =
                   fvsLev _lhsIcvarIntroMp cLevModule _bodyIfvS
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 5, column 17)
@@ -2884,7 +2743,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -2984,7 +2843,7 @@
               _dfltIfvS :: FvS
               _dfltIlevOf :: Int
               _dfltImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 58, column 17)
               _levOf =
                   _exprIlevOf `max` _altsIlevOf `max` _dfltIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)
@@ -2996,7 +2855,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3109,7 +2968,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _errorExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _errorExprIlevOf
               -- self rule
@@ -3184,7 +3043,7 @@
               _offsetIfvS :: FvS
               _offsetIlevOf :: Int
               _offsetImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)
@@ -3196,7 +3055,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3307,7 +3166,7 @@
               _fldExprIfvS :: FvS
               _fldExprIlevOf :: Int
               _fldExprImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)
@@ -3319,7 +3178,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3453,7 +3312,7 @@
               _fldExprIfvS :: FvS
               _fldExprIlevOf :: Int
               _fldExprImbRepl :: (Maybe CExpr)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
               _levOf =
                   _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 102, column 17)
@@ -3465,7 +3324,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _levOf
               -- self rule
@@ -3571,7 +3430,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3605,7 +3464,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3639,7 +3498,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3686,7 +3545,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _bodyIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bodyIlevOf
               -- self rule
@@ -3742,7 +3601,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -3789,7 +3648,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _funcIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _funcIlevOf
               -- self rule
@@ -3859,7 +3718,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _bodyIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _bodyIlevOf
               -- self rule
@@ -3933,7 +3792,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _annIfvS `Set.union` _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _annIlevOf `max` _exprIlevOf
               -- self rule
@@ -4031,7 +3890,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -4054,7 +3913,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -4143,523 +4002,6 @@
          _lhsOcTrf =
              _cTrf
      in  ( _lhsOcTrf))
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lev                  : Int
-         nmMp                 : NmMp
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-         levOf                : Int
-         self                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = CVarIntroMp ->
-                   CVarIntroMp ->
-                   Int ->
-                   NmMp ->
-                   ( CMetaBind,FvS,Int,CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Plain
-              -- self rule
-              _self =
-                  CMetaBind_Plain
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function0
-              -- self rule
-              _self =
-                  CMetaBind_Function0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function1
-              -- self rule
-              _self =
-                  CMetaBind_Function1
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Apply0
-              -- self rule
-              _self =
-                  CMetaBind_Apply0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOself)))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         bindNmMp             : NmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lev                  : Int
-         nmMp                 : NmMp
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-         levOf                : Int
-         nameS                : HsNameS
-         self                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = NmMp ->
-                  CVarIntroMp ->
-                  CVarIntroMp ->
-                  Int ->
-                  NmMp ->
-                  ( CMetaVal,FvS,Int,HsNameS,CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIbindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOnameS :: HsNameS
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 184, column 21)
-              _lhsOnameS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Val
-              -- self rule
-              _self =
-                  CMetaVal_Val
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOnameS,_lhsOself)))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIbindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOnameS :: HsNameS
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 184, column 21)
-              _lhsOnameS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Dict
-              -- self rule
-              _self =
-                  CMetaVal_Dict
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOnameS,_lhsOself)))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIbindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOnameS :: HsNameS
-              _lhsOcTrf :: CMetaVal
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOself :: CMetaVal
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 186, column 21)
-              _lhsOnameS =
-                  Set.fromList (concatMap trackNames tracks_)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 191, column 21)
-              _lhsOcTrf =
-                  CMetaVal_DictClass    (map (substTrack _lhsIbindNmMp) tracks_)
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOnameS,_lhsOself)))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIbindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOnameS :: HsNameS
-              _lhsOcTrf :: CMetaVal
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOself :: CMetaVal
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 186, column 21)
-              _lhsOnameS =
-                  Set.fromList (concatMap trackNames tracks_)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 192, column 21)
-              _lhsOcTrf =
-                  CMetaVal_DictInstance (map (substTrack _lhsIbindNmMp) tracks_)
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOnameS,_lhsOself)))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIbindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOnameS :: HsNameS
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/InlineLetAlias.ag"(line 188, column 41)
-              _lhsOnameS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Track track_
-              -- self rule
-              _self =
-                  CMetaVal_Track track_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOnameS,_lhsOself)))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         bindNmMp             : NmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lev                  : Int
-         nmMp                 : NmMp
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-         levOf                : Int
-         nameS                : HsNameS
-         self                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = NmMp ->
-                CVarIntroMp ->
-                CVarIntroMp ->
-                Int ->
-                NmMp ->
-                ( CMetas,FvS,Int,HsNameS,CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIbindNmMp
-       _lhsIcvarIntroMp
-       _lhsIintroCVarIntroMp
-       _lhsIlev
-       _lhsInmMp ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetas
-              _lhsOself :: CMetas
-              _lhsOnameS :: HsNameS
-              _x1OcvarIntroMp :: CVarIntroMp
-              _x1OintroCVarIntroMp :: CVarIntroMp
-              _x1Olev :: Int
-              _x1OnmMp :: NmMp
-              _x2ObindNmMp :: NmMp
-              _x2OcvarIntroMp :: CVarIntroMp
-              _x2OintroCVarIntroMp :: CVarIntroMp
-              _x2Olev :: Int
-              _x2OnmMp :: NmMp
-              _x1IcTrf :: CMetaBind
-              _x1IfvS :: FvS
-              _x1IlevOf :: Int
-              _x1Iself :: CMetaBind
-              _x2IcTrf :: CMetaVal
-              _x2IfvS :: FvS
-              _x2IlevOf :: Int
-              _x2InameS :: HsNameS
-              _x2Iself :: CMetaVal
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _x1IfvS `Set.union` _x2IfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _x1IlevOf `max` _x2IlevOf
-              -- self rule
-              _cTrf =
-                  (_x1IcTrf,_x2IcTrf)
-              -- self rule
-              _self =
-                  (_x1Iself,_x2Iself)
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (up)
-              _lhsOnameS =
-                  _x2InameS
-              -- copy rule (down)
-              _x1OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x1OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x1Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x1OnmMp =
-                  _lhsInmMp
-              -- copy rule (down)
-              _x2ObindNmMp =
-                  _lhsIbindNmMp
-              -- copy rule (down)
-              _x2OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x2OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x2Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x2OnmMp =
-                  _lhsInmMp
-              ( _x1IcTrf,_x1IfvS,_x1IlevOf,_x1Iself) =
-                  x1_ _x1OcvarIntroMp _x1OintroCVarIntroMp _x1Olev _x1OnmMp
-              ( _x2IcTrf,_x2IfvS,_x2IlevOf,_x2InameS,_x2Iself) =
-                  x2_ _x2ObindNmMp _x2OcvarIntroMp _x2OintroCVarIntroMp _x2Olev _x2OnmMp
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOlevOf,_lhsOnameS,_lhsOself)))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
@@ -4734,7 +4076,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _exprIlevOf
               -- self rule
@@ -4845,7 +4187,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -4895,7 +4237,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _restIfvS `Set.union` _bindsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _restIlevOf `max` _bindsIlevOf
               -- self rule
@@ -4951,7 +4293,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -4982,7 +4324,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -5013,7 +4355,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -5146,7 +4488,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _offsetIlevOf `max` _bindIlevOf `max` _fldAnnsIlevOf
               -- self rule
@@ -5276,7 +4618,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   _hdIlevOf `max` _tlIlevOf
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -5334,7 +4676,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -5399,7 +4741,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- self rule
@@ -5422,7 +4764,7 @@
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
               _lhsOfvS =
                   Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
               _lhsOlevOf =
                   cLevModule
               -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
@@ -5475,10 +4817,10 @@
               _moduleIcTrf :: CModule
               _moduleIfvS :: FvS
               _moduleIlevOf :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 17, column 17)
               _moduleOcvarIntroMp =
                   Map.empty
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 38, column 17)
               _moduleOintroCVarIntroMp =
                   Map.empty
               -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 4, column 17)
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
@@ -1,8696 +1,7704 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGl)
-module UHC.Light.Compiler.Core.Trf.LamGlobalAsArg(cmodTrfLamGlobalAsArg) where
-
-import UHC.Util.Utils
-import Data.Maybe
-import qualified Data.Set as Set
-import Data.List
-import qualified Data.Map as Map
-import UHC.Light.Compiler.Base.HsName.Builtin
-import UHC.Light.Compiler.Base.Common
-import UHC.Light.Compiler.Core
-import UHC.Light.Compiler.Ty
-import UHC.Light.Compiler.Core.Utils
-import UHC.Light.Compiler.AbstractCore
-import Debug.Trace
-
-
-
-
-
-
-
-
-
-
-
-
-
-cmodTrfLamGlobalAsArg :: CModule -> CModule
-cmodTrfLamGlobalAsArg cmod
-  =  let  t = wrap_CodeAGItf  (sem_CodeAGItf (CodeAGItf_AGItf cmod))
-                              (Inh_CodeAGItf)
-     in   cTrf_Syn_CodeAGItf t
-
-
-
-type AspBindLamArgInfo = (LamArgMp,Env)
-
-
-
-type LamArgMp = Map.Map HsName CVarIntroL
-
-
-
-
-type Env = Map.Map HsName Track
-
-metaExtendTrack :: LamArgMp -> Env -> Track -> Track
-metaExtendTrack mp env (TrackVarApply nm ps) = let r = Map.lookup nm mp
-                                                   xs = maybe [] assocLKeys r
-                                                   ts = map (\x -> Map.findWithDefault (TrackVarApply x []) x env) xs
-                                               in  -- trace (show nm ++ " extended with " ++ show ts) $
-                                                         (TrackVarApply nm (ts++ps))
-metaExtendTrack _ _ t = t
-
--- CAlt --------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CAlt 
-         fvS                  : FvS
-         levOf                : Int
-   alternatives:
-      alternative Alt:
-         child pat            : CPat 
-         child expr           : CExpr 
-         visit 0:
-            local cvi         : _
-            local fvS         : _
-            local whatAbove   : {WhatExpr}
-            local lev         : _
-            local cTrf        : _
--}
--- cata
-sem_CAlt :: CAlt ->
-            T_CAlt
-sem_CAlt (CAlt_Alt _pat _expr) =
-    (sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr))
--- semantic domain
-type T_CAlt = CVarReplNmMp ->
-              CVarIntroMp ->
-              EvalCtx ->
-              Int ->
-              CVarIntroMp ->
-              LamArgMp ->
-              FvSMp ->
-              FvS ->
-              Int ->
-              FvS ->
-              ( CAlt,FvS,Int,Int)
-sem_CAlt_Alt :: T_CPat ->
-                T_CExpr ->
-                T_CAlt
-sem_CAlt_Alt pat_ expr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _exprOvarS :: FvS
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _lhsOlevOf :: Int
-              _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOisDictClass :: Bool
-              _lhsOfvS :: FvS
-              _lhsOcTrf :: CAlt
-              _lhsOgUniq :: Int
-              _patOargMp :: CVarReplNmMp
-              _patOcvarIntroMp :: CVarIntroMp
-              _patOgUniq :: Int
-              _patOintroCVarIntroMp :: CVarIntroMp
-              _patOlamArgMp :: LamArgMp
-              _patOlamFvSMp :: FvSMp
-              _patOlamS :: FvS
-              _patOlev :: Int
-              _patOvarS :: FvS
-              _exprOargMp :: CVarReplNmMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOwhatAbove :: WhatExpr
-              _patIcTrf :: CPat
-              _patIfldNmL :: ([HsName])
-              _patIfvS :: FvS
-              _patIgUniq :: Int
-              _patIlevOf :: Int
-              _patInmL :: ([HsName])
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 23, column 17)
-              _exprOvarS =
-                  _lhsIvarS `Set.union` Set.fromList _patInmL
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 15, column 17)
-              _cvi =
-                  emptyCVarIntro { cviLev  = _lev }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 36, column 17)
-              _exprOcvarIntroMp =
-                  Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 48, column 17)
-              _exprOintroCVarIntroMp =
-                  Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 71, column 17)
-              _lhsOlevOf =
-                  fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)
-              _fvS =
-                  _exprIfvS `Set.difference` Set.fromList _patInmL
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 45, column 17)
-              _exprOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 45, column 17)
-              _exprOisTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 90, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevAlt.ag"(line 2, column 17)
-              _lev =
-                  _lhsIlev + 1
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 184, column 10)
-              _exprOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 185, column 10)
-              _exprOisDictClass =
-                  False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _fvS
-              -- self rule
-              _cTrf =
-                  CAlt_Alt _patIcTrf _exprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _patOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _patOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _patOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _patOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _patOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _patOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _patOlamS =
-                  _lhsIlamS
-              -- copy rule (from local)
-              _patOlev =
-                  _lev
-              -- copy rule (down)
-              _patOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _exprOgUniq =
-                  _patIgUniq
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (from local)
-              _exprOlev =
-                  _lev
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              ( _patIcTrf,_patIfldNmL,_patIfvS,_patIgUniq,_patIlevOf,_patInmL) =
-                  pat_ _patOargMp _patOcvarIntroMp _patOgUniq _patOintroCVarIntroMp _patOlamArgMp _patOlamFvSMp _patOlamS _patOlev _patOvarS
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
--- CAltL -------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CAltL 
-         fvS                  : FvS
-         levOf                : Int
-   alternatives:
-      alternative Cons:
-         child hd             : CAlt 
-         child tl             : CAltL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CAltL :: CAltL ->
-             T_CAltL
-sem_CAltL list =
-    (Prelude.foldr sem_CAltL_Cons sem_CAltL_Nil (Prelude.map sem_CAlt list))
--- semantic domain
-type T_CAltL = CVarReplNmMp ->
-               CVarIntroMp ->
-               EvalCtx ->
-               Int ->
-               CVarIntroMp ->
-               LamArgMp ->
-               FvSMp ->
-               FvS ->
-               Int ->
-               FvS ->
-               ( CAltL,FvS,Int,Int)
-sem_CAltL_Cons :: T_CAlt ->
-                  T_CAltL ->
-                  T_CAltL
-sem_CAltL_Cons hd_ tl_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CAltL
-              _lhsOgUniq :: Int
-              _hdOargMp :: CVarReplNmMp
-              _hdOcvarIntroMp :: CVarIntroMp
-              _hdOevalCtx :: EvalCtx
-              _hdOgUniq :: Int
-              _hdOintroCVarIntroMp :: CVarIntroMp
-              _hdOlamArgMp :: LamArgMp
-              _hdOlamFvSMp :: FvSMp
-              _hdOlamS :: FvS
-              _hdOlev :: Int
-              _hdOvarS :: FvS
-              _tlOargMp :: CVarReplNmMp
-              _tlOcvarIntroMp :: CVarIntroMp
-              _tlOevalCtx :: EvalCtx
-              _tlOgUniq :: Int
-              _tlOintroCVarIntroMp :: CVarIntroMp
-              _tlOlamArgMp :: LamArgMp
-              _tlOlamFvSMp :: FvSMp
-              _tlOlamS :: FvS
-              _tlOlev :: Int
-              _tlOvarS :: FvS
-              _hdIcTrf :: CAlt
-              _hdIfvS :: FvS
-              _hdIgUniq :: Int
-              _hdIlevOf :: Int
-              _tlIcTrf :: CAltL
-              _tlIfvS :: FvS
-              _tlIgUniq :: Int
-              _tlIlevOf :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _hdIlevOf `max` _tlIlevOf
-              -- self rule
-              _cTrf =
-                  (:) _hdIcTrf _tlIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _tlIgUniq
-              -- copy rule (down)
-              _hdOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _hdOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _hdOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _hdOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _hdOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _hdOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _hdOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _hdOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _hdOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _hdOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _tlOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _tlOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _tlOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _tlOgUniq =
-                  _hdIgUniq
-              -- copy rule (down)
-              _tlOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _tlOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _tlOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _tlOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _tlOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _tlOvarS =
-                  _lhsIvarS
-              ( _hdIcTrf,_hdIfvS,_hdIgUniq,_hdIlevOf) =
-                  hd_ _hdOargMp _hdOcvarIntroMp _hdOevalCtx _hdOgUniq _hdOintroCVarIntroMp _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOlev _hdOvarS
-              ( _tlIcTrf,_tlIfvS,_tlIgUniq,_tlIlevOf) =
-                  tl_ _tlOargMp _tlOcvarIntroMp _tlOevalCtx _tlOgUniq _tlOintroCVarIntroMp _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOlev _tlOvarS
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
-sem_CAltL_Nil :: T_CAltL
-sem_CAltL_Nil =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CAltL
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  []
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
--- CBind -------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         isGlobal             : Bool
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         letBindingsCateg     : CBindCateg
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         bindLamArgMp         : LamArgMp
-         bindLamS             : FvS
-         bindVarS             : FvS
-         bindsIntroCVarIntroMp : CVarIntroMp
-         cTrf                 : CBind 
-         cvarIntroExprMp      : CVarIntroMp
-         envUp                : Env
-         fvS                  : FvS
-         fvSMp                : FvSMp
-         levOf                : Int
-         nm                   : HsName
-         nmL                  : [HsName]
-   alternatives:
-      alternative Bind:
-         child nm             : {HsName}
-         child bindAspects    : CBoundL 
-         visit 0:
-            local aspBindLamArgMp : _
-            local cTrf        : _
--}
--- cata
-sem_CBind :: CBind ->
-             T_CBind
-sem_CBind (CBind_Bind _nm _bindAspects) =
-    (sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
--- semantic domain
-type T_CBind = CVarReplNmMp ->
-               CVarIntroMp ->
-               EvalCtx ->
-               Int ->
-               CVarIntroMp ->
-               Bool ->
-               LamArgMp ->
-               FvSMp ->
-               FvS ->
-               CBindCateg ->
-               Int ->
-               FvS ->
-               ( LamArgMp,FvS,FvS,CVarIntroMp,CBind,CVarIntroMp,Env,FvS,FvSMp,Int,Int,HsName,([HsName]))
-sem_CBind_Bind :: HsName ->
-                  T_CBoundL ->
-                  T_CBind
-sem_CBind_Bind nm_ bindAspects_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvSMp :: FvSMp
-              _lhsOnmL :: ([HsName])
-              _bindAspectsOnm :: HsName
-              _lhsOnm :: HsName
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CBind
-              _lhsOgUniq :: Int
-              _bindAspectsOargMp :: CVarReplNmMp
-              _bindAspectsOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _bindAspectsOcvarIntroMp :: CVarIntroMp
-              _bindAspectsOevalCtx :: EvalCtx
-              _bindAspectsOgUniq :: Int
-              _bindAspectsOintroCVarIntroMp :: CVarIntroMp
-              _bindAspectsOisGlobal :: Bool
-              _bindAspectsOlamArgMp :: LamArgMp
-              _bindAspectsOlamFvSMp :: FvSMp
-              _bindAspectsOlamS :: FvS
-              _bindAspectsOletBindingsCateg :: CBindCateg
-              _bindAspectsOlev :: Int
-              _bindAspectsOvarS :: FvS
-              _bindAspectsIbindLamArgMp :: LamArgMp
-              _bindAspectsIbindLamS :: FvS
-              _bindAspectsIbindVarS :: FvS
-              _bindAspectsIbindsIntroCVarIntroMp :: CVarIntroMp
-              _bindAspectsIcTrf :: CBoundL
-              _bindAspectsIcvarIntroExprMp :: CVarIntroMp
-              _bindAspectsIenvUp :: Env
-              _bindAspectsIfvS :: FvS
-              _bindAspectsIfvSMp :: FvSMp
-              _bindAspectsIgUniq :: Int
-              _bindAspectsIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _bindAspectsIlevOf :: Int
-              _bindAspectsInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 11, column 17)
-              _lhsOfvSMp =
-                  Map.singleton nm_ _bindAspectsIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 19, column 17)
-              _lhsOnmL =
-                  [nm_]
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 4, column 17)
-              _bindAspectsOnm =
-                  nm_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 12, column 17)
-              _lhsOnm =
-                  nm_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 88, column 25)
-              _aspBindLamArgMp =
-                  _bindAspectsIgathAspBindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _bindAspectsIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  _bindAspectsIbindLamS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  _bindAspectsIbindVarS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  _bindAspectsIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  _bindAspectsIcvarIntroExprMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  _bindAspectsIenvUp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _bindAspectsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _bindAspectsIlevOf
-              -- self rule
-              _cTrf =
-                  CBind_Bind nm_ _bindAspectsIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _bindAspectsIgUniq
-              -- copy rule (down)
-              _bindAspectsOargMp =
-                  _lhsIargMp
-              -- copy rule (from local)
-              _bindAspectsOaspBindLamArgMp =
-                  _aspBindLamArgMp
-              -- copy rule (down)
-              _bindAspectsOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bindAspectsOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _bindAspectsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bindAspectsOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindAspectsOisGlobal =
-                  _lhsIisGlobal
-              -- copy rule (down)
-              _bindAspectsOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bindAspectsOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bindAspectsOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bindAspectsOletBindingsCateg =
-                  _lhsIletBindingsCateg
-              -- copy rule (down)
-              _bindAspectsOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindAspectsOvarS =
-                  _lhsIvarS
-              ( _bindAspectsIbindLamArgMp,_bindAspectsIbindLamS,_bindAspectsIbindVarS,_bindAspectsIbindsIntroCVarIntroMp,_bindAspectsIcTrf,_bindAspectsIcvarIntroExprMp,_bindAspectsIenvUp,_bindAspectsIfvS,_bindAspectsIfvSMp,_bindAspectsIgUniq,_bindAspectsIgathAspBindLamArgMp,_bindAspectsIlevOf,_bindAspectsInmL) =
-                  bindAspects_ _bindAspectsOargMp _bindAspectsOaspBindLamArgMp _bindAspectsOcvarIntroMp _bindAspectsOevalCtx _bindAspectsOgUniq _bindAspectsOintroCVarIntroMp _bindAspectsOisGlobal _bindAspectsOlamArgMp _bindAspectsOlamFvSMp _bindAspectsOlamS _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm _bindAspectsOvarS
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevOf,_lhsOnm,_lhsOnmL)))
--- CBindAnn ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CBindAnn 
-         fvS                  : FvS
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Coe:
-         child coe            : {()}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CBindAnn :: CBindAnn ->
-                T_CBindAnn
-sem_CBindAnn (CBindAnn_Coe _coe) =
-    (sem_CBindAnn_Coe _coe)
--- semantic domain
-type T_CBindAnn = CVarReplNmMp ->
-                  CVarIntroMp ->
-                  Int ->
-                  CVarIntroMp ->
-                  LamArgMp ->
-                  FvSMp ->
-                  FvS ->
-                  Int ->
-                  FvS ->
-                  ( CBindAnn,FvS,Int,Int,([HsName]))
-sem_CBindAnn_Coe :: (()) ->
-                    T_CBindAnn
-sem_CBindAnn_Coe coe_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBindAnn
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBindAnn_Coe coe_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CBindAnnL ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CBindAnnL 
-         fvS                  : FvS
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Cons:
-         child hd             : CBindAnn 
-         child tl             : CBindAnnL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CBindAnnL :: CBindAnnL ->
-                 T_CBindAnnL
-sem_CBindAnnL list =
-    (Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list))
--- semantic domain
-type T_CBindAnnL = CVarReplNmMp ->
-                   CVarIntroMp ->
-                   Int ->
-                   CVarIntroMp ->
-                   LamArgMp ->
-                   FvSMp ->
-                   FvS ->
-                   Int ->
-                   FvS ->
-                   ( CBindAnnL,FvS,Int,Int,([HsName]))
-sem_CBindAnnL_Cons :: T_CBindAnn ->
-                      T_CBindAnnL ->
-                      T_CBindAnnL
-sem_CBindAnnL_Cons hd_ tl_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBindAnnL
-              _lhsOgUniq :: Int
-              _hdOargMp :: CVarReplNmMp
-              _hdOcvarIntroMp :: CVarIntroMp
-              _hdOgUniq :: Int
-              _hdOintroCVarIntroMp :: CVarIntroMp
-              _hdOlamArgMp :: LamArgMp
-              _hdOlamFvSMp :: FvSMp
-              _hdOlamS :: FvS
-              _hdOlev :: Int
-              _hdOvarS :: FvS
-              _tlOargMp :: CVarReplNmMp
-              _tlOcvarIntroMp :: CVarIntroMp
-              _tlOgUniq :: Int
-              _tlOintroCVarIntroMp :: CVarIntroMp
-              _tlOlamArgMp :: LamArgMp
-              _tlOlamFvSMp :: FvSMp
-              _tlOlamS :: FvS
-              _tlOlev :: Int
-              _tlOvarS :: FvS
-              _hdIcTrf :: CBindAnn
-              _hdIfvS :: FvS
-              _hdIgUniq :: Int
-              _hdIlevOf :: Int
-              _hdInmL :: ([HsName])
-              _tlIcTrf :: CBindAnnL
-              _tlIfvS :: FvS
-              _tlIgUniq :: Int
-              _tlIlevOf :: Int
-              _tlInmL :: ([HsName])
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _hdIlevOf `max` _tlIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  _hdInmL ++ _tlInmL
-              -- self rule
-              _cTrf =
-                  (:) _hdIcTrf _tlIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _tlIgUniq
-              -- copy rule (down)
-              _hdOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _hdOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _hdOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _hdOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _hdOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _hdOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _hdOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _hdOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _hdOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _tlOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _tlOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _tlOgUniq =
-                  _hdIgUniq
-              -- copy rule (down)
-              _tlOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _tlOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _tlOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _tlOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _tlOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _tlOvarS =
-                  _lhsIvarS
-              ( _hdIcTrf,_hdIfvS,_hdIgUniq,_hdIlevOf,_hdInmL) =
-                  hd_ _hdOargMp _hdOcvarIntroMp _hdOgUniq _hdOintroCVarIntroMp _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOlev _hdOvarS
-              ( _tlIcTrf,_tlIfvS,_tlIgUniq,_tlIlevOf,_tlInmL) =
-                  tl_ _tlOargMp _tlOcvarIntroMp _tlOgUniq _tlOintroCVarIntroMp _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOlev _tlOvarS
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CBindAnnL_Nil :: T_CBindAnnL
-sem_CBindAnnL_Nil =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBindAnnL
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  []
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CBindL ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         isGlobal             : Bool
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         letBindingsCateg     : CBindCateg
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         bindLamArgMp         : LamArgMp
-         bindLamS             : FvS
-         bindVarS             : FvS
-         bindsIntroCVarIntroMp : CVarIntroMp
-         cTrf                 : CBindL 
-         cvarIntroExprMp      : CVarIntroMp
-         envUp                : Env
-         fvS                  : FvS
-         fvSMp                : FvSMp
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Cons:
-         child hd             : CBind 
-         child tl             : CBindL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CBindL :: CBindL ->
-              T_CBindL
-sem_CBindL list =
-    (Prelude.foldr sem_CBindL_Cons sem_CBindL_Nil (Prelude.map sem_CBind list))
--- semantic domain
-type T_CBindL = CVarReplNmMp ->
-                CVarIntroMp ->
-                EvalCtx ->
-                Int ->
-                CVarIntroMp ->
-                Bool ->
-                LamArgMp ->
-                FvSMp ->
-                FvS ->
-                CBindCateg ->
-                Int ->
-                FvS ->
-                ( LamArgMp,FvS,FvS,CVarIntroMp,CBindL,CVarIntroMp,Env,FvS,FvSMp,Int,Int,([HsName]))
-sem_CBindL_Cons :: T_CBind ->
-                   T_CBindL ->
-                   T_CBindL
-sem_CBindL_Cons hd_ tl_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBindL
-              _lhsOgUniq :: Int
-              _hdOargMp :: CVarReplNmMp
-              _hdOcvarIntroMp :: CVarIntroMp
-              _hdOevalCtx :: EvalCtx
-              _hdOgUniq :: Int
-              _hdOintroCVarIntroMp :: CVarIntroMp
-              _hdOisGlobal :: Bool
-              _hdOlamArgMp :: LamArgMp
-              _hdOlamFvSMp :: FvSMp
-              _hdOlamS :: FvS
-              _hdOletBindingsCateg :: CBindCateg
-              _hdOlev :: Int
-              _hdOvarS :: FvS
-              _tlOargMp :: CVarReplNmMp
-              _tlOcvarIntroMp :: CVarIntroMp
-              _tlOevalCtx :: EvalCtx
-              _tlOgUniq :: Int
-              _tlOintroCVarIntroMp :: CVarIntroMp
-              _tlOisGlobal :: Bool
-              _tlOlamArgMp :: LamArgMp
-              _tlOlamFvSMp :: FvSMp
-              _tlOlamS :: FvS
-              _tlOletBindingsCateg :: CBindCateg
-              _tlOlev :: Int
-              _tlOvarS :: FvS
-              _hdIbindLamArgMp :: LamArgMp
-              _hdIbindLamS :: FvS
-              _hdIbindVarS :: FvS
-              _hdIbindsIntroCVarIntroMp :: CVarIntroMp
-              _hdIcTrf :: CBind
-              _hdIcvarIntroExprMp :: CVarIntroMp
-              _hdIenvUp :: Env
-              _hdIfvS :: FvS
-              _hdIfvSMp :: FvSMp
-              _hdIgUniq :: Int
-              _hdIlevOf :: Int
-              _hdInm :: HsName
-              _hdInmL :: ([HsName])
-              _tlIbindLamArgMp :: LamArgMp
-              _tlIbindLamS :: FvS
-              _tlIbindVarS :: FvS
-              _tlIbindsIntroCVarIntroMp :: CVarIntroMp
-              _tlIcTrf :: CBindL
-              _tlIcvarIntroExprMp :: CVarIntroMp
-              _tlIenvUp :: Env
-              _tlIfvS :: FvS
-              _tlIfvSMp :: FvSMp
-              _tlIgUniq :: Int
-              _tlIlevOf :: Int
-              _tlInmL :: ([HsName])
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _hdIbindLamArgMp `Map.union` _tlIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  _hdIbindLamS `Set.union` _tlIbindLamS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  _hdIbindVarS `Set.union` _tlIbindVarS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  _hdIenvUp `Map.union` _tlIenvUp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  _hdIfvSMp `Map.union` _tlIfvSMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _hdIlevOf `max` _tlIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  _hdInmL ++ _tlInmL
-              -- self rule
-              _cTrf =
-                  (:) _hdIcTrf _tlIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _tlIgUniq
-              -- copy rule (down)
-              _hdOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _hdOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _hdOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _hdOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _hdOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _hdOisGlobal =
-                  _lhsIisGlobal
-              -- copy rule (down)
-              _hdOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _hdOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _hdOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _hdOletBindingsCateg =
-                  _lhsIletBindingsCateg
-              -- copy rule (down)
-              _hdOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _hdOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _tlOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _tlOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _tlOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _tlOgUniq =
-                  _hdIgUniq
-              -- copy rule (down)
-              _tlOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _tlOisGlobal =
-                  _lhsIisGlobal
-              -- copy rule (down)
-              _tlOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _tlOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _tlOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _tlOletBindingsCateg =
-                  _lhsIletBindingsCateg
-              -- copy rule (down)
-              _tlOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _tlOvarS =
-                  _lhsIvarS
-              ( _hdIbindLamArgMp,_hdIbindLamS,_hdIbindVarS,_hdIbindsIntroCVarIntroMp,_hdIcTrf,_hdIcvarIntroExprMp,_hdIenvUp,_hdIfvS,_hdIfvSMp,_hdIgUniq,_hdIlevOf,_hdInm,_hdInmL) =
-                  hd_ _hdOargMp _hdOcvarIntroMp _hdOevalCtx _hdOgUniq _hdOintroCVarIntroMp _hdOisGlobal _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOletBindingsCateg _hdOlev _hdOvarS
-              ( _tlIbindLamArgMp,_tlIbindLamS,_tlIbindVarS,_tlIbindsIntroCVarIntroMp,_tlIcTrf,_tlIcvarIntroExprMp,_tlIenvUp,_tlIfvS,_tlIfvSMp,_tlIgUniq,_tlIlevOf,_tlInmL) =
-                  tl_ _tlOargMp _tlOcvarIntroMp _tlOevalCtx _tlOgUniq _tlOintroCVarIntroMp _tlOisGlobal _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOletBindingsCateg _tlOlev _tlOvarS
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CBindL_Nil :: T_CBindL
-sem_CBindL_Nil =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBindL
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  []
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CBound ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         aspBindLamArgMp      : ACoreBindAspMp AspBindLamArgInfo
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         isDictClass          : Bool
-         isGlobal             : Bool
-         isTopApp             : Bool
-         isTopTup             : Bool
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         letBindingsCateg     : CBindCateg
-         lev                  : Int
-         mbCtxCount           : Maybe Int
-         nm                   : HsName
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         bindLamArgMp         : LamArgMp
-         bindLamS             : FvS
-         bindVarS             : FvS
-         bindsIntroCVarIntroMp : CVarIntroMp
-         cTrf                 : CBound 
-         cvarIntroExprMp      : CVarIntroMp
-         envUp                : Env
-         fvS                  : FvS
-         fvSMp                : FvSMp
-         gathAspBindLamArgMp  : ACoreBindAspMp AspBindLamArgInfo
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Bind:
-         child bindMeta       : CMetas 
-         child expr           : CExpr 
-         visit 0:
-            local _tup1       : _
-            local cmetaVal    : _
-            local cvi         : _
-            local cviExpr     : _
-            local whatAbove   : {WhatExpr}
-            local _tup2       : _
-            local argNewL     : _
-            local argMpNew    : _
-            local bindLamArgMp : _
-            local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local _tup3       : _
-            local cTrf        : _
-      alternative Val:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child mlev           : {MetaLev}
-         child lbl            : {CLbl}
-         child expr           : CExpr 
-         visit 0:
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Ty:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child ty             : {Ty}
-         visit 0:
-            local cTrf        : _
-      alternative FFE:
-         child callconv       : {FFIWay}
-         child expEnt         : {ForeignEnt}
-         child expr           : CExpr 
-         child ty             : {Ty}
-         visit 0:
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
--}
--- cata
-sem_CBound :: CBound ->
-              T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
-sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
-    (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
-sem_CBound (CBound_Ty _aspectKeyS _ty) =
-    (sem_CBound_Ty _aspectKeyS _ty)
-sem_CBound (CBound_FFE _callconv _expEnt _expr _ty) =
-    (sem_CBound_FFE _callconv _expEnt (sem_CExpr _expr) _ty)
--- semantic domain
-type T_CBound = CVarReplNmMp ->
-                (ACoreBindAspMp AspBindLamArgInfo) ->
-                CVarIntroMp ->
-                EvalCtx ->
-                Int ->
-                CVarIntroMp ->
-                Bool ->
-                Bool ->
-                Bool ->
-                Bool ->
-                LamArgMp ->
-                FvSMp ->
-                FvS ->
-                CBindCateg ->
-                Int ->
-                (Maybe Int) ->
-                HsName ->
-                FvS ->
-                ( LamArgMp,FvS,FvS,CVarIntroMp,CBound,CVarIntroMp,Env,FvS,FvSMp,Int,(ACoreBindAspMp AspBindLamArgInfo),Int,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
-                   T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsInm
-       _lhsIvarS ->
-         (let _lhsObindVarS :: FvS
-              _lhsObindLamS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _exprOgUniq :: Int
-              _exprOargMp :: CVarReplNmMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOcTrf :: CBound
-              _bindMetaObindLamArgMp :: LamArgMp
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOisDictClass :: Bool
-              _bindMetaOenvFinal :: Env
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOgUniq :: Int
-              _bindMetaOargMp :: CVarReplNmMp
-              _bindMetaOcvarIntroMp :: CVarIntroMp
-              _bindMetaOgUniq :: Int
-              _bindMetaOintroCVarIntroMp :: CVarIntroMp
-              _bindMetaOlamArgMp :: LamArgMp
-              _bindMetaOlamFvSMp :: FvSMp
-              _bindMetaOlamS :: FvS
-              _bindMetaOlev :: Int
-              _bindMetaOvarS :: FvS
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _bindMetaIcTrf :: CMetas
-              _bindMetaIfvS :: FvS
-              _bindMetaIgUniq :: Int
-              _bindMetaIisDictClass :: Bool
-              _bindMetaIisDictInstance :: Bool
-              _bindMetaIisInstance :: Bool
-              _bindMetaIlevOf :: Int
-              _bindMetaImbTrack :: (Maybe Track)
-              _bindMetaIself :: CMetas
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
-              __tup1 =
-                  if isJust _exprImbLam
-                  then (Set.empty,Set.singleton _lhsInm)
-                  else (Set.singleton _lhsInm,Set.empty)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
-              (_lhsObindVarS,_) =
-                  __tup1
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
-              (_,_lhsObindLamS) =
-                  __tup1
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
-              _cmetaVal =
-                  cmetasVal _bindMetaIself
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
-              _cvi =
-                  emptyCVarIntro { cviLev  = _lhsIlev   , cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 10, column 17)
-              _cviExpr =
-                  emptyCVarIntro { cviLev  = _exprIlevOf, cviMeta = _cmetaVal }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 17)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.singleton _lhsInm _cvi
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 76, column 17)
-              _lhsOcvarIntroExprMp =
-                  Map.singleton _lhsInm _cviExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
-              _exprOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
-              _exprOisTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 83, column 17)
-              _whatAbove =
-                  ExprIsBind _lhsInm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 54, column 17)
-              _exprOgUniq =
-                  _lhsIgUniq + Map.size _argMpNew
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 79, column 17)
-              _exprOargMp =
-                  _argMpNew `Map.union` _lhsIargMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 92, column 25)
-              _lhsOgathAspBindLamArgMp =
-                  Map.singleton acbaspkeyDefault
-                            ( _exprIbindLamArgMp
-                            , _exprIenvUp
-                            )
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 132, column 33)
-              __tup2 =
-                  if                                    isJust _exprImbLam
-                  then  let  argLevL = fvLAsArg _lhsIintroCVarIntroMp $ panicJust "LamGlobalAsArg.CBind.Bind.argLevL" $ Map.lookup _lhsInm $ _lhsIlamFvSMp
-                             (argOL,argNL,argONMp) = fvLArgRepl _lhsIgUniq $ argLevL
-                        in   (argNL, argONMp, _lhsInm `Map.singleton` argOL)
-                  else  ([],Map.empty, Map.empty)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 132, column 33)
-              (_argNewL,_,_) =
-                  __tup2
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 132, column 33)
-              (_,_argMpNew,_) =
-                  __tup2
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 132, column 33)
-              (_,_,_bindLamArgMp) =
-                  __tup2
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 140, column 17)
-              _lhsOcTrf =
-                  (acoreBoundVal1Metas _lhsInm _bindMetaIcTrf $ acoreLam [(n) | (n,cvi) <- _argNewL] _exprIcTrf)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 144, column 17)
-              _bindMetaObindLamArgMp =
-                  _exprIbindLamArgMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 192, column 11)
-              _exprOmbCtxCount =
-                  if _bindMetaIisDictInstance
-                  then Just 0
-                  else Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 195, column 11)
-              _exprOisDictClass =
-                  _bindMetaIisDictClass
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 226, column 11)
-              _bindMetaOenvFinal =
-                  _exprIenvUp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 232, column 12)
-              _lhsOenvUp =
-                  maybe (Map.empty)
-                        (\t -> Map.singleton _lhsInm t)
-                        _bindMetaImbTrack
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _bindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _bindMetaIfvS `Set.union` _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _bindMetaIlevOf `max` _exprIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_Bind _bindMetaIcTrf _exprIcTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _bindMetaOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bindMetaOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bindMetaOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bindMetaOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindMetaOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bindMetaOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bindMetaOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bindMetaOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindMetaOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              ( _bindMetaIcTrf,_bindMetaIfvS,_bindMetaIgUniq,_bindMetaIisDictClass,_bindMetaIisDictInstance,_bindMetaIisInstance,_bindMetaIlevOf,_bindMetaImbTrack,_bindMetaIself) =
-                  bindMeta_ _bindMetaOargMp _bindMetaObindLamArgMp _bindMetaOcvarIntroMp _bindMetaOenvFinal _bindMetaOgUniq _bindMetaOintroCVarIntroMp _bindMetaOlamArgMp _bindMetaOlamFvSMp _bindMetaOlamS _bindMetaOlev _bindMetaOvarS
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsInm
-       _lhsIvarS ->
-         (let _cmetasObindLamArgMp :: LamArgMp
-              _cmetasOenvFinal :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBound
-              _lhsOgUniq :: Int
-              _cmetasOargMp :: CVarReplNmMp
-              _cmetasOcvarIntroMp :: CVarIntroMp
-              _cmetasOgUniq :: Int
-              _cmetasOintroCVarIntroMp :: CVarIntroMp
-              _cmetasOlamArgMp :: LamArgMp
-              _cmetasOlamFvSMp :: FvSMp
-              _cmetasOlamS :: FvS
-              _cmetasOlev :: Int
-              _cmetasOvarS :: FvS
-              _cmetasIcTrf :: CMetas
-              _cmetasIfvS :: FvS
-              _cmetasIgUniq :: Int
-              _cmetasIisDictClass :: Bool
-              _cmetasIisDictInstance :: Bool
-              _cmetasIisInstance :: Bool
-              _cmetasIlevOf :: Int
-              _cmetasImbTrack :: (Maybe Track)
-              _cmetasIself :: CMetas
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 110, column 49)
-              __tup3 =
-                  panicJust "LamGlobalAsArg.CBound.Meta.aspBindLamArgMp" $ Map.lookup acbaspkeyDefault _lhsIaspBindLamArgMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 110, column 49)
-              (_cmetasObindLamArgMp,_) =
-                  __tup3
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 110, column 49)
-              (_,_cmetasOenvFinal) =
-                  __tup3
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _cmetasIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
-              _lhsOgathAspBindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _cmetasIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_Meta aspectKeyS_ _cmetasIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _cmetasIgUniq
-              -- copy rule (down)
-              _cmetasOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _cmetasOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _cmetasOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _cmetasOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _cmetasOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _cmetasOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _cmetasOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _cmetasOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _cmetasOvarS =
-                  _lhsIvarS
-              ( _cmetasIcTrf,_cmetasIfvS,_cmetasIgUniq,_cmetasIisDictClass,_cmetasIisDictInstance,_cmetasIisInstance,_cmetasIlevOf,_cmetasImbTrack,_cmetasIself) =
-                  cmetas_ _cmetasOargMp _cmetasObindLamArgMp _cmetasOcvarIntroMp _cmetasOenvFinal _cmetasOgUniq _cmetasOintroCVarIntroMp _cmetasOlamArgMp _cmetasOlamFvSMp _cmetasOlamS _cmetasOlev _cmetasOvarS
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
-sem_CBound_Val :: ACoreBindAspectKeyS ->
-                  MetaLev ->
-                  CLbl ->
-                  T_CExpr ->
-                  T_CBound
-sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsInm
-       _lhsIvarS ->
-         (let _whatAbove :: WhatExpr
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOisDictClass :: Bool
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBound
-              _lhsOgUniq :: Int
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 83, column 17)
-              _whatAbove =
-                  ExprIsBind _lhsInm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 196, column 11)
-              _exprOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 197, column 11)
-              _exprOisDictClass =
-                  False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  _exprIenvUp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
-              _lhsOgathAspBindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _exprIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_Val aspectKeyS_ mlev_ lbl_ _exprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOisTopApp =
-                  _lhsIisTopApp
-              -- copy rule (down)
-              _exprOisTopTup =
-                  _lhsIisTopTup
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
-sem_CBound_Ty :: ACoreBindAspectKeyS ->
-                 Ty ->
-                 T_CBound
-sem_CBound_Ty aspectKeyS_ ty_ =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsInm
-       _lhsIvarS ->
-         (let _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBound
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
-              _lhsOgathAspBindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_Ty aspectKeyS_ ty_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
-sem_CBound_FFE :: FFIWay ->
-                  ForeignEnt ->
-                  T_CExpr ->
-                  Ty ->
-                  T_CBound
-sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisGlobal
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsInm
-       _lhsIvarS ->
-         (let _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOisDictClass :: Bool
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBound
-              _lhsOgUniq :: Int
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
-              _exprOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
-              _exprOisTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 84, column 17)
-              _whatAbove =
-                  ExprIsLam 0 Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 180, column 10)
-              _exprOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 181, column 10)
-              _exprOisDictClass =
-                  False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  _exprIenvUp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
-              _lhsOgathAspBindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _exprIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CBound_FFE callconv_ expEnt_ _exprIcTrf ty_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
--- CBoundL -----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         aspBindLamArgMp      : ACoreBindAspMp AspBindLamArgInfo
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         isGlobal             : Bool
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         letBindingsCateg     : CBindCateg
-         lev                  : Int
-         nm                   : HsName
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         bindLamArgMp         : LamArgMp
-         bindLamS             : FvS
-         bindVarS             : FvS
-         bindsIntroCVarIntroMp : CVarIntroMp
-         cTrf                 : CBoundL 
-         cvarIntroExprMp      : CVarIntroMp
-         envUp                : Env
-         fvS                  : FvS
-         fvSMp                : FvSMp
-         gathAspBindLamArgMp  : ACoreBindAspMp AspBindLamArgInfo
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Cons:
-         child hd             : CBound 
-         child tl             : CBoundL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CBoundL :: CBoundL ->
-               T_CBoundL
-sem_CBoundL list =
-    (Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list))
--- semantic domain
-type T_CBoundL = CVarReplNmMp ->
-                 (ACoreBindAspMp AspBindLamArgInfo) ->
-                 CVarIntroMp ->
-                 EvalCtx ->
-                 Int ->
-                 CVarIntroMp ->
-                 Bool ->
-                 LamArgMp ->
-                 FvSMp ->
-                 FvS ->
-                 CBindCateg ->
-                 Int ->
-                 HsName ->
-                 FvS ->
-                 ( LamArgMp,FvS,FvS,CVarIntroMp,CBoundL,CVarIntroMp,Env,FvS,FvSMp,Int,(ACoreBindAspMp AspBindLamArgInfo),Int,([HsName]))
-sem_CBoundL_Cons :: T_CBound ->
-                    T_CBoundL ->
-                    T_CBoundL
-sem_CBoundL_Cons hd_ tl_ =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIvarS ->
-         (let _hdOisTopApp :: Bool
-              _hdOisTopTup :: Bool
-              _hdOmbCtxCount :: (Maybe Int)
-              _hdOisDictClass :: Bool
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBoundL
-              _lhsOgUniq :: Int
-              _hdOargMp :: CVarReplNmMp
-              _hdOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _hdOcvarIntroMp :: CVarIntroMp
-              _hdOevalCtx :: EvalCtx
-              _hdOgUniq :: Int
-              _hdOintroCVarIntroMp :: CVarIntroMp
-              _hdOisGlobal :: Bool
-              _hdOlamArgMp :: LamArgMp
-              _hdOlamFvSMp :: FvSMp
-              _hdOlamS :: FvS
-              _hdOletBindingsCateg :: CBindCateg
-              _hdOlev :: Int
-              _hdOnm :: HsName
-              _hdOvarS :: FvS
-              _tlOargMp :: CVarReplNmMp
-              _tlOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _tlOcvarIntroMp :: CVarIntroMp
-              _tlOevalCtx :: EvalCtx
-              _tlOgUniq :: Int
-              _tlOintroCVarIntroMp :: CVarIntroMp
-              _tlOisGlobal :: Bool
-              _tlOlamArgMp :: LamArgMp
-              _tlOlamFvSMp :: FvSMp
-              _tlOlamS :: FvS
-              _tlOletBindingsCateg :: CBindCateg
-              _tlOlev :: Int
-              _tlOnm :: HsName
-              _tlOvarS :: FvS
-              _hdIbindLamArgMp :: LamArgMp
-              _hdIbindLamS :: FvS
-              _hdIbindVarS :: FvS
-              _hdIbindsIntroCVarIntroMp :: CVarIntroMp
-              _hdIcTrf :: CBound
-              _hdIcvarIntroExprMp :: CVarIntroMp
-              _hdIenvUp :: Env
-              _hdIfvS :: FvS
-              _hdIfvSMp :: FvSMp
-              _hdIgUniq :: Int
-              _hdIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _hdIlevOf :: Int
-              _hdInmL :: ([HsName])
-              _tlIbindLamArgMp :: LamArgMp
-              _tlIbindLamS :: FvS
-              _tlIbindVarS :: FvS
-              _tlIbindsIntroCVarIntroMp :: CVarIntroMp
-              _tlIcTrf :: CBoundL
-              _tlIcvarIntroExprMp :: CVarIntroMp
-              _tlIenvUp :: Env
-              _tlIfvS :: FvS
-              _tlIfvSMp :: FvSMp
-              _tlIgUniq :: Int
-              _tlIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _tlIlevOf :: Int
-              _tlInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)
-              _hdOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)
-              _hdOisTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 176, column 10)
-              _hdOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 177, column 10)
-              _hdOisDictClass =
-                  False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _hdIbindLamArgMp `Map.union` _tlIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  _hdIbindLamS `Set.union` _tlIbindLamS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  _hdIbindVarS `Set.union` _tlIbindVarS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  _hdIenvUp `Map.union` _tlIenvUp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  _hdIfvSMp `Map.union` _tlIfvSMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
-              _lhsOgathAspBindLamArgMp =
-                  _hdIgathAspBindLamArgMp `Map.union` _tlIgathAspBindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _hdIlevOf `max` _tlIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  _hdInmL ++ _tlInmL
-              -- self rule
-              _cTrf =
-                  (:) _hdIcTrf _tlIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _tlIgUniq
-              -- copy rule (down)
-              _hdOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _hdOaspBindLamArgMp =
-                  _lhsIaspBindLamArgMp
-              -- copy rule (down)
-              _hdOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _hdOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _hdOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _hdOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _hdOisGlobal =
-                  _lhsIisGlobal
-              -- copy rule (down)
-              _hdOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _hdOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _hdOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _hdOletBindingsCateg =
-                  _lhsIletBindingsCateg
-              -- copy rule (down)
-              _hdOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _hdOnm =
-                  _lhsInm
-              -- copy rule (down)
-              _hdOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _tlOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _tlOaspBindLamArgMp =
-                  _lhsIaspBindLamArgMp
-              -- copy rule (down)
-              _tlOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _tlOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _tlOgUniq =
-                  _hdIgUniq
-              -- copy rule (down)
-              _tlOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _tlOisGlobal =
-                  _lhsIisGlobal
-              -- copy rule (down)
-              _tlOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _tlOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _tlOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _tlOletBindingsCateg =
-                  _lhsIletBindingsCateg
-              -- copy rule (down)
-              _tlOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _tlOnm =
-                  _lhsInm
-              -- copy rule (down)
-              _tlOvarS =
-                  _lhsIvarS
-              ( _hdIbindLamArgMp,_hdIbindLamS,_hdIbindVarS,_hdIbindsIntroCVarIntroMp,_hdIcTrf,_hdIcvarIntroExprMp,_hdIenvUp,_hdIfvS,_hdIfvSMp,_hdIgUniq,_hdIgathAspBindLamArgMp,_hdIlevOf,_hdInmL) =
-                  hd_ _hdOargMp _hdOaspBindLamArgMp _hdOcvarIntroMp _hdOevalCtx _hdOgUniq _hdOintroCVarIntroMp _hdOisDictClass _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOletBindingsCateg _hdOlev _hdOmbCtxCount _hdOnm _hdOvarS
-              ( _tlIbindLamArgMp,_tlIbindLamS,_tlIbindVarS,_tlIbindsIntroCVarIntroMp,_tlIcTrf,_tlIcvarIntroExprMp,_tlIenvUp,_tlIfvS,_tlIfvSMp,_tlIgUniq,_tlIgathAspBindLamArgMp,_tlIlevOf,_tlInmL) =
-                  tl_ _tlOargMp _tlOaspBindLamArgMp _tlOcvarIntroMp _tlOevalCtx _tlOgUniq _tlOintroCVarIntroMp _tlOisGlobal _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOletBindingsCateg _tlOlev _tlOnm _tlOvarS
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
-sem_CBoundL_Nil :: T_CBoundL
-sem_CBoundL_Nil =
-    (\ _lhsIargMp
-       _lhsIaspBindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisGlobal
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIletBindingsCateg
-       _lhsIlev
-       _lhsInm
-       _lhsIvarS ->
-         (let _lhsObindLamArgMp :: LamArgMp
-              _lhsObindLamS :: FvS
-              _lhsObindVarS :: FvS
-              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
-              _lhsOcvarIntroExprMp :: CVarIntroMp
-              _lhsOenvUp :: Env
-              _lhsOfvS :: FvS
-              _lhsOfvSMp :: FvSMp
-              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CBoundL
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindLamS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
-              _lhsObindVarS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 42)
-              _lhsObindsIntroCVarIntroMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 36)
-              _lhsOcvarIntroExprMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 229, column 32)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
-              _lhsOfvSMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
-              _lhsOgathAspBindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  []
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
--- CDataCon ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CDataCon 
-   alternatives:
-      alternative Con:
-         child conNm          : {HsName}
-         child tagNr          : {Int}
-         child arity          : {Int}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CDataCon :: CDataCon ->
-                T_CDataCon
-sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) =
-    (sem_CDataCon_Con _conNm _tagNr _arity)
--- semantic domain
-type T_CDataCon = ( CDataCon)
-sem_CDataCon_Con :: HsName ->
-                    Int ->
-                    Int ->
-                    T_CDataCon
-sem_CDataCon_Con conNm_ tagNr_ arity_ =
-    (let _lhsOcTrf :: CDataCon
-         -- self rule
-         _cTrf =
-             CDataCon_Con conNm_ tagNr_ arity_
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-     in  ( _lhsOcTrf))
--- CDataConL ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CDataConL 
-   alternatives:
-      alternative Cons:
-         child hd             : CDataCon 
-         child tl             : CDataConL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CDataConL :: CDataConL ->
-                 T_CDataConL
-sem_CDataConL list =
-    (Prelude.foldr sem_CDataConL_Cons sem_CDataConL_Nil (Prelude.map sem_CDataCon list))
--- semantic domain
-type T_CDataConL = ( CDataConL)
-sem_CDataConL_Cons :: T_CDataCon ->
-                      T_CDataConL ->
-                      T_CDataConL
-sem_CDataConL_Cons hd_ tl_ =
-    (let _lhsOcTrf :: CDataConL
-         _hdIcTrf :: CDataCon
-         _tlIcTrf :: CDataConL
-         -- self rule
-         _cTrf =
-             (:) _hdIcTrf _tlIcTrf
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-         ( _hdIcTrf) =
-             hd_
-         ( _tlIcTrf) =
-             tl_
-     in  ( _lhsOcTrf))
-sem_CDataConL_Nil :: T_CDataConL
-sem_CDataConL_Nil =
-    (let _lhsOcTrf :: CDataConL
-         -- self rule
-         _cTrf =
-             []
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-     in  ( _lhsOcTrf))
--- CDeclMeta ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CDeclMeta 
-   alternatives:
-      alternative Data:
-         child tyNm           : {HsName}
-         child dataCons       : CDataConL 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CDeclMeta :: CDeclMeta ->
-                 T_CDeclMeta
-sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) =
-    (sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons))
--- semantic domain
-type T_CDeclMeta = ( CDeclMeta)
-sem_CDeclMeta_Data :: HsName ->
-                      T_CDataConL ->
-                      T_CDeclMeta
-sem_CDeclMeta_Data tyNm_ dataCons_ =
-    (let _lhsOcTrf :: CDeclMeta
-         _dataConsIcTrf :: CDataConL
-         -- self rule
-         _cTrf =
-             CDeclMeta_Data tyNm_ _dataConsIcTrf
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-         ( _dataConsIcTrf) =
-             dataCons_
-     in  ( _lhsOcTrf))
--- CDeclMetaL --------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CDeclMetaL 
-   alternatives:
-      alternative Cons:
-         child hd             : CDeclMeta 
-         child tl             : CDeclMetaL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CDeclMetaL :: CDeclMetaL ->
-                  T_CDeclMetaL
-sem_CDeclMetaL list =
-    (Prelude.foldr sem_CDeclMetaL_Cons sem_CDeclMetaL_Nil (Prelude.map sem_CDeclMeta list))
--- semantic domain
-type T_CDeclMetaL = ( CDeclMetaL)
-sem_CDeclMetaL_Cons :: T_CDeclMeta ->
-                       T_CDeclMetaL ->
-                       T_CDeclMetaL
-sem_CDeclMetaL_Cons hd_ tl_ =
-    (let _lhsOcTrf :: CDeclMetaL
-         _hdIcTrf :: CDeclMeta
-         _tlIcTrf :: CDeclMetaL
-         -- self rule
-         _cTrf =
-             (:) _hdIcTrf _tlIcTrf
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-         ( _hdIcTrf) =
-             hd_
-         ( _tlIcTrf) =
-             tl_
-     in  ( _lhsOcTrf))
-sem_CDeclMetaL_Nil :: T_CDeclMetaL
-sem_CDeclMetaL_Nil =
-    (let _lhsOcTrf :: CDeclMetaL
-         -- self rule
-         _cTrf =
-             []
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-     in  ( _lhsOcTrf))
--- CExport -----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CExport 
-   alternatives:
-      alternative Export:
-         child nm             : {HsName}
-         visit 0:
-            local cTrf        : _
-      alternative ExportData:
-         child nm             : {HsName}
-         child mbConNmL       : {Maybe [HsName]}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CExport :: CExport ->
-               T_CExport
-sem_CExport (CExport_Export _nm) =
-    (sem_CExport_Export _nm)
-sem_CExport (CExport_ExportData _nm _mbConNmL) =
-    (sem_CExport_ExportData _nm _mbConNmL)
--- 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))
-sem_CExport_ExportData :: HsName ->
-                          (Maybe [HsName]) ->
-                          T_CExport
-sem_CExport_ExportData nm_ mbConNmL_ =
-    (let _lhsOcTrf :: CExport
-         -- self rule
-         _cTrf =
-             CExport_ExportData nm_ mbConNmL_
-         -- 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:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         evalCtx              : EvalCtx
-         introCVarIntroMp     : CVarIntroMp
-         isDictClass          : Bool
-         isTopApp             : Bool
-         isTopTup             : Bool
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         mbCtxCount           : Maybe Int
-         varS                 : FvS
-         whatAbove            : WhatExpr
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         appFunKind           : AppFunKind
-         bindLamArgMp         : LamArgMp
-         cTrf                 : CExpr 
-         envUp                : Env
-         fvS                  : FvS
-         levOf                : Int
-         mbLam                : Maybe [HsName]
-         mbVar                : Maybe HsName
-         whatBelow            : WhatExpr
-   alternatives:
-      alternative Var:
-         child ref            : {ACoreBindRef}
-         visit 0:
-            local mbVar       : {Maybe HsName}
-            local nm          : {HsName}
-            local nmAsp       : {HsName}
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Int:
-         child int            : {Int}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Char:
-         child char           : {Char}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative String:
-         child str            : {String}
-         visit 0:
-            local levOf       : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Integer:
-         child integer        : {Integer}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Tup:
-         child tag            : {CTag}
-         visit 0:
-            local levOf       : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Let:
-         child categ          : {CBindCateg}
-         child binds          : CBindL 
-         child body           : CExpr 
-         visit 0:
-            local varS        : _
-            local lamS        : _
-            local maxBindLev  : _
-            local _tup4       : _
-            local strLev      : _
-            local introCVarIntroMp : _
-            local levOf       : _
-            local fvS         : _
-            local letBindingsCateg : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local isTopLet    : _
-            local evalCtx     : _
-            local isGlobal    : _
-            local lamFvSMp    : _
-            local lamArgMp    : _
-            local cTrf        : _
-      alternative App:
-         child func           : CExpr 
-         child arg            : CBound 
-         visit 0:
-            local levOf       : _
-            local fvS         : _
-            local letBindingsCateg : _
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local isTopApp'   : _
-            local isGlobal    : _
-            local cTrf        : _
-      alternative Lam:
-         child bind           : CBind 
-         child body           : CExpr 
-         visit 0:
-            local varS        : _
-            local cvi         : _
-            local levOf       : _
-            local fvS         : _
-            local argNm       : _
-            local letBindingsCateg : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local isTopLam    : _
-            local lev         : _
-            local isGlobal    : _
-            local cTrf        : _
-      alternative Case:
-         child expr           : CExpr 
-         child alts           : CAltL 
-         child dflt           : CExpr 
-         visit 0:
-            local levOf       : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative CaseAltFail:
-         child failReason     : {CaseAltFailReason}
-         child errorExpr      : CExpr 
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative TupDel:
-         child expr           : CExpr 
-         child tag            : {CTag}
-         child nm             : {HsName}
-         child offset         : CExpr 
-         visit 0:
-            local levOf       : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative TupIns:
-         child expr           : CExpr 
-         child tag            : {CTag}
-         child nm             : {HsName}
-         child offset         : CExpr 
-         child fldExpr        : CExpr 
-         visit 0:
-            local levOf       : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative TupUpd:
-         child expr           : CExpr 
-         child tag            : {CTag}
-         child nm             : {HsName}
-         child offset         : CExpr 
-         child fldExpr        : CExpr 
-         visit 0:
-            local levOf       : _
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative FFI:
-         child callconv       : {FFIWay}
-         child safety         : {String}
-         child impEnt         : {ForeignEnt}
-         child ty             : {Ty}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Dbg:
-         child info           : {String}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Hole:
-         child uid            : {UID}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative HoleLet:
-         child bindsUid       : {UID}
-         child body           : CExpr 
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative CoeArg:
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative ImplsApp:
-         child func           : CExpr 
-         child uid            : {ImplsVarId}
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative ImplsLam:
-         child uid            : {ImplsVarId}
-         child body           : CExpr 
-         visit 0:
-            local isTopApp    : {Bool}
-            local isTopTup    : _
-            local whatBelow   : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
-      alternative Ann:
-         child ann            : CExprAnn 
-         child expr           : CExpr 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CExpr :: CExpr ->
-             T_CExpr
-sem_CExpr (CExpr_Var _ref) =
-    (sem_CExpr_Var _ref)
-sem_CExpr (CExpr_Int _int) =
-    (sem_CExpr_Int _int)
-sem_CExpr (CExpr_Char _char) =
-    (sem_CExpr_Char _char)
-sem_CExpr (CExpr_String _str) =
-    (sem_CExpr_String _str)
-sem_CExpr (CExpr_Integer _integer) =
-    (sem_CExpr_Integer _integer)
-sem_CExpr (CExpr_Tup _tag) =
-    (sem_CExpr_Tup _tag)
-sem_CExpr (CExpr_Let _categ _binds _body) =
-    (sem_CExpr_Let _categ (sem_CBindL _binds) (sem_CExpr _body))
-sem_CExpr (CExpr_App _func _arg) =
-    (sem_CExpr_App (sem_CExpr _func) (sem_CBound _arg))
-sem_CExpr (CExpr_Lam _bind _body) =
-    (sem_CExpr_Lam (sem_CBind _bind) (sem_CExpr _body))
-sem_CExpr (CExpr_Case _expr _alts _dflt) =
-    (sem_CExpr_Case (sem_CExpr _expr) (sem_CAltL _alts) (sem_CExpr _dflt))
-sem_CExpr (CExpr_CaseAltFail _failReason _errorExpr) =
-    (sem_CExpr_CaseAltFail _failReason (sem_CExpr _errorExpr))
-sem_CExpr (CExpr_TupDel _expr _tag _nm _offset) =
-    (sem_CExpr_TupDel (sem_CExpr _expr) _tag _nm (sem_CExpr _offset))
-sem_CExpr (CExpr_TupIns _expr _tag _nm _offset _fldExpr) =
-    (sem_CExpr_TupIns (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
-sem_CExpr (CExpr_TupUpd _expr _tag _nm _offset _fldExpr) =
-    (sem_CExpr_TupUpd (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
-sem_CExpr (CExpr_FFI _callconv _safety _impEnt _ty) =
-    (sem_CExpr_FFI _callconv _safety _impEnt _ty)
-sem_CExpr (CExpr_Dbg _info) =
-    (sem_CExpr_Dbg _info)
-sem_CExpr (CExpr_Hole _uid) =
-    (sem_CExpr_Hole _uid)
-sem_CExpr (CExpr_HoleLet _bindsUid _body) =
-    (sem_CExpr_HoleLet _bindsUid (sem_CExpr _body))
-sem_CExpr (CExpr_CoeArg) =
-    (sem_CExpr_CoeArg)
-sem_CExpr (CExpr_ImplsApp _func _uid) =
-    (sem_CExpr_ImplsApp (sem_CExpr _func) _uid)
-sem_CExpr (CExpr_ImplsLam _uid _body) =
-    (sem_CExpr_ImplsLam _uid (sem_CExpr _body))
-sem_CExpr (CExpr_Ann _ann _expr) =
-    (sem_CExpr_Ann (sem_CExprAnn _ann) (sem_CExpr _expr))
--- semantic domain
-type T_CExpr = CVarReplNmMp ->
-               CVarIntroMp ->
-               EvalCtx ->
-               Int ->
-               CVarIntroMp ->
-               Bool ->
-               Bool ->
-               Bool ->
-               LamArgMp ->
-               FvSMp ->
-               FvS ->
-               Int ->
-               (Maybe Int) ->
-               FvS ->
-               WhatExpr ->
-               ( AppFunKind,LamArgMp,CExpr,Env,FvS,Int,Int,(Maybe [HsName]),(Maybe HsName),WhatExpr)
-sem_CExpr_Var :: ACoreBindRef ->
-                 T_CExpr
-sem_CExpr_Var ref_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _mbVar :: (Maybe HsName)
-              _lhsOlevOf :: Int
-              _lhsOfvS :: FvS
-              _nm :: HsName
-              _nmAsp :: HsName
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOcTrf :: CExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOgUniq :: Int
-              _lhsOmbVar :: (Maybe HsName)
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 13, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_Fun ref_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 21, column 17)
-              _mbVar =
-                  Just _nm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
-              _lhsOlevOf =
-                  fvLev _nm _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 7, column 17)
-              _lhsOfvS =
-                  Set.singleton _nm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 15, column 17)
-              _nm =
-                  acbrefNm ref_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 15, column 17)
-              _nmAsp =
-                  mkHNm ref_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 52, column 17)
-              _whatBelow =
-                  ExprIsVar _nm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 148, column 17)
-              _lhsOcTrf =
-                  let  r n = fvVarRepl _lhsIargMp n
-                       v1 = r _nm
-                       mk as = acoreApp v1 $ [(r a) | (a,cvi) <- as]
-                       v2 = maybe v1 mk $ Map.lookup _nm $ _lhsIlamArgMp
-                  in   v2
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- self rule
-              _cTrf =
-                  CExpr_Var ref_
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOmbVar =
-                  _mbVar
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Int :: Int ->
-                 T_CExpr
-sem_CExpr_Int int_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 53, column 17)
-              _whatBelow =
-                  ExprIsInt int_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_Int int_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Char :: Char ->
-                  T_CExpr
-sem_CExpr_Char char_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
-              _whatBelow =
-                  ExprIsOtherWHNF
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_Char char_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_String :: String ->
-                    T_CExpr
-sem_CExpr_String str_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
-              _levOf =
-                  cLevIntern
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
-              _whatBelow =
-                  ExprIsOtherWHNF
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_String str_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Integer :: Integer ->
-                     T_CExpr
-sem_CExpr_Integer integer_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
-              _whatBelow =
-                  ExprIsOtherWHNF
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_Integer integer_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Tup :: CTag ->
-                 T_CExpr
-sem_CExpr_Tup tag_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 11, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_Tag tag_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 67, column 17)
-              _levOf =
-                  cLevModule
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 55, column 25)
-              _whatBelow =
-                  ExprIsTup tag_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_Tup tag_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Let :: CBindCateg ->
-                 T_CBindL ->
-                 T_CExpr ->
-                 T_CExpr
-sem_CExpr_Let categ_ binds_ body_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _bindsOlev :: Int
-              _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _bindsOcvarIntroMp :: CVarIntroMp
-              _bodyOcvarIntroMp :: CVarIntroMp
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _bodyOmbCtxCount :: (Maybe Int)
-              _bodyOisDictClass :: Bool
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _bindsOargMp :: CVarReplNmMp
-              _bindsOevalCtx :: EvalCtx
-              _bindsOgUniq :: Int
-              _bindsOintroCVarIntroMp :: CVarIntroMp
-              _bindsOisGlobal :: Bool
-              _bindsOlamArgMp :: LamArgMp
-              _bindsOlamFvSMp :: FvSMp
-              _bindsOlamS :: FvS
-              _bindsOletBindingsCateg :: CBindCateg
-              _bindsOvarS :: FvS
-              _bodyOargMp :: CVarReplNmMp
-              _bodyOevalCtx :: EvalCtx
-              _bodyOgUniq :: Int
-              _bodyOintroCVarIntroMp :: CVarIntroMp
-              _bodyOisTopApp :: Bool
-              _bodyOisTopTup :: Bool
-              _bodyOlamArgMp :: LamArgMp
-              _bodyOlamFvSMp :: FvSMp
-              _bodyOlamS :: FvS
-              _bodyOlev :: Int
-              _bodyOvarS :: FvS
-              _bodyOwhatAbove :: WhatExpr
-              _bindsIbindLamArgMp :: LamArgMp
-              _bindsIbindLamS :: FvS
-              _bindsIbindVarS :: FvS
-              _bindsIbindsIntroCVarIntroMp :: CVarIntroMp
-              _bindsIcTrf :: CBindL
-              _bindsIcvarIntroExprMp :: CVarIntroMp
-              _bindsIenvUp :: Env
-              _bindsIfvS :: FvS
-              _bindsIfvSMp :: FvSMp
-              _bindsIgUniq :: Int
-              _bindsIlevOf :: Int
-              _bindsInmL :: ([HsName])
-              _bodyIappFunKind :: AppFunKind
-              _bodyIbindLamArgMp :: LamArgMp
-              _bodyIcTrf :: CExpr
-              _bodyIenvUp :: Env
-              _bodyIfvS :: FvS
-              _bodyIgUniq :: Int
-              _bodyIlevOf :: Int
-              _bodyImbLam :: (Maybe [HsName])
-              _bodyImbVar :: (Maybe HsName)
-              _bodyIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevLet.ag"(line 2, column 17)
-              _bindsOlev =
-                  _lhsIlev + 1
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 18, column 17)
-              _varS =
-                  _lhsIvarS `Set.union` _bindsIbindVarS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 18, column 17)
-              _lamS =
-                  _lhsIlamS `Set.union` _bindsIbindLamS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 24, column 17)
-              _maxBindLev =
-                  fvsLev _lhsIcvarIntroMp cLevModule _bindsIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
-              __tup4 =
-                  case categ_ of
-                      CBindCateg_Strict -> (const _lhsIlev,_lhsIcvarIntroMp)
-                      CBindCateg_Rec    -> ( const _maxBindLev
-                                           , Map.map (\cvi -> cvi {cviLev = _maxBindLev}) _bindsIcvarIntroExprMp
-                                               `Map.union` _lhsIcvarIntroMp
-                                           )
-                      _                 -> (id,_lhsIcvarIntroMp)
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
-              (_strLev,_) =
-                  __tup4
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 25, column 17)
-              (_,_bindsOcvarIntroMp) =
-                  __tup4
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
-              _bodyOcvarIntroMp =
-                  Map.map (\cvi -> cvi {cviLev = _strLev $ cviLev cvi}) _bindsIcvarIntroExprMp `Map.union` _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
-              _introCVarIntroMp =
-                  Map.map (\cvi -> cvi {cviLev = _lhsIlev}) _bindsIbindsIntroCVarIntroMp `Map.union` _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 66, column 17)
-              _levOf =
-                  fvsLev _lhsIcvarIntroMp cLevModule _fvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 6, column 17)
-              _fvS =
-                  (_bodyIfvS `Set.union` _bindsIfvS) `Set.difference` Set.fromList _bindsInmL
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 4, column 17)
-              _letBindingsCateg =
-                  categ_
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 78, column 17)
-              _isTopLet =
-                  whatExprIsBind _lhsIwhatAbove
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 109, column 17)
-              _evalCtx =
-                  if categ_ == CBindCateg_Strict
-                  then EvalCtx_Eval
-                  else EvalCtx_Thunk
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 10, column 17)
-              _isGlobal =
-                  _lhsIlev == cLevModule
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 63, column 17)
-              _lamFvSMp =
-                  (let  start varS = fvsClosure _bindsIbindLamS _lhsIlamS varS _lhsIlamFvSMp _bindsIfvSMp
-                   in   case categ_ of
-                          CBindCateg_Rec
-                            ->  fvsTransClosure lm m
-                            where (m,lm)  = start (_lhsIvarS `Set.union` _bindsIbindVarS)
-                          _ ->  m
-                            where (m,_)   = start _lhsIvarS
-                  )
-                  `Map.union` _lhsIlamFvSMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 120, column 17)
-              _lamArgMp =
-                  _bindsIbindLamArgMp `Map.union` _lhsIlamArgMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 203, column 11)
-              _bodyOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 204, column 11)
-              _bodyOisDictClass =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 237, column 12)
-              _lhsOenvUp =
-                  Map.union _bindsIenvUp _bodyIenvUp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _bindsIbindLamArgMp `Map.union` _bodyIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_Let categ_ _bindsIcTrf _bodyIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _bodyIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _bindsOargMp =
-                  _lhsIargMp
-              -- copy rule (from local)
-              _bindsOevalCtx =
-                  _evalCtx
-              -- copy rule (down)
-              _bindsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _bindsOintroCVarIntroMp =
-                  _introCVarIntroMp
-              -- copy rule (from local)
-              _bindsOisGlobal =
-                  _isGlobal
-              -- copy rule (from local)
-              _bindsOlamArgMp =
-                  _lamArgMp
-              -- copy rule (from local)
-              _bindsOlamFvSMp =
-                  _lamFvSMp
-              -- copy rule (from local)
-              _bindsOlamS =
-                  _lamS
-              -- copy rule (from local)
-              _bindsOletBindingsCateg =
-                  _letBindingsCateg
-              -- copy rule (from local)
-              _bindsOvarS =
-                  _varS
-              -- copy rule (down)
-              _bodyOargMp =
-                  _lhsIargMp
-              -- copy rule (from local)
-              _bodyOevalCtx =
-                  _evalCtx
-              -- copy rule (chain)
-              _bodyOgUniq =
-                  _bindsIgUniq
-              -- copy rule (from local)
-              _bodyOintroCVarIntroMp =
-                  _introCVarIntroMp
-              -- copy rule (from local)
-              _bodyOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _bodyOisTopTup =
-                  _isTopTup
-              -- copy rule (from local)
-              _bodyOlamArgMp =
-                  _lamArgMp
-              -- copy rule (from local)
-              _bodyOlamFvSMp =
-                  _lamFvSMp
-              -- copy rule (from local)
-              _bodyOlamS =
-                  _lamS
-              -- copy rule (down)
-              _bodyOlev =
-                  _lhsIlev
-              -- copy rule (from local)
-              _bodyOvarS =
-                  _varS
-              -- copy rule (from local)
-              _bodyOwhatAbove =
-                  _whatAbove
-              ( _bindsIbindLamArgMp,_bindsIbindLamS,_bindsIbindVarS,_bindsIbindsIntroCVarIntroMp,_bindsIcTrf,_bindsIcvarIntroExprMp,_bindsIenvUp,_bindsIfvS,_bindsIfvSMp,_bindsIgUniq,_bindsIlevOf,_bindsInmL) =
-                  binds_ _bindsOargMp _bindsOcvarIntroMp _bindsOevalCtx _bindsOgUniq _bindsOintroCVarIntroMp _bindsOisGlobal _bindsOlamArgMp _bindsOlamFvSMp _bindsOlamS _bindsOletBindingsCateg _bindsOlev _bindsOvarS
-              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
-                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_App :: T_CExpr ->
-                 T_CBound ->
-                 T_CExpr
-sem_CExpr_App func_ arg_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _argOnm :: HsName
-              _funcOisTopApp :: Bool
-              _argOisTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _argOevalCtx :: EvalCtx
-              _argOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _funcOargMp :: CVarReplNmMp
-              _funcOcvarIntroMp :: CVarIntroMp
-              _funcOevalCtx :: EvalCtx
-              _funcOgUniq :: Int
-              _funcOintroCVarIntroMp :: CVarIntroMp
-              _funcOisDictClass :: Bool
-              _funcOisTopTup :: Bool
-              _funcOlamArgMp :: LamArgMp
-              _funcOlamFvSMp :: FvSMp
-              _funcOlamS :: FvS
-              _funcOlev :: Int
-              _funcOmbCtxCount :: (Maybe Int)
-              _funcOvarS :: FvS
-              _funcOwhatAbove :: WhatExpr
-              _argOargMp :: CVarReplNmMp
-              _argOcvarIntroMp :: CVarIntroMp
-              _argOgUniq :: Int
-              _argOintroCVarIntroMp :: CVarIntroMp
-              _argOisDictClass :: Bool
-              _argOisGlobal :: Bool
-              _argOisTopTup :: Bool
-              _argOlamArgMp :: LamArgMp
-              _argOlamFvSMp :: FvSMp
-              _argOlamS :: FvS
-              _argOletBindingsCateg :: CBindCateg
-              _argOlev :: Int
-              _argOmbCtxCount :: (Maybe Int)
-              _argOvarS :: FvS
-              _funcIappFunKind :: AppFunKind
-              _funcIbindLamArgMp :: LamArgMp
-              _funcIcTrf :: CExpr
-              _funcIenvUp :: Env
-              _funcIfvS :: FvS
-              _funcIgUniq :: Int
-              _funcIlevOf :: Int
-              _funcImbLam :: (Maybe [HsName])
-              _funcImbVar :: (Maybe HsName)
-              _funcIwhatBelow :: WhatExpr
-              _argIbindLamArgMp :: LamArgMp
-              _argIbindLamS :: FvS
-              _argIbindVarS :: FvS
-              _argIbindsIntroCVarIntroMp :: CVarIntroMp
-              _argIcTrf :: CBound
-              _argIcvarIntroExprMp :: CVarIntroMp
-              _argIenvUp :: Env
-              _argIfvS :: FvS
-              _argIfvSMp :: FvSMp
-              _argIgUniq :: Int
-              _argIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
-              _argIlevOf :: Int
-              _argInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 14, column 17)
-              _lhsOappFunKind =
-                  _funcIappFunKind
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 60, column 17)
-              _levOf =
-                  _funcIlevOf `max` _argIlevOf
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 8, column 17)
-              _fvS =
-                  _funcIfvS `Set.union` _argIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 7, column 17)
-              _argOnm =
-                  hsnUnknown
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 6, column 33)
-              _letBindingsCateg =
-                  acoreBindcategPlain
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 14, column 17)
-              _funcOisTopApp =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 15, column 17)
-              _argOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 54, column 17)
-              _whatBelow =
-                  maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 73, column 17)
-              _whatAbove =
-                  maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 80, column 17)
-              _isTopApp' =
-                  isNothing $ whatExprMbApp _lhsIwhatAbove
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 115, column 17)
-              _argOevalCtx =
-                  EvalCtx_Thunk
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)
-              _isGlobal =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 99, column 25)
-              _argOaspBindLamArgMp =
-                  Map.empty
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _funcIbindLamArgMp `Map.union` _argIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_App _funcIcTrf _argIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _argIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _funcOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _funcOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _funcOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _funcOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _funcOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _funcOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _funcOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _funcOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _funcOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _funcOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _funcOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _funcOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _funcOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _funcOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _argOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _argOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _argOgUniq =
-                  _funcIgUniq
-              -- copy rule (down)
-              _argOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _argOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _argOisGlobal =
-                  _isGlobal
-              -- copy rule (from local)
-              _argOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _argOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _argOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _argOlamS =
-                  _lhsIlamS
-              -- copy rule (from local)
-              _argOletBindingsCateg =
-                  _letBindingsCateg
-              -- copy rule (down)
-              _argOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _argOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _argOvarS =
-                  _lhsIvarS
-              ( _funcIappFunKind,_funcIbindLamArgMp,_funcIcTrf,_funcIenvUp,_funcIfvS,_funcIgUniq,_funcIlevOf,_funcImbLam,_funcImbVar,_funcIwhatBelow) =
-                  func_ _funcOargMp _funcOcvarIntroMp _funcOevalCtx _funcOgUniq _funcOintroCVarIntroMp _funcOisDictClass _funcOisTopApp _funcOisTopTup _funcOlamArgMp _funcOlamFvSMp _funcOlamS _funcOlev _funcOmbCtxCount _funcOvarS _funcOwhatAbove
-              ( _argIbindLamArgMp,_argIbindLamS,_argIbindVarS,_argIbindsIntroCVarIntroMp,_argIcTrf,_argIcvarIntroExprMp,_argIenvUp,_argIfvS,_argIfvSMp,_argIgUniq,_argIgathAspBindLamArgMp,_argIlevOf,_argInmL) =
-                  arg_ _argOargMp _argOaspBindLamArgMp _argOcvarIntroMp _argOevalCtx _argOgUniq _argOintroCVarIntroMp _argOisDictClass _argOisGlobal _argOisTopApp _argOisTopTup _argOlamArgMp _argOlamFvSMp _argOlamS _argOletBindingsCateg _argOlev _argOmbCtxCount _argOnm _argOvarS
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Lam :: T_CBind ->
-                 T_CExpr ->
-                 T_CExpr
-sem_CExpr_Lam bind_ body_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _bodyOcvarIntroMp :: CVarIntroMp
-              _bodyOintroCVarIntroMp :: CVarIntroMp
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _bodyOmbCtxCount :: (Maybe Int)
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _bindOargMp :: CVarReplNmMp
-              _bindOcvarIntroMp :: CVarIntroMp
-              _bindOevalCtx :: EvalCtx
-              _bindOgUniq :: Int
-              _bindOintroCVarIntroMp :: CVarIntroMp
-              _bindOisGlobal :: Bool
-              _bindOlamArgMp :: LamArgMp
-              _bindOlamFvSMp :: FvSMp
-              _bindOlamS :: FvS
-              _bindOletBindingsCateg :: CBindCateg
-              _bindOlev :: Int
-              _bindOvarS :: FvS
-              _bodyOargMp :: CVarReplNmMp
-              _bodyOevalCtx :: EvalCtx
-              _bodyOgUniq :: Int
-              _bodyOisDictClass :: Bool
-              _bodyOisTopApp :: Bool
-              _bodyOisTopTup :: Bool
-              _bodyOlamArgMp :: LamArgMp
-              _bodyOlamFvSMp :: FvSMp
-              _bodyOlamS :: FvS
-              _bodyOlev :: Int
-              _bodyOvarS :: FvS
-              _bodyOwhatAbove :: WhatExpr
-              _bindIbindLamArgMp :: LamArgMp
-              _bindIbindLamS :: FvS
-              _bindIbindVarS :: FvS
-              _bindIbindsIntroCVarIntroMp :: CVarIntroMp
-              _bindIcTrf :: CBind
-              _bindIcvarIntroExprMp :: CVarIntroMp
-              _bindIenvUp :: Env
-              _bindIfvS :: FvS
-              _bindIfvSMp :: FvSMp
-              _bindIgUniq :: Int
-              _bindIlevOf :: Int
-              _bindInm :: HsName
-              _bindInmL :: ([HsName])
-              _bodyIappFunKind :: AppFunKind
-              _bodyIbindLamArgMp :: LamArgMp
-              _bodyIcTrf :: CExpr
-              _bodyIenvUp :: Env
-              _bodyIfvS :: FvS
-              _bodyIgUniq :: Int
-              _bodyIlevOf :: Int
-              _bodyImbLam :: (Maybe [HsName])
-              _bodyImbVar :: (Maybe HsName)
-              _bodyIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 4, column 17)
-              _lhsOmbLam =
-                  Just $ maybe [_argNm] (_argNm:) _bodyImbLam
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 20, column 17)
-              _varS =
-                  _argNm `Set.insert` _lhsIvarS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 4, column 17)
-              _cvi =
-                  CVarIntro
-                    { cviLev  = _lev
-                    , cviMeta = CMetaVal_Val
-                    }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 23, column 17)
-              _bodyOcvarIntroMp =
-                  Map.insert _argNm _cvi _lhsIcvarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 44, column 17)
-              _bodyOintroCVarIntroMp =
-                  Map.insert _argNm _cvi _lhsIintroCVarIntroMp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
-              _levOf =
-                  fvsLev _lhsIcvarIntroMp cLevModule _bodyIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 5, column 17)
-              _fvS =
-                  _argNm `Set.delete` _bodyIfvS
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 19, column 17)
-              _argNm =
-                  _bindInm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 6, column 33)
-              _letBindingsCateg =
-                  acoreBindcategPlain
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 51, column 17)
-              _whatBelow =
-                  maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 69, column 17)
-              _whatAbove =
-                  case _lhsIwhatAbove of
-                      ExprIsLam a mbnm    -> ExprIsLam (a + 1) mbnm
-                      ExprIsBind nm       -> ExprIsLam 1       (Just nm)
-                      _                   -> ExprIsLam 1       Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 79, column 17)
-              _isTopLam =
-                  not $ whatExprIsLam _lhsIwhatAbove
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevLamPer1Lam.ag"(line 2, column 17)
-              _lev =
-                  _lhsIlev + 1
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)
-              _isGlobal =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 200, column 11)
-              _bodyOmbCtxCount =
-                  do { n <- _lhsImbCtxCount
-                     ; return (n+1)
-                     }
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 238, column 12)
-              _lhsOenvUp =
-                  maybe (if _lhsIisDictClass
-                         then Map.insert _argNm TrackSelf _bodyIenvUp
-                         else _bodyIenvUp
-                        )
-                        (\n -> Map.insert _argNm (TrackCtx n) _bodyIenvUp)
-                        _lhsImbCtxCount
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _bindIbindLamArgMp `Map.union` _bodyIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _fvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_Lam _bindIcTrf _bodyIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _bodyIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _bindOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bindOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bindOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _bindOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bindOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (from local)
-              _bindOisGlobal =
-                  _isGlobal
-              -- copy rule (down)
-              _bindOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bindOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bindOlamS =
-                  _lhsIlamS
-              -- copy rule (from local)
-              _bindOletBindingsCateg =
-                  _letBindingsCateg
-              -- copy rule (from local)
-              _bindOlev =
-                  _lev
-              -- copy rule (from local)
-              _bindOvarS =
-                  _varS
-              -- copy rule (down)
-              _bodyOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bodyOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _bodyOgUniq =
-                  _bindIgUniq
-              -- copy rule (down)
-              _bodyOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _bodyOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _bodyOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _bodyOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bodyOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bodyOlamS =
-                  _lhsIlamS
-              -- copy rule (from local)
-              _bodyOlev =
-                  _lev
-              -- copy rule (from local)
-              _bodyOvarS =
-                  _varS
-              -- copy rule (from local)
-              _bodyOwhatAbove =
-                  _whatAbove
-              ( _bindIbindLamArgMp,_bindIbindLamS,_bindIbindVarS,_bindIbindsIntroCVarIntroMp,_bindIcTrf,_bindIcvarIntroExprMp,_bindIenvUp,_bindIfvS,_bindIfvSMp,_bindIgUniq,_bindIlevOf,_bindInm,_bindInmL) =
-                  bind_ _bindOargMp _bindOcvarIntroMp _bindOevalCtx _bindOgUniq _bindOintroCVarIntroMp _bindOisGlobal _bindOlamArgMp _bindOlamFvSMp _bindOlamS _bindOletBindingsCateg _bindOlev _bindOvarS
-              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
-                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Case :: T_CExpr ->
-                  T_CAltL ->
-                  T_CExpr ->
-                  T_CExpr
-sem_CExpr_Case expr_ alts_ dflt_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOisDictClass :: Bool
-              _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _altsOargMp :: CVarReplNmMp
-              _altsOcvarIntroMp :: CVarIntroMp
-              _altsOevalCtx :: EvalCtx
-              _altsOgUniq :: Int
-              _altsOintroCVarIntroMp :: CVarIntroMp
-              _altsOlamArgMp :: LamArgMp
-              _altsOlamFvSMp :: FvSMp
-              _altsOlamS :: FvS
-              _altsOlev :: Int
-              _altsOvarS :: FvS
-              _dfltOargMp :: CVarReplNmMp
-              _dfltOcvarIntroMp :: CVarIntroMp
-              _dfltOevalCtx :: EvalCtx
-              _dfltOgUniq :: Int
-              _dfltOintroCVarIntroMp :: CVarIntroMp
-              _dfltOisDictClass :: Bool
-              _dfltOisTopApp :: Bool
-              _dfltOisTopTup :: Bool
-              _dfltOlamArgMp :: LamArgMp
-              _dfltOlamFvSMp :: FvSMp
-              _dfltOlamS :: FvS
-              _dfltOlev :: Int
-              _dfltOmbCtxCount :: (Maybe Int)
-              _dfltOvarS :: FvS
-              _dfltOwhatAbove :: WhatExpr
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              _altsIcTrf :: CAltL
-              _altsIfvS :: FvS
-              _altsIgUniq :: Int
-              _altsIlevOf :: Int
-              _dfltIappFunKind :: AppFunKind
-              _dfltIbindLamArgMp :: LamArgMp
-              _dfltIcTrf :: CExpr
-              _dfltIenvUp :: Env
-              _dfltIfvS :: FvS
-              _dfltIgUniq :: Int
-              _dfltIlevOf :: Int
-              _dfltImbLam :: (Maybe [HsName])
-              _dfltImbVar :: (Maybe HsName)
-              _dfltIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
-              _levOf =
-                  _exprIlevOf `max` _altsIlevOf `max` _dfltIlevOf
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp `Map.union` _dfltIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_Case _exprIcTrf _altsIcTrf _dfltIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _dfltIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _exprOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _exprOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _altsOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _altsOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _altsOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _altsOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _altsOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _altsOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _altsOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _altsOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _altsOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _altsOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _dfltOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _dfltOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _dfltOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _dfltOgUniq =
-                  _altsIgUniq
-              -- copy rule (down)
-              _dfltOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _dfltOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _dfltOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _dfltOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _dfltOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _dfltOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _dfltOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _dfltOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _dfltOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _dfltOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _dfltOwhatAbove =
-                  _whatAbove
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-              ( _altsIcTrf,_altsIfvS,_altsIgUniq,_altsIlevOf) =
-                  alts_ _altsOargMp _altsOcvarIntroMp _altsOevalCtx _altsOgUniq _altsOintroCVarIntroMp _altsOlamArgMp _altsOlamFvSMp _altsOlamS _altsOlev _altsOvarS
-              ( _dfltIappFunKind,_dfltIbindLamArgMp,_dfltIcTrf,_dfltIenvUp,_dfltIfvS,_dfltIgUniq,_dfltIlevOf,_dfltImbLam,_dfltImbVar,_dfltIwhatBelow) =
-                  dflt_ _dfltOargMp _dfltOcvarIntroMp _dfltOevalCtx _dfltOgUniq _dfltOintroCVarIntroMp _dfltOisDictClass _dfltOisTopApp _dfltOisTopTup _dfltOlamArgMp _dfltOlamFvSMp _dfltOlamS _dfltOlev _dfltOmbCtxCount _dfltOvarS _dfltOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_CaseAltFail :: CaseAltFailReason ->
-                         T_CExpr ->
-                         T_CExpr
-sem_CExpr_CaseAltFail failReason_ errorExpr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOappFunKind :: AppFunKind
-              _lhsOgUniq :: Int
-              _lhsOmbLam :: (Maybe [HsName])
-              _lhsOmbVar :: (Maybe HsName)
-              _lhsOwhatBelow :: WhatExpr
-              _errorExprOargMp :: CVarReplNmMp
-              _errorExprOcvarIntroMp :: CVarIntroMp
-              _errorExprOevalCtx :: EvalCtx
-              _errorExprOgUniq :: Int
-              _errorExprOintroCVarIntroMp :: CVarIntroMp
-              _errorExprOisDictClass :: Bool
-              _errorExprOisTopApp :: Bool
-              _errorExprOisTopTup :: Bool
-              _errorExprOlamArgMp :: LamArgMp
-              _errorExprOlamFvSMp :: FvSMp
-              _errorExprOlamS :: FvS
-              _errorExprOlev :: Int
-              _errorExprOmbCtxCount :: (Maybe Int)
-              _errorExprOvarS :: FvS
-              _errorExprOwhatAbove :: WhatExpr
-              _errorExprIappFunKind :: AppFunKind
-              _errorExprIbindLamArgMp :: LamArgMp
-              _errorExprIcTrf :: CExpr
-              _errorExprIenvUp :: Env
-              _errorExprIfvS :: FvS
-              _errorExprIgUniq :: Int
-              _errorExprIlevOf :: Int
-              _errorExprImbLam :: (Maybe [HsName])
-              _errorExprImbVar :: (Maybe HsName)
-              _errorExprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _errorExprIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _errorExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _errorExprIlevOf
-              -- self rule
-              _cTrf =
-                  CExpr_CaseAltFail failReason_ _errorExprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOappFunKind =
-                  _errorExprIappFunKind
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _errorExprIgUniq
-              -- copy rule (up)
-              _lhsOmbLam =
-                  _errorExprImbLam
-              -- copy rule (up)
-              _lhsOmbVar =
-                  _errorExprImbVar
-              -- copy rule (up)
-              _lhsOwhatBelow =
-                  _errorExprIwhatBelow
-              -- copy rule (down)
-              _errorExprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _errorExprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _errorExprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _errorExprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _errorExprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _errorExprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _errorExprOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _errorExprOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _errorExprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _errorExprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _errorExprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _errorExprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _errorExprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _errorExprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _errorExprOwhatAbove =
-                  _whatAbove
-              ( _errorExprIappFunKind,_errorExprIbindLamArgMp,_errorExprIcTrf,_errorExprIenvUp,_errorExprIfvS,_errorExprIgUniq,_errorExprIlevOf,_errorExprImbLam,_errorExprImbVar,_errorExprIwhatBelow) =
-                  errorExpr_ _errorExprOargMp _errorExprOcvarIntroMp _errorExprOevalCtx _errorExprOgUniq _errorExprOintroCVarIntroMp _errorExprOisDictClass _errorExprOisTopApp _errorExprOisTopTup _errorExprOlamArgMp _errorExprOlamFvSMp _errorExprOlamS _errorExprOlev _errorExprOmbCtxCount _errorExprOvarS _errorExprOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_TupDel :: T_CExpr ->
-                    CTag ->
-                    HsName ->
-                    T_CExpr ->
-                    T_CExpr
-sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOisDictClass :: Bool
-              _exprOisTopApp :: Bool
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _offsetOargMp :: CVarReplNmMp
-              _offsetOcvarIntroMp :: CVarIntroMp
-              _offsetOevalCtx :: EvalCtx
-              _offsetOgUniq :: Int
-              _offsetOintroCVarIntroMp :: CVarIntroMp
-              _offsetOisDictClass :: Bool
-              _offsetOisTopApp :: Bool
-              _offsetOisTopTup :: Bool
-              _offsetOlamArgMp :: LamArgMp
-              _offsetOlamFvSMp :: FvSMp
-              _offsetOlamS :: FvS
-              _offsetOlev :: Int
-              _offsetOmbCtxCount :: (Maybe Int)
-              _offsetOvarS :: FvS
-              _offsetOwhatAbove :: WhatExpr
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              _offsetIappFunKind :: AppFunKind
-              _offsetIbindLamArgMp :: LamArgMp
-              _offsetIcTrf :: CExpr
-              _offsetIenvUp :: Env
-              _offsetIfvS :: FvS
-              _offsetIgUniq :: Int
-              _offsetIlevOf :: Int
-              _offsetImbLam :: (Maybe [HsName])
-              _offsetImbVar :: (Maybe HsName)
-              _offsetIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
-              _levOf =
-                  _exprIlevOf `max` _offsetIlevOf
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
-              _exprOisTopTup =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp `Map.union` _offsetIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS `Set.union` _offsetIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_TupDel _exprIcTrf tag_ nm_ _offsetIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _offsetIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _exprOisTopApp =
-                  _isTopApp
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _offsetOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _offsetOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _offsetOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _offsetOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _offsetOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _offsetOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _offsetOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _offsetOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _offsetOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _offsetOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _offsetOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _offsetOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _offsetOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _offsetOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _offsetOwhatAbove =
-                  _whatAbove
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
-                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_TupIns :: T_CExpr ->
-                    CTag ->
-                    HsName ->
-                    T_CExpr ->
-                    T_CExpr ->
-                    T_CExpr
-sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOisDictClass :: Bool
-              _exprOisTopApp :: Bool
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _offsetOargMp :: CVarReplNmMp
-              _offsetOcvarIntroMp :: CVarIntroMp
-              _offsetOevalCtx :: EvalCtx
-              _offsetOgUniq :: Int
-              _offsetOintroCVarIntroMp :: CVarIntroMp
-              _offsetOisDictClass :: Bool
-              _offsetOisTopApp :: Bool
-              _offsetOisTopTup :: Bool
-              _offsetOlamArgMp :: LamArgMp
-              _offsetOlamFvSMp :: FvSMp
-              _offsetOlamS :: FvS
-              _offsetOlev :: Int
-              _offsetOmbCtxCount :: (Maybe Int)
-              _offsetOvarS :: FvS
-              _offsetOwhatAbove :: WhatExpr
-              _fldExprOargMp :: CVarReplNmMp
-              _fldExprOcvarIntroMp :: CVarIntroMp
-              _fldExprOevalCtx :: EvalCtx
-              _fldExprOgUniq :: Int
-              _fldExprOintroCVarIntroMp :: CVarIntroMp
-              _fldExprOisDictClass :: Bool
-              _fldExprOisTopApp :: Bool
-              _fldExprOisTopTup :: Bool
-              _fldExprOlamArgMp :: LamArgMp
-              _fldExprOlamFvSMp :: FvSMp
-              _fldExprOlamS :: FvS
-              _fldExprOlev :: Int
-              _fldExprOmbCtxCount :: (Maybe Int)
-              _fldExprOvarS :: FvS
-              _fldExprOwhatAbove :: WhatExpr
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              _offsetIappFunKind :: AppFunKind
-              _offsetIbindLamArgMp :: LamArgMp
-              _offsetIcTrf :: CExpr
-              _offsetIenvUp :: Env
-              _offsetIfvS :: FvS
-              _offsetIgUniq :: Int
-              _offsetIlevOf :: Int
-              _offsetImbLam :: (Maybe [HsName])
-              _offsetImbVar :: (Maybe HsName)
-              _offsetIwhatBelow :: WhatExpr
-              _fldExprIappFunKind :: AppFunKind
-              _fldExprIbindLamArgMp :: LamArgMp
-              _fldExprIcTrf :: CExpr
-              _fldExprIenvUp :: Env
-              _fldExprIfvS :: FvS
-              _fldExprIgUniq :: Int
-              _fldExprIlevOf :: Int
-              _fldExprImbLam :: (Maybe [HsName])
-              _fldExprImbVar :: (Maybe HsName)
-              _fldExprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
-              _levOf =
-                  _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
-              _exprOisTopTup =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp `Map.union` _offsetIbindLamArgMp `Map.union` _fldExprIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_TupIns _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _fldExprIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _exprOisTopApp =
-                  _isTopApp
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _offsetOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _offsetOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _offsetOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _offsetOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _offsetOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _offsetOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _offsetOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _offsetOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _offsetOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _offsetOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _offsetOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _offsetOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _offsetOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _offsetOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _offsetOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _fldExprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _fldExprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _fldExprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _fldExprOgUniq =
-                  _offsetIgUniq
-              -- copy rule (down)
-              _fldExprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _fldExprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _fldExprOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _fldExprOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _fldExprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _fldExprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _fldExprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _fldExprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _fldExprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _fldExprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _fldExprOwhatAbove =
-                  _whatAbove
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
-                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
-              ( _fldExprIappFunKind,_fldExprIbindLamArgMp,_fldExprIcTrf,_fldExprIenvUp,_fldExprIfvS,_fldExprIgUniq,_fldExprIlevOf,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) =
-                  fldExpr_ _fldExprOargMp _fldExprOcvarIntroMp _fldExprOevalCtx _fldExprOgUniq _fldExprOintroCVarIntroMp _fldExprOisDictClass _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamArgMp _fldExprOlamFvSMp _fldExprOlamS _fldExprOlev _fldExprOmbCtxCount _fldExprOvarS _fldExprOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_TupUpd :: T_CExpr ->
-                    CTag ->
-                    HsName ->
-                    T_CExpr ->
-                    T_CExpr ->
-                    T_CExpr
-sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOisDictClass :: Bool
-              _exprOisTopApp :: Bool
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _offsetOargMp :: CVarReplNmMp
-              _offsetOcvarIntroMp :: CVarIntroMp
-              _offsetOevalCtx :: EvalCtx
-              _offsetOgUniq :: Int
-              _offsetOintroCVarIntroMp :: CVarIntroMp
-              _offsetOisDictClass :: Bool
-              _offsetOisTopApp :: Bool
-              _offsetOisTopTup :: Bool
-              _offsetOlamArgMp :: LamArgMp
-              _offsetOlamFvSMp :: FvSMp
-              _offsetOlamS :: FvS
-              _offsetOlev :: Int
-              _offsetOmbCtxCount :: (Maybe Int)
-              _offsetOvarS :: FvS
-              _offsetOwhatAbove :: WhatExpr
-              _fldExprOargMp :: CVarReplNmMp
-              _fldExprOcvarIntroMp :: CVarIntroMp
-              _fldExprOevalCtx :: EvalCtx
-              _fldExprOgUniq :: Int
-              _fldExprOintroCVarIntroMp :: CVarIntroMp
-              _fldExprOisDictClass :: Bool
-              _fldExprOisTopApp :: Bool
-              _fldExprOisTopTup :: Bool
-              _fldExprOlamArgMp :: LamArgMp
-              _fldExprOlamFvSMp :: FvSMp
-              _fldExprOlamS :: FvS
-              _fldExprOlev :: Int
-              _fldExprOmbCtxCount :: (Maybe Int)
-              _fldExprOvarS :: FvS
-              _fldExprOwhatAbove :: WhatExpr
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              _offsetIappFunKind :: AppFunKind
-              _offsetIbindLamArgMp :: LamArgMp
-              _offsetIcTrf :: CExpr
-              _offsetIenvUp :: Env
-              _offsetIfvS :: FvS
-              _offsetIgUniq :: Int
-              _offsetIlevOf :: Int
-              _offsetImbLam :: (Maybe [HsName])
-              _offsetImbVar :: (Maybe HsName)
-              _offsetIwhatBelow :: WhatExpr
-              _fldExprIappFunKind :: AppFunKind
-              _fldExprIbindLamArgMp :: LamArgMp
-              _fldExprIcTrf :: CExpr
-              _fldExprIenvUp :: Env
-              _fldExprIfvS :: FvS
-              _fldExprIgUniq :: Int
-              _fldExprIlevOf :: Int
-              _fldExprImbLam :: (Maybe [HsName])
-              _fldExprImbVar :: (Maybe HsName)
-              _fldExprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
-              _levOf =
-                  _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
-              _exprOisTopTup =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp `Map.union` _offsetIbindLamArgMp `Map.union` _fldExprIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _levOf
-              -- self rule
-              _cTrf =
-                  CExpr_TupUpd _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _fldExprIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _exprOisTopApp =
-                  _isTopApp
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _offsetOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _offsetOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _offsetOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _offsetOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _offsetOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _offsetOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _offsetOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _offsetOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _offsetOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _offsetOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _offsetOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _offsetOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _offsetOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _offsetOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _offsetOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _fldExprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _fldExprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _fldExprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _fldExprOgUniq =
-                  _offsetIgUniq
-              -- copy rule (down)
-              _fldExprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _fldExprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _fldExprOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _fldExprOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _fldExprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _fldExprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _fldExprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _fldExprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _fldExprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _fldExprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _fldExprOwhatAbove =
-                  _whatAbove
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
-                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
-              ( _fldExprIappFunKind,_fldExprIbindLamArgMp,_fldExprIcTrf,_fldExprIenvUp,_fldExprIfvS,_fldExprIgUniq,_fldExprIlevOf,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) =
-                  fldExpr_ _fldExprOargMp _fldExprOcvarIntroMp _fldExprOevalCtx _fldExprOgUniq _fldExprOintroCVarIntroMp _fldExprOisDictClass _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamArgMp _fldExprOlamFvSMp _fldExprOlamS _fldExprOlev _fldExprOmbCtxCount _fldExprOvarS _fldExprOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_FFI :: FFIWay ->
-                 String ->
-                 ForeignEnt ->
-                 Ty ->
-                 T_CExpr
-sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 12, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_FFI
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 56, column 25)
-              _whatBelow =
-                  ExprIsFFI
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_FFI callconv_ safety_ impEnt_ ty_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Dbg :: String ->
-                 T_CExpr
-sem_CExpr_Dbg info_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_Dbg info_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Hole :: UID ->
-                  T_CExpr
-sem_CExpr_Hole uid_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_Hole uid_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_HoleLet :: UID ->
-                     T_CExpr ->
-                     T_CExpr
-sem_CExpr_HoleLet bindsUid_ body_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _bodyOargMp :: CVarReplNmMp
-              _bodyOcvarIntroMp :: CVarIntroMp
-              _bodyOevalCtx :: EvalCtx
-              _bodyOgUniq :: Int
-              _bodyOintroCVarIntroMp :: CVarIntroMp
-              _bodyOisDictClass :: Bool
-              _bodyOisTopApp :: Bool
-              _bodyOisTopTup :: Bool
-              _bodyOlamArgMp :: LamArgMp
-              _bodyOlamFvSMp :: FvSMp
-              _bodyOlamS :: FvS
-              _bodyOlev :: Int
-              _bodyOmbCtxCount :: (Maybe Int)
-              _bodyOvarS :: FvS
-              _bodyOwhatAbove :: WhatExpr
-              _bodyIappFunKind :: AppFunKind
-              _bodyIbindLamArgMp :: LamArgMp
-              _bodyIcTrf :: CExpr
-              _bodyIenvUp :: Env
-              _bodyIfvS :: FvS
-              _bodyIgUniq :: Int
-              _bodyIlevOf :: Int
-              _bodyImbLam :: (Maybe [HsName])
-              _bodyImbVar :: (Maybe HsName)
-              _bodyIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _bodyIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _bodyIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _bodyIlevOf
-              -- self rule
-              _cTrf =
-                  CExpr_HoleLet bindsUid_ _bodyIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _bodyIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _bodyOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bodyOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bodyOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _bodyOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bodyOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bodyOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _bodyOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _bodyOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _bodyOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bodyOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bodyOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bodyOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bodyOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _bodyOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _bodyOwhatAbove =
-                  _whatAbove
-              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
-                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_CoeArg :: T_CExpr
-sem_CExpr_CoeArg =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExpr_CoeArg
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_ImplsApp :: T_CExpr ->
-                      ImplsVarId ->
-                      T_CExpr
-sem_CExpr_ImplsApp func_ uid_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _funcOargMp :: CVarReplNmMp
-              _funcOcvarIntroMp :: CVarIntroMp
-              _funcOevalCtx :: EvalCtx
-              _funcOgUniq :: Int
-              _funcOintroCVarIntroMp :: CVarIntroMp
-              _funcOisDictClass :: Bool
-              _funcOisTopApp :: Bool
-              _funcOisTopTup :: Bool
-              _funcOlamArgMp :: LamArgMp
-              _funcOlamFvSMp :: FvSMp
-              _funcOlamS :: FvS
-              _funcOlev :: Int
-              _funcOmbCtxCount :: (Maybe Int)
-              _funcOvarS :: FvS
-              _funcOwhatAbove :: WhatExpr
-              _funcIappFunKind :: AppFunKind
-              _funcIbindLamArgMp :: LamArgMp
-              _funcIcTrf :: CExpr
-              _funcIenvUp :: Env
-              _funcIfvS :: FvS
-              _funcIgUniq :: Int
-              _funcIlevOf :: Int
-              _funcImbLam :: (Maybe [HsName])
-              _funcImbVar :: (Maybe HsName)
-              _funcIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _funcIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _funcIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _funcIlevOf
-              -- self rule
-              _cTrf =
-                  CExpr_ImplsApp _funcIcTrf uid_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _funcIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _funcOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _funcOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _funcOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _funcOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _funcOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _funcOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _funcOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _funcOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _funcOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _funcOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _funcOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _funcOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _funcOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _funcOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _funcOwhatAbove =
-                  _whatAbove
-              ( _funcIappFunKind,_funcIbindLamArgMp,_funcIcTrf,_funcIenvUp,_funcIfvS,_funcIgUniq,_funcIlevOf,_funcImbLam,_funcImbVar,_funcIwhatBelow) =
-                  func_ _funcOargMp _funcOcvarIntroMp _funcOevalCtx _funcOgUniq _funcOintroCVarIntroMp _funcOisDictClass _funcOisTopApp _funcOisTopTup _funcOlamArgMp _funcOlamFvSMp _funcOlamS _funcOlev _funcOmbCtxCount _funcOvarS _funcOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_ImplsLam :: ImplsVarId ->
-                      T_CExpr ->
-                      T_CExpr
-sem_CExpr_ImplsLam uid_ body_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOmbLam :: (Maybe [HsName])
-              _lhsOappFunKind :: AppFunKind
-              _lhsOmbVar :: (Maybe HsName)
-              _isTopApp :: Bool
-              _whatAbove :: WhatExpr
-              _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOgUniq :: Int
-              _lhsOwhatBelow :: WhatExpr
-              _bodyOargMp :: CVarReplNmMp
-              _bodyOcvarIntroMp :: CVarIntroMp
-              _bodyOevalCtx :: EvalCtx
-              _bodyOgUniq :: Int
-              _bodyOintroCVarIntroMp :: CVarIntroMp
-              _bodyOisDictClass :: Bool
-              _bodyOisTopApp :: Bool
-              _bodyOisTopTup :: Bool
-              _bodyOlamArgMp :: LamArgMp
-              _bodyOlamFvSMp :: FvSMp
-              _bodyOlamS :: FvS
-              _bodyOlev :: Int
-              _bodyOmbCtxCount :: (Maybe Int)
-              _bodyOvarS :: FvS
-              _bodyOwhatAbove :: WhatExpr
-              _bodyIappFunKind :: AppFunKind
-              _bodyIbindLamArgMp :: LamArgMp
-              _bodyIcTrf :: CExpr
-              _bodyIenvUp :: Env
-              _bodyIfvS :: FvS
-              _bodyIgUniq :: Int
-              _bodyIlevOf :: Int
-              _bodyImbLam :: (Maybe [HsName])
-              _bodyImbVar :: (Maybe HsName)
-              _bodyIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
-              _lhsOmbLam =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
-              _lhsOappFunKind =
-                  AppFunKind_NoApp
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
-              _lhsOmbVar =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
-              _isTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
-              _isTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
-              _whatBelow =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _bodyIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _bodyIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _bodyIlevOf
-              -- self rule
-              _cTrf =
-                  CExpr_ImplsLam uid_ _bodyIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _bodyIgUniq
-              -- copy rule (from local)
-              _lhsOwhatBelow =
-                  _whatBelow
-              -- copy rule (down)
-              _bodyOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bodyOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _bodyOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (down)
-              _bodyOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _bodyOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bodyOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (from local)
-              _bodyOisTopApp =
-                  _isTopApp
-              -- copy rule (from local)
-              _bodyOisTopTup =
-                  _isTopTup
-              -- copy rule (down)
-              _bodyOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bodyOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bodyOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bodyOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bodyOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _bodyOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _bodyOwhatAbove =
-                  _whatAbove
-              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
-                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
-sem_CExpr_Ann :: T_CExprAnn ->
-                 T_CExpr ->
-                 T_CExpr
-sem_CExpr_Ann ann_ expr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIevalCtx
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIisDictClass
-       _lhsIisTopApp
-       _lhsIisTopTup
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsImbCtxCount
-       _lhsIvarS
-       _lhsIwhatAbove ->
-         (let _lhsOenvUp :: Env
-              _lhsObindLamArgMp :: LamArgMp
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExpr
-              _lhsOappFunKind :: AppFunKind
-              _lhsOgUniq :: Int
-              _lhsOmbLam :: (Maybe [HsName])
-              _lhsOmbVar :: (Maybe HsName)
-              _lhsOwhatBelow :: WhatExpr
-              _annOargMp :: CVarReplNmMp
-              _annOcvarIntroMp :: CVarIntroMp
-              _annOgUniq :: Int
-              _annOintroCVarIntroMp :: CVarIntroMp
-              _annOlamArgMp :: LamArgMp
-              _annOlamFvSMp :: FvSMp
-              _annOlamS :: FvS
-              _annOlev :: Int
-              _annOvarS :: FvS
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOevalCtx :: EvalCtx
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOisDictClass :: Bool
-              _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _annIcTrf :: CExprAnn
-              _annIfvS :: FvS
-              _annIgUniq :: Int
-              _annIlevOf :: Int
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 245, column 12)
-              _lhsOenvUp =
-                  Map.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
-              _lhsObindLamArgMp =
-                  _exprIbindLamArgMp
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _annIfvS `Set.union` _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _annIlevOf `max` _exprIlevOf
-              -- self rule
-              _cTrf =
-                  CExpr_Ann _annIcTrf _exprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOappFunKind =
-                  _exprIappFunKind
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _exprIgUniq
-              -- copy rule (up)
-              _lhsOmbLam =
-                  _exprImbLam
-              -- copy rule (up)
-              _lhsOmbVar =
-                  _exprImbVar
-              -- copy rule (up)
-              _lhsOwhatBelow =
-                  _exprIwhatBelow
-              -- copy rule (down)
-              _annOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _annOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _annOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _annOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _annOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _annOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _annOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _annOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _annOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOevalCtx =
-                  _lhsIevalCtx
-              -- copy rule (chain)
-              _exprOgUniq =
-                  _annIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOisDictClass =
-                  _lhsIisDictClass
-              -- copy rule (down)
-              _exprOisTopApp =
-                  _lhsIisTopApp
-              -- copy rule (down)
-              _exprOisTopTup =
-                  _lhsIisTopTup
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOmbCtxCount =
-                  _lhsImbCtxCount
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _exprOwhatAbove =
-                  _lhsIwhatAbove
-              ( _annIcTrf,_annIfvS,_annIgUniq,_annIlevOf) =
-                  ann_ _annOargMp _annOcvarIntroMp _annOgUniq _annOintroCVarIntroMp _annOlamArgMp _annOlamFvSMp _annOlamS _annOlev _annOvarS
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
--- CExprAnn ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CExprAnn 
-         fvS                  : FvS
-         levOf                : Int
-   alternatives:
-      alternative Ty:
-         child ty             : {Ty}
-         visit 0:
-            local cTrf        : _
-      alternative Debug:
-         child info           : {String}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CExprAnn :: CExprAnn ->
-                T_CExprAnn
-sem_CExprAnn (CExprAnn_Ty _ty) =
-    (sem_CExprAnn_Ty _ty)
-sem_CExprAnn (CExprAnn_Debug _info) =
-    (sem_CExprAnn_Debug _info)
--- semantic domain
-type T_CExprAnn = CVarReplNmMp ->
-                  CVarIntroMp ->
-                  Int ->
-                  CVarIntroMp ->
-                  LamArgMp ->
-                  FvSMp ->
-                  FvS ->
-                  Int ->
-                  FvS ->
-                  ( CExprAnn,FvS,Int,Int)
-sem_CExprAnn_Ty :: Ty ->
-                   T_CExprAnn
-sem_CExprAnn_Ty ty_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExprAnn
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExprAnn_Ty ty_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
-sem_CExprAnn_Debug :: String ->
-                      T_CExprAnn
-sem_CExprAnn_Debug info_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CExprAnn
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CExprAnn_Debug info_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
--- CImport -----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CImport 
-   alternatives:
-      alternative Import:
-         child nm             : {HsName}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CImport :: CImport ->
-               T_CImport
-sem_CImport (CImport_Import _nm) =
-    (sem_CImport_Import _nm)
--- semantic domain
-type T_CImport = ( CImport)
-sem_CImport_Import :: HsName ->
-                      T_CImport
-sem_CImport_Import nm_ =
-    (let _lhsOcTrf :: CImport
-         -- self rule
-         _cTrf =
-             CImport_Import nm_
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-     in  ( _lhsOcTrf))
--- CImportL ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CImportL 
-   alternatives:
-      alternative Cons:
-         child hd             : CImport 
-         child tl             : CImportL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CImportL :: CImportL ->
-                T_CImportL
-sem_CImportL list =
-    (Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list))
--- semantic domain
-type T_CImportL = ( CImportL)
-sem_CImportL_Cons :: T_CImport ->
-                     T_CImportL ->
-                     T_CImportL
-sem_CImportL_Cons hd_ tl_ =
-    (let _lhsOcTrf :: CImportL
-         _hdIcTrf :: CImport
-         _tlIcTrf :: CImportL
-         -- self rule
-         _cTrf =
-             (:) _hdIcTrf _tlIcTrf
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-         ( _hdIcTrf) =
-             hd_
-         ( _tlIcTrf) =
-             tl_
-     in  ( _lhsOcTrf))
-sem_CImportL_Nil :: T_CImportL
-sem_CImportL_Nil =
-    (let _lhsOcTrf :: CImportL
-         -- self rule
-         _cTrf =
-             []
-         -- self rule
-         _lhsOcTrf =
-             _cTrf
-     in  ( _lhsOcTrf))
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-         levOf                : Int
-         self                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = CVarReplNmMp ->
-                   CVarIntroMp ->
-                   Int ->
-                   CVarIntroMp ->
-                   LamArgMp ->
-                   FvSMp ->
-                   FvS ->
-                   Int ->
-                   FvS ->
-                   ( CMetaBind,FvS,Int,Int,CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Plain
-              -- self rule
-              _self =
-                  CMetaBind_Plain
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function0
-              -- self rule
-              _self =
-                  CMetaBind_Function0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Function1
-              -- self rule
-              _self =
-                  CMetaBind_Function1
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaBind
-              _lhsOself :: CMetaBind
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaBind_Apply0
-              -- self rule
-              _self =
-                  CMetaBind_Apply0
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOself)))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         bindLamArgMp         : LamArgMp
-         cvarIntroMp          : CVarIntroMp
-         envFinal             : Env
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-         isDictClass          : Bool
-         isDictInstance       : Bool
-         isInstance           : Bool
-         levOf                : Int
-         mbTrack              : Maybe Track
-         self                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-            local self        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = CVarReplNmMp ->
-                  LamArgMp ->
-                  CVarIntroMp ->
-                  Env ->
-                  Int ->
-                  CVarIntroMp ->
-                  LamArgMp ->
-                  FvSMp ->
-                  FvS ->
-                  Int ->
-                  FvS ->
-                  ( CMetaVal,FvS,Int,Bool,Bool,Bool,Int,(Maybe Track),CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIargMp
-       _lhsIbindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIenvFinal
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOisInstance :: Bool
-              _lhsOisDictClass :: Bool
-              _lhsOisDictInstance :: Bool
-              _lhsOmbTrack :: (Maybe Track)
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 126, column 21)
-              _lhsOisInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 211, column 20)
-              _lhsOisDictClass =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 213, column 20)
-              _lhsOisDictInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 223, column 20)
-              _lhsOmbTrack =
-                  Nothing
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Val
-              -- self rule
-              _self =
-                  CMetaVal_Val
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOisDictClass,_lhsOisDictInstance,_lhsOisInstance,_lhsOlevOf,_lhsOmbTrack,_lhsOself)))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIargMp
-       _lhsIbindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIenvFinal
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOisInstance :: Bool
-              _lhsOisDictClass :: Bool
-              _lhsOisDictInstance :: Bool
-              _lhsOmbTrack :: (Maybe Track)
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 126, column 21)
-              _lhsOisInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 211, column 20)
-              _lhsOisDictClass =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 213, column 20)
-              _lhsOisDictInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 223, column 20)
-              _lhsOmbTrack =
-                  Nothing
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Dict
-              -- self rule
-              _self =
-                  CMetaVal_Dict
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOisDictClass,_lhsOisDictInstance,_lhsOisInstance,_lhsOlevOf,_lhsOmbTrack,_lhsOself)))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIargMp
-       _lhsIbindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIenvFinal
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOisInstance :: Bool
-              _lhsOisDictClass :: Bool
-              _lhsOisDictInstance :: Bool
-              _lhsOmbTrack :: (Maybe Track)
-              _lhsOcTrf :: CMetaVal
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 126, column 21)
-              _lhsOisInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 210, column 20)
-              _lhsOisDictClass =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 213, column 20)
-              _lhsOisDictInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 223, column 20)
-              _lhsOmbTrack =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 249, column 22)
-              _lhsOcTrf =
-                  CMetaVal_DictClass    (map (metaExtendTrack _lhsIbindLamArgMp _lhsIenvFinal) tracks_)
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictClass tracks_
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOisDictClass,_lhsOisDictInstance,_lhsOisInstance,_lhsOlevOf,_lhsOmbTrack,_lhsOself)))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIargMp
-       _lhsIbindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIenvFinal
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOisInstance :: Bool
-              _lhsOisDictClass :: Bool
-              _lhsOisDictInstance :: Bool
-              _lhsOmbTrack :: (Maybe Track)
-              _lhsOcTrf :: CMetaVal
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 125, column 21)
-              _lhsOisInstance =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 211, column 20)
-              _lhsOisDictClass =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 212, column 20)
-              _lhsOisDictInstance =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 223, column 20)
-              _lhsOmbTrack =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 250, column 22)
-              _lhsOcTrf =
-                  CMetaVal_DictInstance (map (metaExtendTrack _lhsIbindLamArgMp _lhsIenvFinal) tracks_)
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _self =
-                  CMetaVal_DictInstance tracks_
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOisDictClass,_lhsOisDictInstance,_lhsOisInstance,_lhsOlevOf,_lhsOmbTrack,_lhsOself)))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIargMp
-       _lhsIbindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIenvFinal
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOisInstance :: Bool
-              _lhsOisDictClass :: Bool
-              _lhsOisDictInstance :: Bool
-              _lhsOmbTrack :: (Maybe Track)
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetaVal
-              _lhsOself :: CMetaVal
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 126, column 21)
-              _lhsOisInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 211, column 20)
-              _lhsOisDictClass =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 213, column 20)
-              _lhsOisDictInstance =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 222, column 20)
-              _lhsOmbTrack =
-                  Just track_
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CMetaVal_Track track_
-              -- self rule
-              _self =
-                  CMetaVal_Track track_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOisDictClass,_lhsOisDictInstance,_lhsOisInstance,_lhsOlevOf,_lhsOmbTrack,_lhsOself)))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         bindLamArgMp         : LamArgMp
-         cvarIntroMp          : CVarIntroMp
-         envFinal             : Env
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-         isDictClass          : Bool
-         isDictInstance       : Bool
-         isInstance           : Bool
-         levOf                : Int
-         mbTrack              : Maybe Track
-         self                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
-            local self        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = CVarReplNmMp ->
-                LamArgMp ->
-                CVarIntroMp ->
-                Env ->
-                Int ->
-                CVarIntroMp ->
-                LamArgMp ->
-                FvSMp ->
-                FvS ->
-                Int ->
-                FvS ->
-                ( CMetas,FvS,Int,Bool,Bool,Bool,Int,(Maybe Track),CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIargMp
-       _lhsIbindLamArgMp
-       _lhsIcvarIntroMp
-       _lhsIenvFinal
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CMetas
-              _lhsOself :: CMetas
-              _lhsOgUniq :: Int
-              _lhsOisDictClass :: Bool
-              _lhsOisDictInstance :: Bool
-              _lhsOisInstance :: Bool
-              _lhsOmbTrack :: (Maybe Track)
-              _x1OargMp :: CVarReplNmMp
-              _x1OcvarIntroMp :: CVarIntroMp
-              _x1OgUniq :: Int
-              _x1OintroCVarIntroMp :: CVarIntroMp
-              _x1OlamArgMp :: LamArgMp
-              _x1OlamFvSMp :: FvSMp
-              _x1OlamS :: FvS
-              _x1Olev :: Int
-              _x1OvarS :: FvS
-              _x2OargMp :: CVarReplNmMp
-              _x2ObindLamArgMp :: LamArgMp
-              _x2OcvarIntroMp :: CVarIntroMp
-              _x2OenvFinal :: Env
-              _x2OgUniq :: Int
-              _x2OintroCVarIntroMp :: CVarIntroMp
-              _x2OlamArgMp :: LamArgMp
-              _x2OlamFvSMp :: FvSMp
-              _x2OlamS :: FvS
-              _x2Olev :: Int
-              _x2OvarS :: FvS
-              _x1IcTrf :: CMetaBind
-              _x1IfvS :: FvS
-              _x1IgUniq :: Int
-              _x1IlevOf :: Int
-              _x1Iself :: CMetaBind
-              _x2IcTrf :: CMetaVal
-              _x2IfvS :: FvS
-              _x2IgUniq :: Int
-              _x2IisDictClass :: Bool
-              _x2IisDictInstance :: Bool
-              _x2IisInstance :: Bool
-              _x2IlevOf :: Int
-              _x2ImbTrack :: (Maybe Track)
-              _x2Iself :: CMetaVal
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _x1IfvS `Set.union` _x2IfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _x1IlevOf `max` _x2IlevOf
-              -- self rule
-              _cTrf =
-                  (_x1IcTrf,_x2IcTrf)
-              -- self rule
-              _self =
-                  (_x1Iself,_x2Iself)
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- self rule
-              _lhsOself =
-                  _self
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _x2IgUniq
-              -- copy rule (up)
-              _lhsOisDictClass =
-                  _x2IisDictClass
-              -- copy rule (up)
-              _lhsOisDictInstance =
-                  _x2IisDictInstance
-              -- copy rule (up)
-              _lhsOisInstance =
-                  _x2IisInstance
-              -- copy rule (up)
-              _lhsOmbTrack =
-                  _x2ImbTrack
-              -- copy rule (down)
-              _x1OargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _x1OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x1OgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _x1OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x1OlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _x1OlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _x1OlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _x1Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x1OvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _x2OargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _x2ObindLamArgMp =
-                  _lhsIbindLamArgMp
-              -- copy rule (down)
-              _x2OcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _x2OenvFinal =
-                  _lhsIenvFinal
-              -- copy rule (chain)
-              _x2OgUniq =
-                  _x1IgUniq
-              -- copy rule (down)
-              _x2OintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _x2OlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _x2OlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _x2OlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _x2Olev =
-                  _lhsIlev
-              -- copy rule (down)
-              _x2OvarS =
-                  _lhsIvarS
-              ( _x1IcTrf,_x1IfvS,_x1IgUniq,_x1IlevOf,_x1Iself) =
-                  x1_ _x1OargMp _x1OcvarIntroMp _x1OgUniq _x1OintroCVarIntroMp _x1OlamArgMp _x1OlamFvSMp _x1OlamS _x1Olev _x1OvarS
-              ( _x2IcTrf,_x2IfvS,_x2IgUniq,_x2IisDictClass,_x2IisDictInstance,_x2IisInstance,_x2IlevOf,_x2ImbTrack,_x2Iself) =
-                  x2_ _x2OargMp _x2ObindLamArgMp _x2OcvarIntroMp _x2OenvFinal _x2OgUniq _x2OintroCVarIntroMp _x2OlamArgMp _x2OlamFvSMp _x2OlamS _x2Olev _x2OvarS
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOisDictClass,_lhsOisDictInstance,_lhsOisInstance,_lhsOlevOf,_lhsOmbTrack,_lhsOself)))
--- CModule -----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CModule 
-         fvS                  : FvS
-         levOf                : Int
-   alternatives:
-      alternative Mod:
-         child moduleNm       : {HsName}
-         child exports        : CExportL 
-         child imports        : CImportL 
-         child declMetas      : CDeclMetaL 
-         child expr           : CExpr 
-         visit 0:
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
--}
--- cata
-sem_CModule :: CModule ->
-               T_CModule
-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 ->
-                 Int ->
-                 CVarIntroMp ->
-                 LamArgMp ->
-                 FvSMp ->
-                 FvS ->
-                 Int ->
-                 FvS ->
-                 ( CModule,FvS,Int,Int)
-sem_CModule_Mod :: HsName ->
-                   T_CExportL ->
-                   T_CImportL ->
-                   T_CDeclMetaL ->
-                   T_CExpr ->
-                   T_CModule
-sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _exprOisTopApp :: Bool
-              _exprOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _exprOevalCtx :: EvalCtx
-              _exprOmbCtxCount :: (Maybe Int)
-              _exprOisDictClass :: Bool
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CModule
-              _lhsOgUniq :: Int
-              _exprOargMp :: CVarReplNmMp
-              _exprOcvarIntroMp :: CVarIntroMp
-              _exprOgUniq :: Int
-              _exprOintroCVarIntroMp :: CVarIntroMp
-              _exprOlamArgMp :: LamArgMp
-              _exprOlamFvSMp :: FvSMp
-              _exprOlamS :: FvS
-              _exprOlev :: Int
-              _exprOvarS :: FvS
-              _exprOwhatAbove :: WhatExpr
-              _exportsIcTrf :: CExportL
-              _importsIcTrf :: CImportL
-              _declMetasIcTrf :: CDeclMetaL
-              _exprIappFunKind :: AppFunKind
-              _exprIbindLamArgMp :: LamArgMp
-              _exprIcTrf :: CExpr
-              _exprIenvUp :: Env
-              _exprIfvS :: FvS
-              _exprIgUniq :: Int
-              _exprIlevOf :: Int
-              _exprImbLam :: (Maybe [HsName])
-              _exprImbVar :: (Maybe HsName)
-              _exprIwhatBelow :: WhatExpr
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 27, column 17)
-              _exprOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 27, column 17)
-              _exprOisTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 93, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 102, column 17)
-              _exprOevalCtx =
-                  EvalCtx_Eval
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 172, column 10)
-              _exprOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 173, column 10)
-              _exprOisDictClass =
-                  False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _exprIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _exprIlevOf
-              -- self rule
-              _cTrf =
-                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _exprIgUniq
-              -- copy rule (down)
-              _exprOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _exprOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _exprOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _exprOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _exprOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _exprOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _exprOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _exprOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _exprOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _exprOwhatAbove =
-                  _whatAbove
-              ( _exportsIcTrf) =
-                  exports_
-              ( _importsIcTrf) =
-                  imports_
-              ( _declMetasIcTrf) =
-                  declMetas_
-              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
-                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
--- CPat --------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CPat 
-         fldNmL               : [HsName]
-         fvS                  : FvS
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Var:
-         child pnm            : {HsName}
-         visit 0:
-            local cTrf        : _
-      alternative Con:
-         child tag            : {CTag}
-         child rest           : CPatRest 
-         child binds          : CPatFldL 
-         visit 0:
-            local cTrf        : _
-      alternative Int:
-         child int            : {Int}
-         visit 0:
-            local cTrf        : _
-      alternative Char:
-         child char           : {Char}
-         visit 0:
-            local cTrf        : _
-      alternative BoolExpr:
-         child cexpr          : {CExpr}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CPat :: CPat ->
-            T_CPat
-sem_CPat (CPat_Var _pnm) =
-    (sem_CPat_Var _pnm)
-sem_CPat (CPat_Con _tag _rest _binds) =
-    (sem_CPat_Con _tag (sem_CPatRest _rest) (sem_CPatFldL _binds))
-sem_CPat (CPat_Int _int) =
-    (sem_CPat_Int _int)
-sem_CPat (CPat_Char _char) =
-    (sem_CPat_Char _char)
-sem_CPat (CPat_BoolExpr _cexpr) =
-    (sem_CPat_BoolExpr _cexpr)
--- semantic domain
-type T_CPat = CVarReplNmMp ->
-              CVarIntroMp ->
-              Int ->
-              CVarIntroMp ->
-              LamArgMp ->
-              FvSMp ->
-              FvS ->
-              Int ->
-              FvS ->
-              ( CPat,([HsName]),FvS,Int,Int,([HsName]))
-sem_CPat_Var :: HsName ->
-                T_CPat
-sem_CPat_Var pnm_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOnmL :: ([HsName])
-              _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CPat
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 28, column 17)
-              _lhsOnmL =
-                  [pnm_]
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CPat_Var pnm_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CPat_Con :: CTag ->
-                T_CPatRest ->
-                T_CPatFldL ->
-                T_CPat
-sem_CPat_Con tag_ rest_ binds_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOnmL :: ([HsName])
-              _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CPat
-              _lhsOgUniq :: Int
-              _restOargMp :: CVarReplNmMp
-              _restOcvarIntroMp :: CVarIntroMp
-              _restOgUniq :: Int
-              _restOintroCVarIntroMp :: CVarIntroMp
-              _restOlamArgMp :: LamArgMp
-              _restOlamFvSMp :: FvSMp
-              _restOlamS :: FvS
-              _restOlev :: Int
-              _restOvarS :: FvS
-              _bindsOargMp :: CVarReplNmMp
-              _bindsOcvarIntroMp :: CVarIntroMp
-              _bindsOgUniq :: Int
-              _bindsOintroCVarIntroMp :: CVarIntroMp
-              _bindsOlamArgMp :: LamArgMp
-              _bindsOlamFvSMp :: FvSMp
-              _bindsOlamS :: FvS
-              _bindsOlev :: Int
-              _bindsOvarS :: FvS
-              _restIcTrf :: CPatRest
-              _restIfvS :: FvS
-              _restIgUniq :: Int
-              _restIlevOf :: Int
-              _restInmL :: ([HsName])
-              _bindsIcTrf :: CPatFldL
-              _bindsIfldNmL :: ([HsName])
-              _bindsIfvS :: FvS
-              _bindsIgUniq :: Int
-              _bindsIlevOf :: Int
-              _bindsInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 29, column 17)
-              _lhsOnmL =
-                  _restInmL ++ _bindsInmL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  _bindsIfldNmL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _restIfvS `Set.union` _bindsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _restIlevOf `max` _bindsIlevOf
-              -- self rule
-              _cTrf =
-                  CPat_Con tag_ _restIcTrf _bindsIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _bindsIgUniq
-              -- copy rule (down)
-              _restOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _restOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _restOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _restOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _restOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _restOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _restOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _restOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _restOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _bindsOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bindsOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _bindsOgUniq =
-                  _restIgUniq
-              -- copy rule (down)
-              _bindsOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindsOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bindsOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bindsOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bindsOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindsOvarS =
-                  _lhsIvarS
-              ( _restIcTrf,_restIfvS,_restIgUniq,_restIlevOf,_restInmL) =
-                  rest_ _restOargMp _restOcvarIntroMp _restOgUniq _restOintroCVarIntroMp _restOlamArgMp _restOlamFvSMp _restOlamS _restOlev _restOvarS
-              ( _bindsIcTrf,_bindsIfldNmL,_bindsIfvS,_bindsIgUniq,_bindsIlevOf,_bindsInmL) =
-                  binds_ _bindsOargMp _bindsOcvarIntroMp _bindsOgUniq _bindsOintroCVarIntroMp _bindsOlamArgMp _bindsOlamFvSMp _bindsOlamS _bindsOlev _bindsOvarS
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CPat_Int :: Int ->
-                T_CPat
-sem_CPat_Int int_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CPat
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CPat_Int int_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CPat_Char :: Char ->
-                 T_CPat
-sem_CPat_Char char_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CPat
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CPat_Char char_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CPat_BoolExpr :: CExpr ->
-                     T_CPat
-sem_CPat_BoolExpr cexpr_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CPat
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CPat_BoolExpr cexpr_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CPatFld -----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CPatFld 
-         fldNmL               : [HsName]
-         fvS                  : FvS
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Fld:
-         child lbl            : {HsName}
-         child offset         : CExpr 
-         child bind           : CBind 
-         child fldAnns        : CBindAnnL 
-         visit 0:
-            local fldNm       : _
-            local whatAbove   : {WhatExpr}
-            local cTrf        : _
--}
--- cata
-sem_CPatFld :: CPatFld ->
-               T_CPatFld
-sem_CPatFld (CPatFld_Fld _lbl _offset _bind _fldAnns) =
-    (sem_CPatFld_Fld _lbl (sem_CExpr _offset) (sem_CBind _bind) (sem_CBindAnnL _fldAnns))
--- semantic domain
-type T_CPatFld = CVarReplNmMp ->
-                 CVarIntroMp ->
-                 Int ->
-                 CVarIntroMp ->
-                 LamArgMp ->
-                 FvSMp ->
-                 FvS ->
-                 Int ->
-                 FvS ->
-                 ( CPatFld,([HsName]),FvS,Int,Int,([HsName]))
-sem_CPatFld_Fld :: HsName ->
-                   T_CExpr ->
-                   T_CBind ->
-                   T_CBindAnnL ->
-                   T_CPatFld
-sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOnmL :: ([HsName])
-              _lhsOfldNmL :: ([HsName])
-              _bindOletBindingsCateg :: CBindCateg
-              _offsetOisTopApp :: Bool
-              _offsetOisTopTup :: Bool
-              _whatAbove :: WhatExpr
-              _offsetOevalCtx :: EvalCtx
-              _bindOevalCtx :: EvalCtx
-              _bindOisGlobal :: Bool
-              _offsetOmbCtxCount :: (Maybe Int)
-              _offsetOisDictClass :: Bool
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CPatFld
-              _lhsOgUniq :: Int
-              _offsetOargMp :: CVarReplNmMp
-              _offsetOcvarIntroMp :: CVarIntroMp
-              _offsetOgUniq :: Int
-              _offsetOintroCVarIntroMp :: CVarIntroMp
-              _offsetOlamArgMp :: LamArgMp
-              _offsetOlamFvSMp :: FvSMp
-              _offsetOlamS :: FvS
-              _offsetOlev :: Int
-              _offsetOvarS :: FvS
-              _offsetOwhatAbove :: WhatExpr
-              _bindOargMp :: CVarReplNmMp
-              _bindOcvarIntroMp :: CVarIntroMp
-              _bindOgUniq :: Int
-              _bindOintroCVarIntroMp :: CVarIntroMp
-              _bindOlamArgMp :: LamArgMp
-              _bindOlamFvSMp :: FvSMp
-              _bindOlamS :: FvS
-              _bindOlev :: Int
-              _bindOvarS :: FvS
-              _fldAnnsOargMp :: CVarReplNmMp
-              _fldAnnsOcvarIntroMp :: CVarIntroMp
-              _fldAnnsOgUniq :: Int
-              _fldAnnsOintroCVarIntroMp :: CVarIntroMp
-              _fldAnnsOlamArgMp :: LamArgMp
-              _fldAnnsOlamFvSMp :: FvSMp
-              _fldAnnsOlamS :: FvS
-              _fldAnnsOlev :: Int
-              _fldAnnsOvarS :: FvS
-              _offsetIappFunKind :: AppFunKind
-              _offsetIbindLamArgMp :: LamArgMp
-              _offsetIcTrf :: CExpr
-              _offsetIenvUp :: Env
-              _offsetIfvS :: FvS
-              _offsetIgUniq :: Int
-              _offsetIlevOf :: Int
-              _offsetImbLam :: (Maybe [HsName])
-              _offsetImbVar :: (Maybe HsName)
-              _offsetIwhatBelow :: WhatExpr
-              _bindIbindLamArgMp :: LamArgMp
-              _bindIbindLamS :: FvS
-              _bindIbindVarS :: FvS
-              _bindIbindsIntroCVarIntroMp :: CVarIntroMp
-              _bindIcTrf :: CBind
-              _bindIcvarIntroExprMp :: CVarIntroMp
-              _bindIenvUp :: Env
-              _bindIfvS :: FvS
-              _bindIfvSMp :: FvSMp
-              _bindIgUniq :: Int
-              _bindIlevOf :: Int
-              _bindInm :: HsName
-              _bindInmL :: ([HsName])
-              _fldAnnsIcTrf :: CBindAnnL
-              _fldAnnsIfvS :: FvS
-              _fldAnnsIgUniq :: Int
-              _fldAnnsIlevOf :: Int
-              _fldAnnsInmL :: ([HsName])
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 22, column 17)
-              _lhsOnmL =
-                  [_fldNm]
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 23, column 17)
-              _fldNm =
-                  _bindInm
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 28, column 17)
-              _lhsOfldNmL =
-                  [_fldNm]
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 9, column 17)
-              _bindOletBindingsCateg =
-                  acoreBindcategPlain
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 41, column 17)
-              _offsetOisTopApp =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 41, column 17)
-              _offsetOisTopTup =
-                  True
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 87, column 17)
-              _whatAbove =
-                  ExprIsOther
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 105, column 17)
-              _offsetOevalCtx =
-                  EvalCtx_Eval
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 106, column 33)
-              _bindOevalCtx =
-                  EvalCtx_None
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 15, column 17)
-              _bindOisGlobal =
-                  False
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 188, column 10)
-              _offsetOmbCtxCount =
-                  Nothing
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 10)
-              _offsetOisDictClass =
-                  False
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _offsetIlevOf `max` _bindIlevOf `max` _fldAnnsIlevOf
-              -- self rule
-              _cTrf =
-                  CPatFld_Fld lbl_ _offsetIcTrf _bindIcTrf _fldAnnsIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _fldAnnsIgUniq
-              -- copy rule (down)
-              _offsetOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _offsetOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _offsetOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _offsetOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _offsetOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _offsetOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _offsetOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _offsetOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _offsetOvarS =
-                  _lhsIvarS
-              -- copy rule (from local)
-              _offsetOwhatAbove =
-                  _whatAbove
-              -- copy rule (down)
-              _bindOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _bindOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _bindOgUniq =
-                  _offsetIgUniq
-              -- copy rule (down)
-              _bindOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _bindOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _bindOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _bindOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _bindOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _bindOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _fldAnnsOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _fldAnnsOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _fldAnnsOgUniq =
-                  _bindIgUniq
-              -- copy rule (down)
-              _fldAnnsOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _fldAnnsOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _fldAnnsOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _fldAnnsOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _fldAnnsOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _fldAnnsOvarS =
-                  _lhsIvarS
-              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
-                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
-              ( _bindIbindLamArgMp,_bindIbindLamS,_bindIbindVarS,_bindIbindsIntroCVarIntroMp,_bindIcTrf,_bindIcvarIntroExprMp,_bindIenvUp,_bindIfvS,_bindIfvSMp,_bindIgUniq,_bindIlevOf,_bindInm,_bindInmL) =
-                  bind_ _bindOargMp _bindOcvarIntroMp _bindOevalCtx _bindOgUniq _bindOintroCVarIntroMp _bindOisGlobal _bindOlamArgMp _bindOlamFvSMp _bindOlamS _bindOletBindingsCateg _bindOlev _bindOvarS
-              ( _fldAnnsIcTrf,_fldAnnsIfvS,_fldAnnsIgUniq,_fldAnnsIlevOf,_fldAnnsInmL) =
-                  fldAnns_ _fldAnnsOargMp _fldAnnsOcvarIntroMp _fldAnnsOgUniq _fldAnnsOintroCVarIntroMp _fldAnnsOlamArgMp _fldAnnsOlamFvSMp _fldAnnsOlamS _fldAnnsOlev _fldAnnsOvarS
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CPatFldL ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CPatFldL 
-         fldNmL               : [HsName]
-         fvS                  : FvS
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Cons:
-         child hd             : CPatFld 
-         child tl             : CPatFldL 
-         visit 0:
-            local cTrf        : _
-      alternative Nil:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CPatFldL :: CPatFldL ->
-                T_CPatFldL
-sem_CPatFldL list =
-    (Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list))
--- semantic domain
-type T_CPatFldL = CVarReplNmMp ->
-                  CVarIntroMp ->
-                  Int ->
-                  CVarIntroMp ->
-                  LamArgMp ->
-                  FvSMp ->
-                  FvS ->
-                  Int ->
-                  FvS ->
-                  ( CPatFldL,([HsName]),FvS,Int,Int,([HsName]))
-sem_CPatFldL_Cons :: T_CPatFld ->
-                     T_CPatFldL ->
-                     T_CPatFldL
-sem_CPatFldL_Cons hd_ tl_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CPatFldL
-              _lhsOgUniq :: Int
-              _hdOargMp :: CVarReplNmMp
-              _hdOcvarIntroMp :: CVarIntroMp
-              _hdOgUniq :: Int
-              _hdOintroCVarIntroMp :: CVarIntroMp
-              _hdOlamArgMp :: LamArgMp
-              _hdOlamFvSMp :: FvSMp
-              _hdOlamS :: FvS
-              _hdOlev :: Int
-              _hdOvarS :: FvS
-              _tlOargMp :: CVarReplNmMp
-              _tlOcvarIntroMp :: CVarIntroMp
-              _tlOgUniq :: Int
-              _tlOintroCVarIntroMp :: CVarIntroMp
-              _tlOlamArgMp :: LamArgMp
-              _tlOlamFvSMp :: FvSMp
-              _tlOlamS :: FvS
-              _tlOlev :: Int
-              _tlOvarS :: FvS
-              _hdIcTrf :: CPatFld
-              _hdIfldNmL :: ([HsName])
-              _hdIfvS :: FvS
-              _hdIgUniq :: Int
-              _hdIlevOf :: Int
-              _hdInmL :: ([HsName])
-              _tlIcTrf :: CPatFldL
-              _tlIfldNmL :: ([HsName])
-              _tlIfvS :: FvS
-              _tlIgUniq :: Int
-              _tlIlevOf :: Int
-              _tlInmL :: ([HsName])
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  _hdIfldNmL ++ _tlIfldNmL
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  _hdIfvS `Set.union` _tlIfvS
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  _hdIlevOf `max` _tlIlevOf
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  _hdInmL ++ _tlInmL
-              -- self rule
-              _cTrf =
-                  (:) _hdIcTrf _tlIcTrf
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (up)
-              _lhsOgUniq =
-                  _tlIgUniq
-              -- copy rule (down)
-              _hdOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _hdOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (down)
-              _hdOgUniq =
-                  _lhsIgUniq
-              -- copy rule (down)
-              _hdOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _hdOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _hdOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _hdOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _hdOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _hdOvarS =
-                  _lhsIvarS
-              -- copy rule (down)
-              _tlOargMp =
-                  _lhsIargMp
-              -- copy rule (down)
-              _tlOcvarIntroMp =
-                  _lhsIcvarIntroMp
-              -- copy rule (chain)
-              _tlOgUniq =
-                  _hdIgUniq
-              -- copy rule (down)
-              _tlOintroCVarIntroMp =
-                  _lhsIintroCVarIntroMp
-              -- copy rule (down)
-              _tlOlamArgMp =
-                  _lhsIlamArgMp
-              -- copy rule (down)
-              _tlOlamFvSMp =
-                  _lhsIlamFvSMp
-              -- copy rule (down)
-              _tlOlamS =
-                  _lhsIlamS
-              -- copy rule (down)
-              _tlOlev =
-                  _lhsIlev
-              -- copy rule (down)
-              _tlOvarS =
-                  _lhsIvarS
-              ( _hdIcTrf,_hdIfldNmL,_hdIfvS,_hdIgUniq,_hdIlevOf,_hdInmL) =
-                  hd_ _hdOargMp _hdOcvarIntroMp _hdOgUniq _hdOintroCVarIntroMp _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOlev _hdOvarS
-              ( _tlIcTrf,_tlIfldNmL,_tlIfvS,_tlIgUniq,_tlIlevOf,_tlInmL) =
-                  tl_ _tlOargMp _tlOcvarIntroMp _tlOgUniq _tlOintroCVarIntroMp _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOlev _tlOvarS
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CPatFldL_Nil :: T_CPatFldL
-sem_CPatFldL_Nil =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfldNmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CPatFldL
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
-              _lhsOfldNmL =
-                  []
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  []
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CPatRest ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         argMp                : CVarReplNmMp
-         cvarIntroMp          : CVarIntroMp
-         introCVarIntroMp     : CVarIntroMp
-         lamArgMp             : LamArgMp
-         lamFvSMp             : FvSMp
-         lamS                 : FvS
-         lev                  : Int
-         varS                 : FvS
-      chained attribute:
-         gUniq                : Int
-      synthesized attributes:
-         cTrf                 : CPatRest 
-         fvS                  : FvS
-         levOf                : Int
-         nmL                  : [HsName]
-   alternatives:
-      alternative Var:
-         child nm             : {HsName}
-         visit 0:
-            local cTrf        : _
-      alternative Empty:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CPatRest :: CPatRest ->
-                T_CPatRest
-sem_CPatRest (CPatRest_Var _nm) =
-    (sem_CPatRest_Var _nm)
-sem_CPatRest (CPatRest_Empty) =
-    (sem_CPatRest_Empty)
--- semantic domain
-type T_CPatRest = CVarReplNmMp ->
-                  CVarIntroMp ->
-                  Int ->
-                  CVarIntroMp ->
-                  LamArgMp ->
-                  FvSMp ->
-                  FvS ->
-                  Int ->
-                  FvS ->
-                  ( CPatRest,FvS,Int,Int,([HsName]))
-sem_CPatRest_Var :: HsName ->
-                    T_CPatRest
-sem_CPatRest_Var nm_ =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOnmL :: ([HsName])
-              _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOcTrf :: CPatRest
-              _lhsOgUniq :: Int
-              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 25, column 17)
-              _lhsOnmL =
-                  [nm_]
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- self rule
-              _cTrf =
-                  CPatRest_Var nm_
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
-sem_CPatRest_Empty :: T_CPatRest
-sem_CPatRest_Empty =
-    (\ _lhsIargMp
-       _lhsIcvarIntroMp
-       _lhsIgUniq
-       _lhsIintroCVarIntroMp
-       _lhsIlamArgMp
-       _lhsIlamFvSMp
-       _lhsIlamS
-       _lhsIlev
-       _lhsIvarS ->
-         (let _lhsOfvS :: FvS
-              _lhsOlevOf :: Int
-              _lhsOnmL :: ([HsName])
-              _lhsOcTrf :: CPatRest
-              _lhsOgUniq :: Int
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
-              _lhsOfvS =
-                  Set.empty
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 28)
-              _lhsOlevOf =
-                  cLevModule
-              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
-              _lhsOnmL =
-                  []
-              -- self rule
-              _cTrf =
-                  CPatRest_Empty
-              -- self rule
-              _lhsOcTrf =
-                  _cTrf
-              -- copy rule (chain)
-              _lhsOgUniq =
-                  _lhsIgUniq
-          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
--- CodeAGItf ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CModule 
-   alternatives:
-      alternative AGItf:
-         child module         : CModule 
--}
--- cata
-sem_CodeAGItf :: CodeAGItf ->
-                 T_CodeAGItf
-sem_CodeAGItf (CodeAGItf_AGItf _module) =
-    (sem_CodeAGItf_AGItf (sem_CModule _module))
--- semantic domain
-type T_CodeAGItf = ( CModule)
-data Inh_CodeAGItf = Inh_CodeAGItf {}
-data Syn_CodeAGItf = Syn_CodeAGItf {cTrf_Syn_CodeAGItf :: !(CModule)}
-wrap_CodeAGItf :: T_CodeAGItf ->
-                  Inh_CodeAGItf ->
-                  Syn_CodeAGItf
-wrap_CodeAGItf sem (Inh_CodeAGItf) =
-    (let ( _lhsOcTrf) = sem
-     in  (Syn_CodeAGItf _lhsOcTrf))
-sem_CodeAGItf_AGItf :: T_CModule ->
-                       T_CodeAGItf
-sem_CodeAGItf_AGItf module_ =
-    (let _moduleOvarS :: FvS
-         _moduleOlamS :: FvS
-         _moduleOcvarIntroMp :: CVarIntroMp
-         _moduleOintroCVarIntroMp :: CVarIntroMp
-         _moduleOlev :: Int
-         _moduleOgUniq :: Int
-         _moduleOlamFvSMp :: FvSMp
-         _moduleOargMp :: CVarReplNmMp
-         _moduleOlamArgMp :: LamArgMp
-         _lhsOcTrf :: CModule
-         _moduleIcTrf :: CModule
-         _moduleIfvS :: FvS
-         _moduleIgUniq :: Int
-         _moduleIlevOf :: Int
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 14, column 17)
-         _moduleOvarS =
-             Set.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 14, column 17)
-         _moduleOlamS =
-             Set.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
-         _moduleOcvarIntroMp =
-             Map.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
-         _moduleOintroCVarIntroMp =
-             Map.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 4, column 17)
-         _moduleOlev =
-             cLevModule
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 51, column 17)
-         _moduleOgUniq =
-             0
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 60, column 17)
-         _moduleOlamFvSMp =
-             Map.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 76, column 17)
-         _moduleOargMp =
-             Map.empty
-         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 117, column 17)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGl)
+module UHC.Light.Compiler.Core.Trf.LamGlobalAsArg(cmodTrfLamGlobalAsArg) where
+
+import UHC.Util.Utils
+import Data.Maybe
+import qualified Data.Set as Set
+import Data.List
+import qualified Data.Map as Map
+import UHC.Light.Compiler.Base.HsName.Builtin
+import UHC.Light.Compiler.Base.Common
+import UHC.Light.Compiler.Core
+import UHC.Light.Compiler.Ty
+import UHC.Light.Compiler.Core.Utils
+import UHC.Light.Compiler.AbstractCore
+import Debug.Trace
+
+
+
+
+
+
+
+
+
+
+
+
+
+cmodTrfLamGlobalAsArg :: CModule -> CModule
+cmodTrfLamGlobalAsArg cmod
+  =  let  t = wrap_CodeAGItf  (sem_CodeAGItf (CodeAGItf_AGItf cmod))
+                              (Inh_CodeAGItf)
+     in   cTrf_Syn_CodeAGItf t
+
+
+
+type AspBindLamArgInfo = (LamArgMp,Env)
+
+
+
+type LamArgMp = Map.Map HsName CVarIntroL
+
+
+
+
+type Env = Map.Map HsName Track
+
+metaExtendTrack :: LamArgMp -> Env -> Track -> Track
+metaExtendTrack mp env (TrackVarApply nm ps) = let r = Map.lookup nm mp
+                                                   xs = maybe [] assocLKeys r
+                                                   ts = map (\x -> Map.findWithDefault (TrackVarApply x []) x env) xs
+                                               in  -- trace (show nm ++ " extended with " ++ show ts) $
+                                                         (TrackVarApply nm (ts++ps))
+metaExtendTrack _ _ t = t
+
+-- CAlt --------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CAlt 
+         fvS                  : FvS
+         levOf                : Int
+   alternatives:
+      alternative Alt:
+         child pat            : CPat 
+         child expr           : CExpr 
+         visit 0:
+            local cvi         : _
+            local fvS         : _
+            local whatAbove   : {WhatExpr}
+            local lev         : _
+            local cTrf        : _
+-}
+-- cata
+sem_CAlt :: CAlt ->
+            T_CAlt
+sem_CAlt (CAlt_Alt _pat _expr) =
+    (sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr))
+-- semantic domain
+type T_CAlt = CVarReplNmMp ->
+              CVarIntroMp ->
+              EvalCtx ->
+              Int ->
+              CVarIntroMp ->
+              LamArgMp ->
+              FvSMp ->
+              FvS ->
+              Int ->
+              FvS ->
+              ( CAlt,FvS,Int,Int)
+sem_CAlt_Alt :: T_CPat ->
+                T_CExpr ->
+                T_CAlt
+sem_CAlt_Alt pat_ expr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _exprOvarS :: FvS
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _lhsOlevOf :: Int
+              _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOisDictClass :: Bool
+              _lhsOfvS :: FvS
+              _lhsOcTrf :: CAlt
+              _lhsOgUniq :: Int
+              _patOargMp :: CVarReplNmMp
+              _patOcvarIntroMp :: CVarIntroMp
+              _patOgUniq :: Int
+              _patOintroCVarIntroMp :: CVarIntroMp
+              _patOlamArgMp :: LamArgMp
+              _patOlamFvSMp :: FvSMp
+              _patOlamS :: FvS
+              _patOlev :: Int
+              _patOvarS :: FvS
+              _exprOargMp :: CVarReplNmMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOwhatAbove :: WhatExpr
+              _patIcTrf :: CPat
+              _patIfldNmL :: ([HsName])
+              _patIfvS :: FvS
+              _patIgUniq :: Int
+              _patIlevOf :: Int
+              _patInmL :: ([HsName])
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 23, column 17)
+              _exprOvarS =
+                  _lhsIvarS `Set.union` Set.fromList _patInmL
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 12, column 17)
+              _cvi =
+                  emptyCVarIntro { cviLev  = _lev }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 33, column 17)
+              _exprOcvarIntroMp =
+                  Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIcvarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 45, column 17)
+              _exprOintroCVarIntroMp =
+                  Map.fromList (zip _patInmL (repeat _cvi)) `Map.union` _lhsIintroCVarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 68, column 17)
+              _lhsOlevOf =
+                  fvsLev _lhsIcvarIntroMp cLevModule _exprIfvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)
+              _fvS =
+                  _exprIfvS `Set.difference` Set.fromList _patInmL
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 45, column 17)
+              _exprOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 45, column 17)
+              _exprOisTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 90, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevAlt.ag"(line 2, column 17)
+              _lev =
+                  _lhsIlev + 1
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 168, column 10)
+              _exprOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 169, column 10)
+              _exprOisDictClass =
+                  False
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _fvS
+              -- self rule
+              _cTrf =
+                  CAlt_Alt _patIcTrf _exprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _patOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _patOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _patOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _patOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _patOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _patOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _patOlamS =
+                  _lhsIlamS
+              -- copy rule (from local)
+              _patOlev =
+                  _lev
+              -- copy rule (down)
+              _patOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _exprOgUniq =
+                  _patIgUniq
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (from local)
+              _exprOlev =
+                  _lev
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              ( _patIcTrf,_patIfldNmL,_patIfvS,_patIgUniq,_patIlevOf,_patInmL) =
+                  pat_ _patOargMp _patOcvarIntroMp _patOgUniq _patOintroCVarIntroMp _patOlamArgMp _patOlamFvSMp _patOlamS _patOlev _patOvarS
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
+-- CAltL -------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CAltL 
+         fvS                  : FvS
+         levOf                : Int
+   alternatives:
+      alternative Cons:
+         child hd             : CAlt 
+         child tl             : CAltL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CAltL :: CAltL ->
+             T_CAltL
+sem_CAltL list =
+    (Prelude.foldr sem_CAltL_Cons sem_CAltL_Nil (Prelude.map sem_CAlt list))
+-- semantic domain
+type T_CAltL = CVarReplNmMp ->
+               CVarIntroMp ->
+               EvalCtx ->
+               Int ->
+               CVarIntroMp ->
+               LamArgMp ->
+               FvSMp ->
+               FvS ->
+               Int ->
+               FvS ->
+               ( CAltL,FvS,Int,Int)
+sem_CAltL_Cons :: T_CAlt ->
+                  T_CAltL ->
+                  T_CAltL
+sem_CAltL_Cons hd_ tl_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CAltL
+              _lhsOgUniq :: Int
+              _hdOargMp :: CVarReplNmMp
+              _hdOcvarIntroMp :: CVarIntroMp
+              _hdOevalCtx :: EvalCtx
+              _hdOgUniq :: Int
+              _hdOintroCVarIntroMp :: CVarIntroMp
+              _hdOlamArgMp :: LamArgMp
+              _hdOlamFvSMp :: FvSMp
+              _hdOlamS :: FvS
+              _hdOlev :: Int
+              _hdOvarS :: FvS
+              _tlOargMp :: CVarReplNmMp
+              _tlOcvarIntroMp :: CVarIntroMp
+              _tlOevalCtx :: EvalCtx
+              _tlOgUniq :: Int
+              _tlOintroCVarIntroMp :: CVarIntroMp
+              _tlOlamArgMp :: LamArgMp
+              _tlOlamFvSMp :: FvSMp
+              _tlOlamS :: FvS
+              _tlOlev :: Int
+              _tlOvarS :: FvS
+              _hdIcTrf :: CAlt
+              _hdIfvS :: FvS
+              _hdIgUniq :: Int
+              _hdIlevOf :: Int
+              _tlIcTrf :: CAltL
+              _tlIfvS :: FvS
+              _tlIgUniq :: Int
+              _tlIlevOf :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _hdIfvS `Set.union` _tlIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _hdIlevOf `max` _tlIlevOf
+              -- self rule
+              _cTrf =
+                  (:) _hdIcTrf _tlIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _tlIgUniq
+              -- copy rule (down)
+              _hdOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _hdOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _hdOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _hdOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _hdOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _hdOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _hdOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _hdOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _hdOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _hdOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _tlOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _tlOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _tlOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _tlOgUniq =
+                  _hdIgUniq
+              -- copy rule (down)
+              _tlOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _tlOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _tlOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _tlOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _tlOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _tlOvarS =
+                  _lhsIvarS
+              ( _hdIcTrf,_hdIfvS,_hdIgUniq,_hdIlevOf) =
+                  hd_ _hdOargMp _hdOcvarIntroMp _hdOevalCtx _hdOgUniq _hdOintroCVarIntroMp _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOlev _hdOvarS
+              ( _tlIcTrf,_tlIfvS,_tlIgUniq,_tlIlevOf) =
+                  tl_ _tlOargMp _tlOcvarIntroMp _tlOevalCtx _tlOgUniq _tlOintroCVarIntroMp _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOlev _tlOvarS
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
+sem_CAltL_Nil :: T_CAltL
+sem_CAltL_Nil =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CAltL
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  []
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
+-- CBind -------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         isGlobal             : Bool
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         letBindingsCateg     : CBindCateg
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         bindLamArgMp         : LamArgMp
+         bindLamS             : FvS
+         bindVarS             : FvS
+         bindsIntroCVarIntroMp : CVarIntroMp
+         cTrf                 : CBind 
+         cvarIntroExprMp      : CVarIntroMp
+         envUp                : Env
+         fvS                  : FvS
+         fvSMp                : FvSMp
+         levOf                : Int
+         nm                   : HsName
+         nmL                  : [HsName]
+   alternatives:
+      alternative Bind:
+         child nm             : {HsName}
+         child bindAspects    : CBoundL 
+         visit 0:
+            local aspBindLamArgMp : _
+            local cTrf        : _
+-}
+-- cata
+sem_CBind :: CBind ->
+             T_CBind
+sem_CBind (CBind_Bind _nm _bindAspects) =
+    (sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
+-- semantic domain
+type T_CBind = CVarReplNmMp ->
+               CVarIntroMp ->
+               EvalCtx ->
+               Int ->
+               CVarIntroMp ->
+               Bool ->
+               LamArgMp ->
+               FvSMp ->
+               FvS ->
+               CBindCateg ->
+               Int ->
+               FvS ->
+               ( LamArgMp,FvS,FvS,CVarIntroMp,CBind,CVarIntroMp,Env,FvS,FvSMp,Int,Int,HsName,([HsName]))
+sem_CBind_Bind :: HsName ->
+                  T_CBoundL ->
+                  T_CBind
+sem_CBind_Bind nm_ bindAspects_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisGlobal
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvSMp :: FvSMp
+              _lhsOnmL :: ([HsName])
+              _bindAspectsOnm :: HsName
+              _lhsOnm :: HsName
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CBind
+              _lhsOgUniq :: Int
+              _bindAspectsOargMp :: CVarReplNmMp
+              _bindAspectsOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _bindAspectsOcvarIntroMp :: CVarIntroMp
+              _bindAspectsOevalCtx :: EvalCtx
+              _bindAspectsOgUniq :: Int
+              _bindAspectsOintroCVarIntroMp :: CVarIntroMp
+              _bindAspectsOisGlobal :: Bool
+              _bindAspectsOlamArgMp :: LamArgMp
+              _bindAspectsOlamFvSMp :: FvSMp
+              _bindAspectsOlamS :: FvS
+              _bindAspectsOletBindingsCateg :: CBindCateg
+              _bindAspectsOlev :: Int
+              _bindAspectsOvarS :: FvS
+              _bindAspectsIbindLamArgMp :: LamArgMp
+              _bindAspectsIbindLamS :: FvS
+              _bindAspectsIbindVarS :: FvS
+              _bindAspectsIbindsIntroCVarIntroMp :: CVarIntroMp
+              _bindAspectsIcTrf :: CBoundL
+              _bindAspectsIcvarIntroExprMp :: CVarIntroMp
+              _bindAspectsIenvUp :: Env
+              _bindAspectsIfvS :: FvS
+              _bindAspectsIfvSMp :: FvSMp
+              _bindAspectsIgUniq :: Int
+              _bindAspectsIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _bindAspectsIlevOf :: Int
+              _bindAspectsInmL :: ([HsName])
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 11, column 17)
+              _lhsOfvSMp =
+                  Map.singleton nm_ _bindAspectsIfvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 19, column 17)
+              _lhsOnmL =
+                  [nm_]
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 4, column 17)
+              _bindAspectsOnm =
+                  nm_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 12, column 17)
+              _lhsOnm =
+                  nm_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 88, column 25)
+              _aspBindLamArgMp =
+                  _bindAspectsIgathAspBindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _bindAspectsIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  _bindAspectsIbindLamS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  _bindAspectsIbindVarS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  _bindAspectsIbindsIntroCVarIntroMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  _bindAspectsIcvarIntroExprMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  _bindAspectsIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _bindAspectsIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _bindAspectsIlevOf
+              -- self rule
+              _cTrf =
+                  CBind_Bind nm_ _bindAspectsIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _bindAspectsIgUniq
+              -- copy rule (down)
+              _bindAspectsOargMp =
+                  _lhsIargMp
+              -- copy rule (from local)
+              _bindAspectsOaspBindLamArgMp =
+                  _aspBindLamArgMp
+              -- copy rule (down)
+              _bindAspectsOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _bindAspectsOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _bindAspectsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _bindAspectsOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _bindAspectsOisGlobal =
+                  _lhsIisGlobal
+              -- copy rule (down)
+              _bindAspectsOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bindAspectsOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bindAspectsOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _bindAspectsOletBindingsCateg =
+                  _lhsIletBindingsCateg
+              -- copy rule (down)
+              _bindAspectsOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _bindAspectsOvarS =
+                  _lhsIvarS
+              ( _bindAspectsIbindLamArgMp,_bindAspectsIbindLamS,_bindAspectsIbindVarS,_bindAspectsIbindsIntroCVarIntroMp,_bindAspectsIcTrf,_bindAspectsIcvarIntroExprMp,_bindAspectsIenvUp,_bindAspectsIfvS,_bindAspectsIfvSMp,_bindAspectsIgUniq,_bindAspectsIgathAspBindLamArgMp,_bindAspectsIlevOf,_bindAspectsInmL) =
+                  bindAspects_ _bindAspectsOargMp _bindAspectsOaspBindLamArgMp _bindAspectsOcvarIntroMp _bindAspectsOevalCtx _bindAspectsOgUniq _bindAspectsOintroCVarIntroMp _bindAspectsOisGlobal _bindAspectsOlamArgMp _bindAspectsOlamFvSMp _bindAspectsOlamS _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm _bindAspectsOvarS
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevOf,_lhsOnm,_lhsOnmL)))
+-- CBindAnn ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CBindAnn 
+         fvS                  : FvS
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Coe:
+         child coe            : {()}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CBindAnn :: CBindAnn ->
+                T_CBindAnn
+sem_CBindAnn (CBindAnn_Coe _coe) =
+    (sem_CBindAnn_Coe _coe)
+-- semantic domain
+type T_CBindAnn = CVarReplNmMp ->
+                  CVarIntroMp ->
+                  Int ->
+                  CVarIntroMp ->
+                  LamArgMp ->
+                  FvSMp ->
+                  FvS ->
+                  Int ->
+                  FvS ->
+                  ( CBindAnn,FvS,Int,Int,([HsName]))
+sem_CBindAnn_Coe :: (()) ->
+                    T_CBindAnn
+sem_CBindAnn_Coe coe_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBindAnn
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CBindAnn_Coe coe_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CBindAnnL ---------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CBindAnnL 
+         fvS                  : FvS
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Cons:
+         child hd             : CBindAnn 
+         child tl             : CBindAnnL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CBindAnnL :: CBindAnnL ->
+                 T_CBindAnnL
+sem_CBindAnnL list =
+    (Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list))
+-- semantic domain
+type T_CBindAnnL = CVarReplNmMp ->
+                   CVarIntroMp ->
+                   Int ->
+                   CVarIntroMp ->
+                   LamArgMp ->
+                   FvSMp ->
+                   FvS ->
+                   Int ->
+                   FvS ->
+                   ( CBindAnnL,FvS,Int,Int,([HsName]))
+sem_CBindAnnL_Cons :: T_CBindAnn ->
+                      T_CBindAnnL ->
+                      T_CBindAnnL
+sem_CBindAnnL_Cons hd_ tl_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBindAnnL
+              _lhsOgUniq :: Int
+              _hdOargMp :: CVarReplNmMp
+              _hdOcvarIntroMp :: CVarIntroMp
+              _hdOgUniq :: Int
+              _hdOintroCVarIntroMp :: CVarIntroMp
+              _hdOlamArgMp :: LamArgMp
+              _hdOlamFvSMp :: FvSMp
+              _hdOlamS :: FvS
+              _hdOlev :: Int
+              _hdOvarS :: FvS
+              _tlOargMp :: CVarReplNmMp
+              _tlOcvarIntroMp :: CVarIntroMp
+              _tlOgUniq :: Int
+              _tlOintroCVarIntroMp :: CVarIntroMp
+              _tlOlamArgMp :: LamArgMp
+              _tlOlamFvSMp :: FvSMp
+              _tlOlamS :: FvS
+              _tlOlev :: Int
+              _tlOvarS :: FvS
+              _hdIcTrf :: CBindAnn
+              _hdIfvS :: FvS
+              _hdIgUniq :: Int
+              _hdIlevOf :: Int
+              _hdInmL :: ([HsName])
+              _tlIcTrf :: CBindAnnL
+              _tlIfvS :: FvS
+              _tlIgUniq :: Int
+              _tlIlevOf :: Int
+              _tlInmL :: ([HsName])
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _hdIfvS `Set.union` _tlIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _hdIlevOf `max` _tlIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  _hdInmL ++ _tlInmL
+              -- self rule
+              _cTrf =
+                  (:) _hdIcTrf _tlIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _tlIgUniq
+              -- copy rule (down)
+              _hdOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _hdOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _hdOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _hdOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _hdOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _hdOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _hdOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _hdOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _hdOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _tlOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _tlOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (chain)
+              _tlOgUniq =
+                  _hdIgUniq
+              -- copy rule (down)
+              _tlOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _tlOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _tlOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _tlOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _tlOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _tlOvarS =
+                  _lhsIvarS
+              ( _hdIcTrf,_hdIfvS,_hdIgUniq,_hdIlevOf,_hdInmL) =
+                  hd_ _hdOargMp _hdOcvarIntroMp _hdOgUniq _hdOintroCVarIntroMp _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOlev _hdOvarS
+              ( _tlIcTrf,_tlIfvS,_tlIgUniq,_tlIlevOf,_tlInmL) =
+                  tl_ _tlOargMp _tlOcvarIntroMp _tlOgUniq _tlOintroCVarIntroMp _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOlev _tlOvarS
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CBindAnnL_Nil :: T_CBindAnnL
+sem_CBindAnnL_Nil =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBindAnnL
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  []
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CBindL ------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         isGlobal             : Bool
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         letBindingsCateg     : CBindCateg
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         bindLamArgMp         : LamArgMp
+         bindLamS             : FvS
+         bindVarS             : FvS
+         bindsIntroCVarIntroMp : CVarIntroMp
+         cTrf                 : CBindL 
+         cvarIntroExprMp      : CVarIntroMp
+         envUp                : Env
+         fvS                  : FvS
+         fvSMp                : FvSMp
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Cons:
+         child hd             : CBind 
+         child tl             : CBindL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CBindL :: CBindL ->
+              T_CBindL
+sem_CBindL list =
+    (Prelude.foldr sem_CBindL_Cons sem_CBindL_Nil (Prelude.map sem_CBind list))
+-- semantic domain
+type T_CBindL = CVarReplNmMp ->
+                CVarIntroMp ->
+                EvalCtx ->
+                Int ->
+                CVarIntroMp ->
+                Bool ->
+                LamArgMp ->
+                FvSMp ->
+                FvS ->
+                CBindCateg ->
+                Int ->
+                FvS ->
+                ( LamArgMp,FvS,FvS,CVarIntroMp,CBindL,CVarIntroMp,Env,FvS,FvSMp,Int,Int,([HsName]))
+sem_CBindL_Cons :: T_CBind ->
+                   T_CBindL ->
+                   T_CBindL
+sem_CBindL_Cons hd_ tl_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisGlobal
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBindL
+              _lhsOgUniq :: Int
+              _hdOargMp :: CVarReplNmMp
+              _hdOcvarIntroMp :: CVarIntroMp
+              _hdOevalCtx :: EvalCtx
+              _hdOgUniq :: Int
+              _hdOintroCVarIntroMp :: CVarIntroMp
+              _hdOisGlobal :: Bool
+              _hdOlamArgMp :: LamArgMp
+              _hdOlamFvSMp :: FvSMp
+              _hdOlamS :: FvS
+              _hdOletBindingsCateg :: CBindCateg
+              _hdOlev :: Int
+              _hdOvarS :: FvS
+              _tlOargMp :: CVarReplNmMp
+              _tlOcvarIntroMp :: CVarIntroMp
+              _tlOevalCtx :: EvalCtx
+              _tlOgUniq :: Int
+              _tlOintroCVarIntroMp :: CVarIntroMp
+              _tlOisGlobal :: Bool
+              _tlOlamArgMp :: LamArgMp
+              _tlOlamFvSMp :: FvSMp
+              _tlOlamS :: FvS
+              _tlOletBindingsCateg :: CBindCateg
+              _tlOlev :: Int
+              _tlOvarS :: FvS
+              _hdIbindLamArgMp :: LamArgMp
+              _hdIbindLamS :: FvS
+              _hdIbindVarS :: FvS
+              _hdIbindsIntroCVarIntroMp :: CVarIntroMp
+              _hdIcTrf :: CBind
+              _hdIcvarIntroExprMp :: CVarIntroMp
+              _hdIenvUp :: Env
+              _hdIfvS :: FvS
+              _hdIfvSMp :: FvSMp
+              _hdIgUniq :: Int
+              _hdIlevOf :: Int
+              _hdInm :: HsName
+              _hdInmL :: ([HsName])
+              _tlIbindLamArgMp :: LamArgMp
+              _tlIbindLamS :: FvS
+              _tlIbindVarS :: FvS
+              _tlIbindsIntroCVarIntroMp :: CVarIntroMp
+              _tlIcTrf :: CBindL
+              _tlIcvarIntroExprMp :: CVarIntroMp
+              _tlIenvUp :: Env
+              _tlIfvS :: FvS
+              _tlIfvSMp :: FvSMp
+              _tlIgUniq :: Int
+              _tlIlevOf :: Int
+              _tlInmL :: ([HsName])
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _hdIbindLamArgMp `Map.union` _tlIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  _hdIbindLamS `Set.union` _tlIbindLamS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  _hdIbindVarS `Set.union` _tlIbindVarS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  _hdIenvUp `Map.union` _tlIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _hdIfvS `Set.union` _tlIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  _hdIfvSMp `Map.union` _tlIfvSMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _hdIlevOf `max` _tlIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  _hdInmL ++ _tlInmL
+              -- self rule
+              _cTrf =
+                  (:) _hdIcTrf _tlIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _tlIgUniq
+              -- copy rule (down)
+              _hdOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _hdOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _hdOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _hdOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _hdOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _hdOisGlobal =
+                  _lhsIisGlobal
+              -- copy rule (down)
+              _hdOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _hdOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _hdOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _hdOletBindingsCateg =
+                  _lhsIletBindingsCateg
+              -- copy rule (down)
+              _hdOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _hdOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _tlOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _tlOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _tlOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _tlOgUniq =
+                  _hdIgUniq
+              -- copy rule (down)
+              _tlOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _tlOisGlobal =
+                  _lhsIisGlobal
+              -- copy rule (down)
+              _tlOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _tlOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _tlOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _tlOletBindingsCateg =
+                  _lhsIletBindingsCateg
+              -- copy rule (down)
+              _tlOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _tlOvarS =
+                  _lhsIvarS
+              ( _hdIbindLamArgMp,_hdIbindLamS,_hdIbindVarS,_hdIbindsIntroCVarIntroMp,_hdIcTrf,_hdIcvarIntroExprMp,_hdIenvUp,_hdIfvS,_hdIfvSMp,_hdIgUniq,_hdIlevOf,_hdInm,_hdInmL) =
+                  hd_ _hdOargMp _hdOcvarIntroMp _hdOevalCtx _hdOgUniq _hdOintroCVarIntroMp _hdOisGlobal _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOletBindingsCateg _hdOlev _hdOvarS
+              ( _tlIbindLamArgMp,_tlIbindLamS,_tlIbindVarS,_tlIbindsIntroCVarIntroMp,_tlIcTrf,_tlIcvarIntroExprMp,_tlIenvUp,_tlIfvS,_tlIfvSMp,_tlIgUniq,_tlIlevOf,_tlInmL) =
+                  tl_ _tlOargMp _tlOcvarIntroMp _tlOevalCtx _tlOgUniq _tlOintroCVarIntroMp _tlOisGlobal _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOletBindingsCateg _tlOlev _tlOvarS
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CBindL_Nil :: T_CBindL
+sem_CBindL_Nil =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisGlobal
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBindL
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  []
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CBound ------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         aspBindLamArgMp      : ACoreBindAspMp AspBindLamArgInfo
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         isDictClass          : Bool
+         isGlobal             : Bool
+         isTopApp             : Bool
+         isTopTup             : Bool
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         letBindingsCateg     : CBindCateg
+         lev                  : Int
+         mbCtxCount           : Maybe Int
+         nm                   : HsName
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         bindLamArgMp         : LamArgMp
+         bindLamS             : FvS
+         bindVarS             : FvS
+         bindsIntroCVarIntroMp : CVarIntroMp
+         cTrf                 : CBound 
+         cvarIntroExprMp      : CVarIntroMp
+         envUp                : Env
+         fvS                  : FvS
+         fvSMp                : FvSMp
+         gathAspBindLamArgMp  : ACoreBindAspMp AspBindLamArgInfo
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Bind:
+         child expr           : CExpr 
+         visit 0:
+            local _tup1       : _
+            local cvi         : _
+            local cviExpr     : _
+            local whatAbove   : {WhatExpr}
+            local _tup2       : _
+            local argNewL     : _
+            local argMpNew    : _
+            local bindLamArgMp : _
+            local cTrf        : _
+      alternative Val:
+         child aspectKeyS     : {ACoreBindAspectKeyS}
+         child mlev           : {MetaLev}
+         child lbl            : {CLbl}
+         child expr           : CExpr 
+         visit 0:
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Ty:
+         child aspectKeyS     : {ACoreBindAspectKeyS}
+         child ty             : {Ty}
+         visit 0:
+            local cTrf        : _
+      alternative FFE:
+         child callconv       : {FFIWay}
+         child expEnt         : {ForeignEnt}
+         child expr           : CExpr 
+         child ty             : {Ty}
+         visit 0:
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+-}
+-- cata
+sem_CBound :: CBound ->
+              T_CBound
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
+sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
+    (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
+sem_CBound (CBound_Ty _aspectKeyS _ty) =
+    (sem_CBound_Ty _aspectKeyS _ty)
+sem_CBound (CBound_FFE _callconv _expEnt _expr _ty) =
+    (sem_CBound_FFE _callconv _expEnt (sem_CExpr _expr) _ty)
+-- semantic domain
+type T_CBound = CVarReplNmMp ->
+                (ACoreBindAspMp AspBindLamArgInfo) ->
+                CVarIntroMp ->
+                EvalCtx ->
+                Int ->
+                CVarIntroMp ->
+                Bool ->
+                Bool ->
+                Bool ->
+                Bool ->
+                LamArgMp ->
+                FvSMp ->
+                FvS ->
+                CBindCateg ->
+                Int ->
+                (Maybe Int) ->
+                HsName ->
+                FvS ->
+                ( LamArgMp,FvS,FvS,CVarIntroMp,CBound,CVarIntroMp,Env,FvS,FvSMp,Int,(ACoreBindAspMp AspBindLamArgInfo),Int,([HsName]))
+sem_CBound_Bind :: T_CExpr ->
+                   T_CBound
+sem_CBound_Bind expr_ =
+    (\ _lhsIargMp
+       _lhsIaspBindLamArgMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisGlobal
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsInm
+       _lhsIvarS ->
+         (let _lhsObindVarS :: FvS
+              _lhsObindLamS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _exprOgUniq :: Int
+              _exprOargMp :: CVarReplNmMp
+              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOcTrf :: CBound
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOisDictClass :: Bool
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOgUniq :: Int
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
+              __tup1 =
+                  if isJust _exprImbLam
+                  then (Set.empty,Set.singleton _lhsInm)
+                  else (Set.singleton _lhsInm,Set.empty)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
+              (_lhsObindVarS,_) =
+                  __tup1
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 6, column 33)
+              (_,_lhsObindLamS) =
+                  __tup1
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
+              _cvi =
+                  emptyCVarIntro { cviLev  = _lhsIlev    }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 8, column 17)
+              _cviExpr =
+                  emptyCVarIntro { cviLev  = _exprIlevOf }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 50, column 17)
+              _lhsObindsIntroCVarIntroMp =
+                  Map.singleton _lhsInm _cvi
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 73, column 17)
+              _lhsOcvarIntroExprMp =
+                  Map.singleton _lhsInm _cviExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
+              _exprOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
+              _exprOisTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 83, column 17)
+              _whatAbove =
+                  ExprIsBind _lhsInm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 54, column 17)
+              _exprOgUniq =
+                  _lhsIgUniq + Map.size _argMpNew
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 79, column 17)
+              _exprOargMp =
+                  _argMpNew `Map.union` _lhsIargMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 92, column 25)
+              _lhsOgathAspBindLamArgMp =
+                  Map.singleton acbaspkeyDefault
+                            ( _exprIbindLamArgMp
+                            , _exprIenvUp
+                            )
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 120, column 33)
+              __tup2 =
+                  if                                    isJust _exprImbLam
+                  then  let  argLevL = fvLAsArg _lhsIintroCVarIntroMp $ panicJust "LamGlobalAsArg.CBind.Bind.argLevL" $ Map.lookup _lhsInm $ _lhsIlamFvSMp
+                             (argOL,argNL,argONMp) = fvLArgRepl _lhsIgUniq $ argLevL
+                        in   (argNL, argONMp, _lhsInm `Map.singleton` argOL)
+                  else  ([],Map.empty, Map.empty)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 120, column 33)
+              (_argNewL,_,_) =
+                  __tup2
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 120, column 33)
+              (_,_argMpNew,_) =
+                  __tup2
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 120, column 33)
+              (_,_,_bindLamArgMp) =
+                  __tup2
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 128, column 17)
+              _lhsOcTrf =
+                  (acoreBoundVal1 _lhsInm $ acoreLam [(n) | (n,cvi) <- _argNewL] _exprIcTrf)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 176, column 11)
+              _exprOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 177, column 11)
+              _exprOisDictClass =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 192, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _bindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _exprIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CBound_Bind _exprIcTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
+sem_CBound_Val :: ACoreBindAspectKeyS ->
+                  MetaLev ->
+                  CLbl ->
+                  T_CExpr ->
+                  T_CBound
+sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
+    (\ _lhsIargMp
+       _lhsIaspBindLamArgMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisGlobal
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsInm
+       _lhsIvarS ->
+         (let _whatAbove :: WhatExpr
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOisDictClass :: Bool
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBound
+              _lhsOgUniq :: Int
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 83, column 17)
+              _whatAbove =
+                  ExprIsBind _lhsInm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 178, column 11)
+              _exprOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 179, column 11)
+              _exprOisDictClass =
+                  False
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  _exprIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
+              _lhsOgathAspBindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _exprIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CBound_Val aspectKeyS_ mlev_ lbl_ _exprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOisTopApp =
+                  _lhsIisTopApp
+              -- copy rule (down)
+              _exprOisTopTup =
+                  _lhsIisTopTup
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
+sem_CBound_Ty :: ACoreBindAspectKeyS ->
+                 Ty ->
+                 T_CBound
+sem_CBound_Ty aspectKeyS_ ty_ =
+    (\ _lhsIargMp
+       _lhsIaspBindLamArgMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisGlobal
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsInm
+       _lhsIvarS ->
+         (let _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBound
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
+              _lhsOgathAspBindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CBound_Ty aspectKeyS_ ty_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
+sem_CBound_FFE :: FFIWay ->
+                  ForeignEnt ->
+                  T_CExpr ->
+                  Ty ->
+                  T_CBound
+sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
+    (\ _lhsIargMp
+       _lhsIaspBindLamArgMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisGlobal
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsInm
+       _lhsIvarS ->
+         (let _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOisDictClass :: Bool
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBound
+              _lhsOgUniq :: Int
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
+              _exprOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
+              _exprOisTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 84, column 17)
+              _whatAbove =
+                  ExprIsLam 0 Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 164, column 10)
+              _exprOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 165, column 10)
+              _exprOisDictClass =
+                  False
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  _exprIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
+              _lhsOgathAspBindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _exprIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CBound_FFE callconv_ expEnt_ _exprIcTrf ty_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
+-- CBoundL -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         aspBindLamArgMp      : ACoreBindAspMp AspBindLamArgInfo
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         isGlobal             : Bool
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         letBindingsCateg     : CBindCateg
+         lev                  : Int
+         nm                   : HsName
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         bindLamArgMp         : LamArgMp
+         bindLamS             : FvS
+         bindVarS             : FvS
+         bindsIntroCVarIntroMp : CVarIntroMp
+         cTrf                 : CBoundL 
+         cvarIntroExprMp      : CVarIntroMp
+         envUp                : Env
+         fvS                  : FvS
+         fvSMp                : FvSMp
+         gathAspBindLamArgMp  : ACoreBindAspMp AspBindLamArgInfo
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Cons:
+         child hd             : CBound 
+         child tl             : CBoundL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CBoundL :: CBoundL ->
+               T_CBoundL
+sem_CBoundL list =
+    (Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list))
+-- semantic domain
+type T_CBoundL = CVarReplNmMp ->
+                 (ACoreBindAspMp AspBindLamArgInfo) ->
+                 CVarIntroMp ->
+                 EvalCtx ->
+                 Int ->
+                 CVarIntroMp ->
+                 Bool ->
+                 LamArgMp ->
+                 FvSMp ->
+                 FvS ->
+                 CBindCateg ->
+                 Int ->
+                 HsName ->
+                 FvS ->
+                 ( LamArgMp,FvS,FvS,CVarIntroMp,CBoundL,CVarIntroMp,Env,FvS,FvSMp,Int,(ACoreBindAspMp AspBindLamArgInfo),Int,([HsName]))
+sem_CBoundL_Cons :: T_CBound ->
+                    T_CBoundL ->
+                    T_CBoundL
+sem_CBoundL_Cons hd_ tl_ =
+    (\ _lhsIargMp
+       _lhsIaspBindLamArgMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisGlobal
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsInm
+       _lhsIvarS ->
+         (let _hdOisTopApp :: Bool
+              _hdOisTopTup :: Bool
+              _hdOmbCtxCount :: (Maybe Int)
+              _hdOisDictClass :: Bool
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBoundL
+              _lhsOgUniq :: Int
+              _hdOargMp :: CVarReplNmMp
+              _hdOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _hdOcvarIntroMp :: CVarIntroMp
+              _hdOevalCtx :: EvalCtx
+              _hdOgUniq :: Int
+              _hdOintroCVarIntroMp :: CVarIntroMp
+              _hdOisGlobal :: Bool
+              _hdOlamArgMp :: LamArgMp
+              _hdOlamFvSMp :: FvSMp
+              _hdOlamS :: FvS
+              _hdOletBindingsCateg :: CBindCateg
+              _hdOlev :: Int
+              _hdOnm :: HsName
+              _hdOvarS :: FvS
+              _tlOargMp :: CVarReplNmMp
+              _tlOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _tlOcvarIntroMp :: CVarIntroMp
+              _tlOevalCtx :: EvalCtx
+              _tlOgUniq :: Int
+              _tlOintroCVarIntroMp :: CVarIntroMp
+              _tlOisGlobal :: Bool
+              _tlOlamArgMp :: LamArgMp
+              _tlOlamFvSMp :: FvSMp
+              _tlOlamS :: FvS
+              _tlOletBindingsCateg :: CBindCateg
+              _tlOlev :: Int
+              _tlOnm :: HsName
+              _tlOvarS :: FvS
+              _hdIbindLamArgMp :: LamArgMp
+              _hdIbindLamS :: FvS
+              _hdIbindVarS :: FvS
+              _hdIbindsIntroCVarIntroMp :: CVarIntroMp
+              _hdIcTrf :: CBound
+              _hdIcvarIntroExprMp :: CVarIntroMp
+              _hdIenvUp :: Env
+              _hdIfvS :: FvS
+              _hdIfvSMp :: FvSMp
+              _hdIgUniq :: Int
+              _hdIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _hdIlevOf :: Int
+              _hdInmL :: ([HsName])
+              _tlIbindLamArgMp :: LamArgMp
+              _tlIbindLamS :: FvS
+              _tlIbindVarS :: FvS
+              _tlIbindsIntroCVarIntroMp :: CVarIntroMp
+              _tlIcTrf :: CBoundL
+              _tlIcvarIntroExprMp :: CVarIntroMp
+              _tlIenvUp :: Env
+              _tlIfvS :: FvS
+              _tlIfvSMp :: FvSMp
+              _tlIgUniq :: Int
+              _tlIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _tlIlevOf :: Int
+              _tlInmL :: ([HsName])
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)
+              _hdOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)
+              _hdOisTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 160, column 10)
+              _hdOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 161, column 10)
+              _hdOisDictClass =
+                  False
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _hdIbindLamArgMp `Map.union` _tlIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  _hdIbindLamS `Set.union` _tlIbindLamS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  _hdIbindVarS `Set.union` _tlIbindVarS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  _hdIbindsIntroCVarIntroMp `Map.union` _tlIbindsIntroCVarIntroMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  _hdIcvarIntroExprMp `Map.union` _tlIcvarIntroExprMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  _hdIenvUp `Map.union` _tlIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _hdIfvS `Set.union` _tlIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  _hdIfvSMp `Map.union` _tlIfvSMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
+              _lhsOgathAspBindLamArgMp =
+                  _hdIgathAspBindLamArgMp `Map.union` _tlIgathAspBindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _hdIlevOf `max` _tlIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  _hdInmL ++ _tlInmL
+              -- self rule
+              _cTrf =
+                  (:) _hdIcTrf _tlIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _tlIgUniq
+              -- copy rule (down)
+              _hdOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _hdOaspBindLamArgMp =
+                  _lhsIaspBindLamArgMp
+              -- copy rule (down)
+              _hdOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _hdOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _hdOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _hdOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _hdOisGlobal =
+                  _lhsIisGlobal
+              -- copy rule (down)
+              _hdOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _hdOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _hdOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _hdOletBindingsCateg =
+                  _lhsIletBindingsCateg
+              -- copy rule (down)
+              _hdOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _hdOnm =
+                  _lhsInm
+              -- copy rule (down)
+              _hdOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _tlOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _tlOaspBindLamArgMp =
+                  _lhsIaspBindLamArgMp
+              -- copy rule (down)
+              _tlOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _tlOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _tlOgUniq =
+                  _hdIgUniq
+              -- copy rule (down)
+              _tlOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _tlOisGlobal =
+                  _lhsIisGlobal
+              -- copy rule (down)
+              _tlOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _tlOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _tlOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _tlOletBindingsCateg =
+                  _lhsIletBindingsCateg
+              -- copy rule (down)
+              _tlOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _tlOnm =
+                  _lhsInm
+              -- copy rule (down)
+              _tlOvarS =
+                  _lhsIvarS
+              ( _hdIbindLamArgMp,_hdIbindLamS,_hdIbindVarS,_hdIbindsIntroCVarIntroMp,_hdIcTrf,_hdIcvarIntroExprMp,_hdIenvUp,_hdIfvS,_hdIfvSMp,_hdIgUniq,_hdIgathAspBindLamArgMp,_hdIlevOf,_hdInmL) =
+                  hd_ _hdOargMp _hdOaspBindLamArgMp _hdOcvarIntroMp _hdOevalCtx _hdOgUniq _hdOintroCVarIntroMp _hdOisDictClass _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOletBindingsCateg _hdOlev _hdOmbCtxCount _hdOnm _hdOvarS
+              ( _tlIbindLamArgMp,_tlIbindLamS,_tlIbindVarS,_tlIbindsIntroCVarIntroMp,_tlIcTrf,_tlIcvarIntroExprMp,_tlIenvUp,_tlIfvS,_tlIfvSMp,_tlIgUniq,_tlIgathAspBindLamArgMp,_tlIlevOf,_tlInmL) =
+                  tl_ _tlOargMp _tlOaspBindLamArgMp _tlOcvarIntroMp _tlOevalCtx _tlOgUniq _tlOintroCVarIntroMp _tlOisGlobal _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOletBindingsCateg _tlOlev _tlOnm _tlOvarS
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
+sem_CBoundL_Nil :: T_CBoundL
+sem_CBoundL_Nil =
+    (\ _lhsIargMp
+       _lhsIaspBindLamArgMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisGlobal
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIletBindingsCateg
+       _lhsIlev
+       _lhsInm
+       _lhsIvarS ->
+         (let _lhsObindLamArgMp :: LamArgMp
+              _lhsObindLamS :: FvS
+              _lhsObindVarS :: FvS
+              _lhsObindsIntroCVarIntroMp :: CVarIntroMp
+              _lhsOcvarIntroExprMp :: CVarIntroMp
+              _lhsOenvUp :: Env
+              _lhsOfvS :: FvS
+              _lhsOfvSMp :: FvSMp
+              _lhsOgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CBoundL
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindLamS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 3, column 39)
+              _lhsObindVarS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 47, column 42)
+              _lhsObindsIntroCVarIntroMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 70, column 36)
+              _lhsOcvarIntroExprMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 189, column 32)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
+              _lhsOfvSMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 85, column 95)
+              _lhsOgathAspBindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  []
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsObindLamArgMp,_lhsObindLamS,_lhsObindVarS,_lhsObindsIntroCVarIntroMp,_lhsOcTrf,_lhsOcvarIntroExprMp,_lhsOenvUp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathAspBindLamArgMp,_lhsOlevOf,_lhsOnmL)))
+-- CDataCon ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CDataCon 
+   alternatives:
+      alternative Con:
+         child conNm          : {HsName}
+         child tagNr          : {Int}
+         child arity          : {Int}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CDataCon :: CDataCon ->
+                T_CDataCon
+sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) =
+    (sem_CDataCon_Con _conNm _tagNr _arity)
+-- semantic domain
+type T_CDataCon = ( CDataCon)
+sem_CDataCon_Con :: HsName ->
+                    Int ->
+                    Int ->
+                    T_CDataCon
+sem_CDataCon_Con conNm_ tagNr_ arity_ =
+    (let _lhsOcTrf :: CDataCon
+         -- self rule
+         _cTrf =
+             CDataCon_Con conNm_ tagNr_ arity_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CDataConL ---------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CDataConL 
+   alternatives:
+      alternative Cons:
+         child hd             : CDataCon 
+         child tl             : CDataConL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CDataConL :: CDataConL ->
+                 T_CDataConL
+sem_CDataConL list =
+    (Prelude.foldr sem_CDataConL_Cons sem_CDataConL_Nil (Prelude.map sem_CDataCon list))
+-- semantic domain
+type T_CDataConL = ( CDataConL)
+sem_CDataConL_Cons :: T_CDataCon ->
+                      T_CDataConL ->
+                      T_CDataConL
+sem_CDataConL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CDataConL
+         _hdIcTrf :: CDataCon
+         _tlIcTrf :: CDataConL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CDataConL_Nil :: T_CDataConL
+sem_CDataConL_Nil =
+    (let _lhsOcTrf :: CDataConL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CDeclMeta ---------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CDeclMeta 
+   alternatives:
+      alternative Data:
+         child tyNm           : {HsName}
+         child dataCons       : CDataConL 
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CDeclMeta :: CDeclMeta ->
+                 T_CDeclMeta
+sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) =
+    (sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons))
+-- semantic domain
+type T_CDeclMeta = ( CDeclMeta)
+sem_CDeclMeta_Data :: HsName ->
+                      T_CDataConL ->
+                      T_CDeclMeta
+sem_CDeclMeta_Data tyNm_ dataCons_ =
+    (let _lhsOcTrf :: CDeclMeta
+         _dataConsIcTrf :: CDataConL
+         -- self rule
+         _cTrf =
+             CDeclMeta_Data tyNm_ _dataConsIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _dataConsIcTrf) =
+             dataCons_
+     in  ( _lhsOcTrf))
+-- CDeclMetaL --------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CDeclMetaL 
+   alternatives:
+      alternative Cons:
+         child hd             : CDeclMeta 
+         child tl             : CDeclMetaL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CDeclMetaL :: CDeclMetaL ->
+                  T_CDeclMetaL
+sem_CDeclMetaL list =
+    (Prelude.foldr sem_CDeclMetaL_Cons sem_CDeclMetaL_Nil (Prelude.map sem_CDeclMeta list))
+-- semantic domain
+type T_CDeclMetaL = ( CDeclMetaL)
+sem_CDeclMetaL_Cons :: T_CDeclMeta ->
+                       T_CDeclMetaL ->
+                       T_CDeclMetaL
+sem_CDeclMetaL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CDeclMetaL
+         _hdIcTrf :: CDeclMeta
+         _tlIcTrf :: CDeclMetaL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CDeclMetaL_Nil :: T_CDeclMetaL
+sem_CDeclMetaL_Nil =
+    (let _lhsOcTrf :: CDeclMetaL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CExport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CExport 
+   alternatives:
+      alternative Export:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+      alternative ExportData:
+         child nm             : {HsName}
+         child mbConNmL       : {Maybe [HsName]}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExport :: CExport ->
+               T_CExport
+sem_CExport (CExport_Export _nm) =
+    (sem_CExport_Export _nm)
+sem_CExport (CExport_ExportData _nm _mbConNmL) =
+    (sem_CExport_ExportData _nm _mbConNmL)
+-- 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))
+sem_CExport_ExportData :: HsName ->
+                          (Maybe [HsName]) ->
+                          T_CExport
+sem_CExport_ExportData nm_ mbConNmL_ =
+    (let _lhsOcTrf :: CExport
+         -- self rule
+         _cTrf =
+             CExport_ExportData nm_ mbConNmL_
+         -- 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:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         evalCtx              : EvalCtx
+         introCVarIntroMp     : CVarIntroMp
+         isDictClass          : Bool
+         isTopApp             : Bool
+         isTopTup             : Bool
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         mbCtxCount           : Maybe Int
+         varS                 : FvS
+         whatAbove            : WhatExpr
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         appFunKind           : AppFunKind
+         bindLamArgMp         : LamArgMp
+         cTrf                 : CExpr 
+         envUp                : Env
+         fvS                  : FvS
+         levOf                : Int
+         mbLam                : Maybe [HsName]
+         mbVar                : Maybe HsName
+         whatBelow            : WhatExpr
+   alternatives:
+      alternative Var:
+         child ref            : {ACoreBindRef}
+         visit 0:
+            local mbVar       : {Maybe HsName}
+            local nm          : {HsName}
+            local nmAsp       : {HsName}
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Int:
+         child int            : {Int}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Char:
+         child char           : {Char}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative String:
+         child str            : {String}
+         visit 0:
+            local levOf       : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Integer:
+         child integer        : {Integer}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Tup:
+         child tag            : {CTag}
+         visit 0:
+            local levOf       : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Let:
+         child categ          : {CBindCateg}
+         child binds          : CBindL 
+         child body           : CExpr 
+         visit 0:
+            local varS        : _
+            local lamS        : _
+            local maxBindLev  : _
+            local _tup3       : _
+            local strLev      : _
+            local introCVarIntroMp : _
+            local levOf       : _
+            local fvS         : _
+            local letBindingsCateg : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local isTopLet    : _
+            local evalCtx     : _
+            local isGlobal    : _
+            local lamFvSMp    : _
+            local lamArgMp    : _
+            local cTrf        : _
+      alternative App:
+         child func           : CExpr 
+         child arg            : CBound 
+         visit 0:
+            local levOf       : _
+            local fvS         : _
+            local letBindingsCateg : _
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local isTopApp'   : _
+            local isGlobal    : _
+            local cTrf        : _
+      alternative Lam:
+         child bind           : CBind 
+         child body           : CExpr 
+         visit 0:
+            local varS        : _
+            local cvi         : _
+            local levOf       : _
+            local fvS         : _
+            local argNm       : _
+            local letBindingsCateg : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local isTopLam    : _
+            local lev         : _
+            local isGlobal    : _
+            local cTrf        : _
+      alternative Case:
+         child expr           : CExpr 
+         child alts           : CAltL 
+         child dflt           : CExpr 
+         visit 0:
+            local levOf       : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative CaseAltFail:
+         child failReason     : {CaseAltFailReason}
+         child errorExpr      : CExpr 
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative TupDel:
+         child expr           : CExpr 
+         child tag            : {CTag}
+         child nm             : {HsName}
+         child offset         : CExpr 
+         visit 0:
+            local levOf       : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative TupIns:
+         child expr           : CExpr 
+         child tag            : {CTag}
+         child nm             : {HsName}
+         child offset         : CExpr 
+         child fldExpr        : CExpr 
+         visit 0:
+            local levOf       : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative TupUpd:
+         child expr           : CExpr 
+         child tag            : {CTag}
+         child nm             : {HsName}
+         child offset         : CExpr 
+         child fldExpr        : CExpr 
+         visit 0:
+            local levOf       : _
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative FFI:
+         child callconv       : {FFIWay}
+         child safety         : {String}
+         child impEnt         : {ForeignEnt}
+         child ty             : {Ty}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Dbg:
+         child info           : {String}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Hole:
+         child uid            : {UID}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative HoleLet:
+         child bindsUid       : {UID}
+         child body           : CExpr 
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative CoeArg:
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative ImplsApp:
+         child func           : CExpr 
+         child uid            : {ImplsVarId}
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative ImplsLam:
+         child uid            : {ImplsVarId}
+         child body           : CExpr 
+         visit 0:
+            local isTopApp    : {Bool}
+            local isTopTup    : _
+            local whatBelow   : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+      alternative Ann:
+         child ann            : CExprAnn 
+         child expr           : CExpr 
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExpr :: CExpr ->
+             T_CExpr
+sem_CExpr (CExpr_Var _ref) =
+    (sem_CExpr_Var _ref)
+sem_CExpr (CExpr_Int _int) =
+    (sem_CExpr_Int _int)
+sem_CExpr (CExpr_Char _char) =
+    (sem_CExpr_Char _char)
+sem_CExpr (CExpr_String _str) =
+    (sem_CExpr_String _str)
+sem_CExpr (CExpr_Integer _integer) =
+    (sem_CExpr_Integer _integer)
+sem_CExpr (CExpr_Tup _tag) =
+    (sem_CExpr_Tup _tag)
+sem_CExpr (CExpr_Let _categ _binds _body) =
+    (sem_CExpr_Let _categ (sem_CBindL _binds) (sem_CExpr _body))
+sem_CExpr (CExpr_App _func _arg) =
+    (sem_CExpr_App (sem_CExpr _func) (sem_CBound _arg))
+sem_CExpr (CExpr_Lam _bind _body) =
+    (sem_CExpr_Lam (sem_CBind _bind) (sem_CExpr _body))
+sem_CExpr (CExpr_Case _expr _alts _dflt) =
+    (sem_CExpr_Case (sem_CExpr _expr) (sem_CAltL _alts) (sem_CExpr _dflt))
+sem_CExpr (CExpr_CaseAltFail _failReason _errorExpr) =
+    (sem_CExpr_CaseAltFail _failReason (sem_CExpr _errorExpr))
+sem_CExpr (CExpr_TupDel _expr _tag _nm _offset) =
+    (sem_CExpr_TupDel (sem_CExpr _expr) _tag _nm (sem_CExpr _offset))
+sem_CExpr (CExpr_TupIns _expr _tag _nm _offset _fldExpr) =
+    (sem_CExpr_TupIns (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
+sem_CExpr (CExpr_TupUpd _expr _tag _nm _offset _fldExpr) =
+    (sem_CExpr_TupUpd (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
+sem_CExpr (CExpr_FFI _callconv _safety _impEnt _ty) =
+    (sem_CExpr_FFI _callconv _safety _impEnt _ty)
+sem_CExpr (CExpr_Dbg _info) =
+    (sem_CExpr_Dbg _info)
+sem_CExpr (CExpr_Hole _uid) =
+    (sem_CExpr_Hole _uid)
+sem_CExpr (CExpr_HoleLet _bindsUid _body) =
+    (sem_CExpr_HoleLet _bindsUid (sem_CExpr _body))
+sem_CExpr (CExpr_CoeArg) =
+    (sem_CExpr_CoeArg)
+sem_CExpr (CExpr_ImplsApp _func _uid) =
+    (sem_CExpr_ImplsApp (sem_CExpr _func) _uid)
+sem_CExpr (CExpr_ImplsLam _uid _body) =
+    (sem_CExpr_ImplsLam _uid (sem_CExpr _body))
+sem_CExpr (CExpr_Ann _ann _expr) =
+    (sem_CExpr_Ann (sem_CExprAnn _ann) (sem_CExpr _expr))
+-- semantic domain
+type T_CExpr = CVarReplNmMp ->
+               CVarIntroMp ->
+               EvalCtx ->
+               Int ->
+               CVarIntroMp ->
+               Bool ->
+               Bool ->
+               Bool ->
+               LamArgMp ->
+               FvSMp ->
+               FvS ->
+               Int ->
+               (Maybe Int) ->
+               FvS ->
+               WhatExpr ->
+               ( AppFunKind,LamArgMp,CExpr,Env,FvS,Int,Int,(Maybe [HsName]),(Maybe HsName),WhatExpr)
+sem_CExpr_Var :: ACoreBindRef ->
+                 T_CExpr
+sem_CExpr_Var ref_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _mbVar :: (Maybe HsName)
+              _lhsOlevOf :: Int
+              _lhsOfvS :: FvS
+              _nm :: HsName
+              _nmAsp :: HsName
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOcTrf :: CExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOgUniq :: Int
+              _lhsOmbVar :: (Maybe HsName)
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 13, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_Fun ref_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 21, column 17)
+              _mbVar =
+                  Just _nm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 56, column 17)
+              _lhsOlevOf =
+                  fvLev _nm _lhsIcvarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 7, column 17)
+              _lhsOfvS =
+                  Set.singleton _nm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 15, column 17)
+              _nm =
+                  acbrefNm ref_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 15, column 17)
+              _nmAsp =
+                  mkHNm ref_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 52, column 17)
+              _whatBelow =
+                  ExprIsVar _nm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 132, column 17)
+              _lhsOcTrf =
+                  let  r n = fvVarRepl _lhsIargMp n
+                       v1 = r _nm
+                       mk as = acoreApp v1 $ [(r a) | (a,cvi) <- as]
+                       v2 = maybe v1 mk $ Map.lookup _nm $ _lhsIlamArgMp
+                  in   v2
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- self rule
+              _cTrf =
+                  CExpr_Var ref_
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOmbVar =
+                  _mbVar
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Int :: Int ->
+                 T_CExpr
+sem_CExpr_Int int_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 53, column 17)
+              _whatBelow =
+                  ExprIsInt int_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_Int int_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Char :: Char ->
+                  T_CExpr
+sem_CExpr_Char char_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
+              _whatBelow =
+                  ExprIsOtherWHNF
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_Char char_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_String :: String ->
+                    T_CExpr
+sem_CExpr_String str_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 65, column 17)
+              _levOf =
+                  cLevIntern
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
+              _whatBelow =
+                  ExprIsOtherWHNF
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_String str_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Integer :: Integer ->
+                     T_CExpr
+sem_CExpr_Integer integer_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
+              _whatBelow =
+                  ExprIsOtherWHNF
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_Integer integer_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Tup :: CTag ->
+                 T_CExpr
+sem_CExpr_Tup tag_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 11, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_Tag tag_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 64, column 17)
+              _levOf =
+                  cLevModule
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 55, column 25)
+              _whatBelow =
+                  ExprIsTup tag_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_Tup tag_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Let :: CBindCateg ->
+                 T_CBindL ->
+                 T_CExpr ->
+                 T_CExpr
+sem_CExpr_Let categ_ binds_ body_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _bindsOlev :: Int
+              _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _bindsOcvarIntroMp :: CVarIntroMp
+              _bodyOcvarIntroMp :: CVarIntroMp
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _bodyOmbCtxCount :: (Maybe Int)
+              _bodyOisDictClass :: Bool
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _bindsOargMp :: CVarReplNmMp
+              _bindsOevalCtx :: EvalCtx
+              _bindsOgUniq :: Int
+              _bindsOintroCVarIntroMp :: CVarIntroMp
+              _bindsOisGlobal :: Bool
+              _bindsOlamArgMp :: LamArgMp
+              _bindsOlamFvSMp :: FvSMp
+              _bindsOlamS :: FvS
+              _bindsOletBindingsCateg :: CBindCateg
+              _bindsOvarS :: FvS
+              _bodyOargMp :: CVarReplNmMp
+              _bodyOevalCtx :: EvalCtx
+              _bodyOgUniq :: Int
+              _bodyOintroCVarIntroMp :: CVarIntroMp
+              _bodyOisTopApp :: Bool
+              _bodyOisTopTup :: Bool
+              _bodyOlamArgMp :: LamArgMp
+              _bodyOlamFvSMp :: FvSMp
+              _bodyOlamS :: FvS
+              _bodyOlev :: Int
+              _bodyOvarS :: FvS
+              _bodyOwhatAbove :: WhatExpr
+              _bindsIbindLamArgMp :: LamArgMp
+              _bindsIbindLamS :: FvS
+              _bindsIbindVarS :: FvS
+              _bindsIbindsIntroCVarIntroMp :: CVarIntroMp
+              _bindsIcTrf :: CBindL
+              _bindsIcvarIntroExprMp :: CVarIntroMp
+              _bindsIenvUp :: Env
+              _bindsIfvS :: FvS
+              _bindsIfvSMp :: FvSMp
+              _bindsIgUniq :: Int
+              _bindsIlevOf :: Int
+              _bindsInmL :: ([HsName])
+              _bodyIappFunKind :: AppFunKind
+              _bodyIbindLamArgMp :: LamArgMp
+              _bodyIcTrf :: CExpr
+              _bodyIenvUp :: Env
+              _bodyIfvS :: FvS
+              _bodyIgUniq :: Int
+              _bodyIlevOf :: Int
+              _bodyImbLam :: (Maybe [HsName])
+              _bodyImbVar :: (Maybe HsName)
+              _bodyIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevLet.ag"(line 2, column 17)
+              _bindsOlev =
+                  _lhsIlev + 1
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 18, column 17)
+              _varS =
+                  _lhsIvarS `Set.union` _bindsIbindVarS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 18, column 17)
+              _lamS =
+                  _lhsIlamS `Set.union` _bindsIbindLamS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 21, column 17)
+              _maxBindLev =
+                  fvsLev _lhsIcvarIntroMp cLevModule _bindsIfvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
+              __tup3 =
+                  case categ_ of
+                      CBindCateg_Strict -> (const _lhsIlev,_lhsIcvarIntroMp)
+                      CBindCateg_Rec    -> ( const _maxBindLev
+                                           , Map.map (\cvi -> cvi {cviLev = _maxBindLev}) _bindsIcvarIntroExprMp
+                                               `Map.union` _lhsIcvarIntroMp
+                                           )
+                      _                 -> (id,_lhsIcvarIntroMp)
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
+              (_strLev,_) =
+                  __tup3
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 22, column 17)
+              (_,_bindsOcvarIntroMp) =
+                  __tup3
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 30, column 17)
+              _bodyOcvarIntroMp =
+                  Map.map (\cvi -> cvi {cviLev = _strLev $ cviLev cvi}) _bindsIcvarIntroExprMp `Map.union` _lhsIcvarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 42, column 17)
+              _introCVarIntroMp =
+                  Map.map (\cvi -> cvi {cviLev = _lhsIlev}) _bindsIbindsIntroCVarIntroMp `Map.union` _lhsIintroCVarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 63, column 17)
+              _levOf =
+                  fvsLev _lhsIcvarIntroMp cLevModule _fvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 6, column 17)
+              _fvS =
+                  (_bodyIfvS `Set.union` _bindsIfvS) `Set.difference` Set.fromList _bindsInmL
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 4, column 17)
+              _letBindingsCateg =
+                  categ_
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 78, column 17)
+              _isTopLet =
+                  whatExprIsBind _lhsIwhatAbove
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 109, column 17)
+              _evalCtx =
+                  if categ_ == CBindCateg_Strict
+                  then EvalCtx_Eval
+                  else EvalCtx_Thunk
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 10, column 17)
+              _isGlobal =
+                  _lhsIlev == cLevModule
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 63, column 17)
+              _lamFvSMp =
+                  (let  start varS = fvsClosure _bindsIbindLamS _lhsIlamS varS _lhsIlamFvSMp _bindsIfvSMp
+                   in   case categ_ of
+                          CBindCateg_Rec
+                            ->  fvsTransClosure lm m
+                            where (m,lm)  = start (_lhsIvarS `Set.union` _bindsIbindVarS)
+                          _ ->  m
+                            where (m,_)   = start _lhsIvarS
+                  )
+                  `Map.union` _lhsIlamFvSMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 114, column 17)
+              _lamArgMp =
+                  _bindsIbindLamArgMp `Map.union` _lhsIlamArgMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 185, column 11)
+              _bodyOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 186, column 11)
+              _bodyOisDictClass =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 195, column 12)
+              _lhsOenvUp =
+                  Map.union _bindsIenvUp _bodyIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _bindsIbindLamArgMp `Map.union` _bodyIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _fvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_Let categ_ _bindsIcTrf _bodyIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _bodyIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _bindsOargMp =
+                  _lhsIargMp
+              -- copy rule (from local)
+              _bindsOevalCtx =
+                  _evalCtx
+              -- copy rule (down)
+              _bindsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _bindsOintroCVarIntroMp =
+                  _introCVarIntroMp
+              -- copy rule (from local)
+              _bindsOisGlobal =
+                  _isGlobal
+              -- copy rule (from local)
+              _bindsOlamArgMp =
+                  _lamArgMp
+              -- copy rule (from local)
+              _bindsOlamFvSMp =
+                  _lamFvSMp
+              -- copy rule (from local)
+              _bindsOlamS =
+                  _lamS
+              -- copy rule (from local)
+              _bindsOletBindingsCateg =
+                  _letBindingsCateg
+              -- copy rule (from local)
+              _bindsOvarS =
+                  _varS
+              -- copy rule (down)
+              _bodyOargMp =
+                  _lhsIargMp
+              -- copy rule (from local)
+              _bodyOevalCtx =
+                  _evalCtx
+              -- copy rule (chain)
+              _bodyOgUniq =
+                  _bindsIgUniq
+              -- copy rule (from local)
+              _bodyOintroCVarIntroMp =
+                  _introCVarIntroMp
+              -- copy rule (from local)
+              _bodyOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _bodyOisTopTup =
+                  _isTopTup
+              -- copy rule (from local)
+              _bodyOlamArgMp =
+                  _lamArgMp
+              -- copy rule (from local)
+              _bodyOlamFvSMp =
+                  _lamFvSMp
+              -- copy rule (from local)
+              _bodyOlamS =
+                  _lamS
+              -- copy rule (down)
+              _bodyOlev =
+                  _lhsIlev
+              -- copy rule (from local)
+              _bodyOvarS =
+                  _varS
+              -- copy rule (from local)
+              _bodyOwhatAbove =
+                  _whatAbove
+              ( _bindsIbindLamArgMp,_bindsIbindLamS,_bindsIbindVarS,_bindsIbindsIntroCVarIntroMp,_bindsIcTrf,_bindsIcvarIntroExprMp,_bindsIenvUp,_bindsIfvS,_bindsIfvSMp,_bindsIgUniq,_bindsIlevOf,_bindsInmL) =
+                  binds_ _bindsOargMp _bindsOcvarIntroMp _bindsOevalCtx _bindsOgUniq _bindsOintroCVarIntroMp _bindsOisGlobal _bindsOlamArgMp _bindsOlamFvSMp _bindsOlamS _bindsOletBindingsCateg _bindsOlev _bindsOvarS
+              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
+                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_App :: T_CExpr ->
+                 T_CBound ->
+                 T_CExpr
+sem_CExpr_App func_ arg_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _argOnm :: HsName
+              _funcOisTopApp :: Bool
+              _argOisTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _argOevalCtx :: EvalCtx
+              _argOaspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _funcOargMp :: CVarReplNmMp
+              _funcOcvarIntroMp :: CVarIntroMp
+              _funcOevalCtx :: EvalCtx
+              _funcOgUniq :: Int
+              _funcOintroCVarIntroMp :: CVarIntroMp
+              _funcOisDictClass :: Bool
+              _funcOisTopTup :: Bool
+              _funcOlamArgMp :: LamArgMp
+              _funcOlamFvSMp :: FvSMp
+              _funcOlamS :: FvS
+              _funcOlev :: Int
+              _funcOmbCtxCount :: (Maybe Int)
+              _funcOvarS :: FvS
+              _funcOwhatAbove :: WhatExpr
+              _argOargMp :: CVarReplNmMp
+              _argOcvarIntroMp :: CVarIntroMp
+              _argOgUniq :: Int
+              _argOintroCVarIntroMp :: CVarIntroMp
+              _argOisDictClass :: Bool
+              _argOisGlobal :: Bool
+              _argOisTopTup :: Bool
+              _argOlamArgMp :: LamArgMp
+              _argOlamFvSMp :: FvSMp
+              _argOlamS :: FvS
+              _argOletBindingsCateg :: CBindCateg
+              _argOlev :: Int
+              _argOmbCtxCount :: (Maybe Int)
+              _argOvarS :: FvS
+              _funcIappFunKind :: AppFunKind
+              _funcIbindLamArgMp :: LamArgMp
+              _funcIcTrf :: CExpr
+              _funcIenvUp :: Env
+              _funcIfvS :: FvS
+              _funcIgUniq :: Int
+              _funcIlevOf :: Int
+              _funcImbLam :: (Maybe [HsName])
+              _funcImbVar :: (Maybe HsName)
+              _funcIwhatBelow :: WhatExpr
+              _argIbindLamArgMp :: LamArgMp
+              _argIbindLamS :: FvS
+              _argIbindVarS :: FvS
+              _argIbindsIntroCVarIntroMp :: CVarIntroMp
+              _argIcTrf :: CBound
+              _argIcvarIntroExprMp :: CVarIntroMp
+              _argIenvUp :: Env
+              _argIfvS :: FvS
+              _argIfvSMp :: FvSMp
+              _argIgUniq :: Int
+              _argIgathAspBindLamArgMp :: (ACoreBindAspMp AspBindLamArgInfo)
+              _argIlevOf :: Int
+              _argInmL :: ([HsName])
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 14, column 17)
+              _lhsOappFunKind =
+                  _funcIappFunKind
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 57, column 17)
+              _levOf =
+                  _funcIlevOf `max` _argIlevOf
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 8, column 17)
+              _fvS =
+                  _funcIfvS `Set.union` _argIfvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 7, column 17)
+              _argOnm =
+                  hsnUnknown
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 6, column 33)
+              _letBindingsCateg =
+                  acoreBindcategPlain
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 14, column 17)
+              _funcOisTopApp =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 15, column 17)
+              _argOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 54, column 17)
+              _whatBelow =
+                  maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 73, column 17)
+              _whatAbove =
+                  maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 80, column 17)
+              _isTopApp' =
+                  isNothing $ whatExprMbApp _lhsIwhatAbove
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 115, column 17)
+              _argOevalCtx =
+                  EvalCtx_Thunk
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)
+              _isGlobal =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 99, column 25)
+              _argOaspBindLamArgMp =
+                  Map.empty
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _funcIbindLamArgMp `Map.union` _argIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _fvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_App _funcIcTrf _argIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _argIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _funcOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _funcOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _funcOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _funcOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _funcOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _funcOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _funcOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _funcOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _funcOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _funcOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _funcOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _funcOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _funcOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _funcOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _argOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _argOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (chain)
+              _argOgUniq =
+                  _funcIgUniq
+              -- copy rule (down)
+              _argOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _argOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _argOisGlobal =
+                  _isGlobal
+              -- copy rule (from local)
+              _argOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _argOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _argOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _argOlamS =
+                  _lhsIlamS
+              -- copy rule (from local)
+              _argOletBindingsCateg =
+                  _letBindingsCateg
+              -- copy rule (down)
+              _argOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _argOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _argOvarS =
+                  _lhsIvarS
+              ( _funcIappFunKind,_funcIbindLamArgMp,_funcIcTrf,_funcIenvUp,_funcIfvS,_funcIgUniq,_funcIlevOf,_funcImbLam,_funcImbVar,_funcIwhatBelow) =
+                  func_ _funcOargMp _funcOcvarIntroMp _funcOevalCtx _funcOgUniq _funcOintroCVarIntroMp _funcOisDictClass _funcOisTopApp _funcOisTopTup _funcOlamArgMp _funcOlamFvSMp _funcOlamS _funcOlev _funcOmbCtxCount _funcOvarS _funcOwhatAbove
+              ( _argIbindLamArgMp,_argIbindLamS,_argIbindVarS,_argIbindsIntroCVarIntroMp,_argIcTrf,_argIcvarIntroExprMp,_argIenvUp,_argIfvS,_argIfvSMp,_argIgUniq,_argIgathAspBindLamArgMp,_argIlevOf,_argInmL) =
+                  arg_ _argOargMp _argOaspBindLamArgMp _argOcvarIntroMp _argOevalCtx _argOgUniq _argOintroCVarIntroMp _argOisDictClass _argOisGlobal _argOisTopApp _argOisTopTup _argOlamArgMp _argOlamFvSMp _argOlamS _argOletBindingsCateg _argOlev _argOmbCtxCount _argOnm _argOvarS
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Lam :: T_CBind ->
+                 T_CExpr ->
+                 T_CExpr
+sem_CExpr_Lam bind_ body_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _bodyOcvarIntroMp :: CVarIntroMp
+              _bodyOintroCVarIntroMp :: CVarIntroMp
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _bodyOmbCtxCount :: (Maybe Int)
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _bindOargMp :: CVarReplNmMp
+              _bindOcvarIntroMp :: CVarIntroMp
+              _bindOevalCtx :: EvalCtx
+              _bindOgUniq :: Int
+              _bindOintroCVarIntroMp :: CVarIntroMp
+              _bindOisGlobal :: Bool
+              _bindOlamArgMp :: LamArgMp
+              _bindOlamFvSMp :: FvSMp
+              _bindOlamS :: FvS
+              _bindOletBindingsCateg :: CBindCateg
+              _bindOlev :: Int
+              _bindOvarS :: FvS
+              _bodyOargMp :: CVarReplNmMp
+              _bodyOevalCtx :: EvalCtx
+              _bodyOgUniq :: Int
+              _bodyOisDictClass :: Bool
+              _bodyOisTopApp :: Bool
+              _bodyOisTopTup :: Bool
+              _bodyOlamArgMp :: LamArgMp
+              _bodyOlamFvSMp :: FvSMp
+              _bodyOlamS :: FvS
+              _bodyOlev :: Int
+              _bodyOvarS :: FvS
+              _bodyOwhatAbove :: WhatExpr
+              _bindIbindLamArgMp :: LamArgMp
+              _bindIbindLamS :: FvS
+              _bindIbindVarS :: FvS
+              _bindIbindsIntroCVarIntroMp :: CVarIntroMp
+              _bindIcTrf :: CBind
+              _bindIcvarIntroExprMp :: CVarIntroMp
+              _bindIenvUp :: Env
+              _bindIfvS :: FvS
+              _bindIfvSMp :: FvSMp
+              _bindIgUniq :: Int
+              _bindIlevOf :: Int
+              _bindInm :: HsName
+              _bindInmL :: ([HsName])
+              _bodyIappFunKind :: AppFunKind
+              _bodyIbindLamArgMp :: LamArgMp
+              _bodyIcTrf :: CExpr
+              _bodyIenvUp :: Env
+              _bodyIfvS :: FvS
+              _bodyIgUniq :: Int
+              _bodyIlevOf :: Int
+              _bodyImbLam :: (Maybe [HsName])
+              _bodyImbVar :: (Maybe HsName)
+              _bodyIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 4, column 17)
+              _lhsOmbLam =
+                  Just $ maybe [_argNm] (_argNm:) _bodyImbLam
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 20, column 17)
+              _varS =
+                  _argNm `Set.insert` _lhsIvarS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 2, column 17)
+              _cvi =
+                  CVarIntro
+                    { cviLev  = _lev
+                    }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 20, column 17)
+              _bodyOcvarIntroMp =
+                  Map.insert _argNm _cvi _lhsIcvarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 41, column 17)
+              _bodyOintroCVarIntroMp =
+                  Map.insert _argNm _cvi _lhsIintroCVarIntroMp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 62, column 17)
+              _levOf =
+                  fvsLev _lhsIcvarIntroMp cLevModule _bodyIfvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 5, column 17)
+              _fvS =
+                  _argNm `Set.delete` _bodyIfvS
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 19, column 17)
+              _argNm =
+                  _bindInm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 6, column 33)
+              _letBindingsCateg =
+                  acoreBindcategPlain
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 51, column 17)
+              _whatBelow =
+                  maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 69, column 17)
+              _whatAbove =
+                  case _lhsIwhatAbove of
+                      ExprIsLam a mbnm    -> ExprIsLam (a + 1) mbnm
+                      ExprIsBind nm       -> ExprIsLam 1       (Just nm)
+                      _                   -> ExprIsLam 1       Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 79, column 17)
+              _isTopLam =
+                  not $ whatExprIsLam _lhsIwhatAbove
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevLamPer1Lam.ag"(line 2, column 17)
+              _lev =
+                  _lhsIlev + 1
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)
+              _isGlobal =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 182, column 11)
+              _bodyOmbCtxCount =
+                  do { n <- _lhsImbCtxCount
+                     ; return (n+1)
+                     }
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 196, column 12)
+              _lhsOenvUp =
+                  _bodyIenvUp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _bindIbindLamArgMp `Map.union` _bodyIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _fvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_Lam _bindIcTrf _bodyIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _bodyIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _bindOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _bindOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _bindOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _bindOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _bindOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (from local)
+              _bindOisGlobal =
+                  _isGlobal
+              -- copy rule (down)
+              _bindOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bindOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bindOlamS =
+                  _lhsIlamS
+              -- copy rule (from local)
+              _bindOletBindingsCateg =
+                  _letBindingsCateg
+              -- copy rule (from local)
+              _bindOlev =
+                  _lev
+              -- copy rule (from local)
+              _bindOvarS =
+                  _varS
+              -- copy rule (down)
+              _bodyOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _bodyOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _bodyOgUniq =
+                  _bindIgUniq
+              -- copy rule (down)
+              _bodyOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _bodyOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _bodyOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _bodyOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bodyOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bodyOlamS =
+                  _lhsIlamS
+              -- copy rule (from local)
+              _bodyOlev =
+                  _lev
+              -- copy rule (from local)
+              _bodyOvarS =
+                  _varS
+              -- copy rule (from local)
+              _bodyOwhatAbove =
+                  _whatAbove
+              ( _bindIbindLamArgMp,_bindIbindLamS,_bindIbindVarS,_bindIbindsIntroCVarIntroMp,_bindIcTrf,_bindIcvarIntroExprMp,_bindIenvUp,_bindIfvS,_bindIfvSMp,_bindIgUniq,_bindIlevOf,_bindInm,_bindInmL) =
+                  bind_ _bindOargMp _bindOcvarIntroMp _bindOevalCtx _bindOgUniq _bindOintroCVarIntroMp _bindOisGlobal _bindOlamArgMp _bindOlamFvSMp _bindOlamS _bindOletBindingsCateg _bindOlev _bindOvarS
+              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
+                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Case :: T_CExpr ->
+                  T_CAltL ->
+                  T_CExpr ->
+                  T_CExpr
+sem_CExpr_Case expr_ alts_ dflt_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOisDictClass :: Bool
+              _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _altsOargMp :: CVarReplNmMp
+              _altsOcvarIntroMp :: CVarIntroMp
+              _altsOevalCtx :: EvalCtx
+              _altsOgUniq :: Int
+              _altsOintroCVarIntroMp :: CVarIntroMp
+              _altsOlamArgMp :: LamArgMp
+              _altsOlamFvSMp :: FvSMp
+              _altsOlamS :: FvS
+              _altsOlev :: Int
+              _altsOvarS :: FvS
+              _dfltOargMp :: CVarReplNmMp
+              _dfltOcvarIntroMp :: CVarIntroMp
+              _dfltOevalCtx :: EvalCtx
+              _dfltOgUniq :: Int
+              _dfltOintroCVarIntroMp :: CVarIntroMp
+              _dfltOisDictClass :: Bool
+              _dfltOisTopApp :: Bool
+              _dfltOisTopTup :: Bool
+              _dfltOlamArgMp :: LamArgMp
+              _dfltOlamFvSMp :: FvSMp
+              _dfltOlamS :: FvS
+              _dfltOlev :: Int
+              _dfltOmbCtxCount :: (Maybe Int)
+              _dfltOvarS :: FvS
+              _dfltOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              _altsIcTrf :: CAltL
+              _altsIfvS :: FvS
+              _altsIgUniq :: Int
+              _altsIlevOf :: Int
+              _dfltIappFunKind :: AppFunKind
+              _dfltIbindLamArgMp :: LamArgMp
+              _dfltIcTrf :: CExpr
+              _dfltIenvUp :: Env
+              _dfltIfvS :: FvS
+              _dfltIgUniq :: Int
+              _dfltIlevOf :: Int
+              _dfltImbLam :: (Maybe [HsName])
+              _dfltImbVar :: (Maybe HsName)
+              _dfltIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 58, column 17)
+              _levOf =
+                  _exprIlevOf `max` _altsIlevOf `max` _dfltIlevOf
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp `Map.union` _dfltIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_Case _exprIcTrf _altsIcTrf _dfltIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _dfltIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _exprOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _exprOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _altsOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _altsOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _altsOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _altsOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _altsOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _altsOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _altsOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _altsOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _altsOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _altsOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _dfltOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _dfltOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _dfltOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _dfltOgUniq =
+                  _altsIgUniq
+              -- copy rule (down)
+              _dfltOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _dfltOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _dfltOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _dfltOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _dfltOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _dfltOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _dfltOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _dfltOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _dfltOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _dfltOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _dfltOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+              ( _altsIcTrf,_altsIfvS,_altsIgUniq,_altsIlevOf) =
+                  alts_ _altsOargMp _altsOcvarIntroMp _altsOevalCtx _altsOgUniq _altsOintroCVarIntroMp _altsOlamArgMp _altsOlamFvSMp _altsOlamS _altsOlev _altsOvarS
+              ( _dfltIappFunKind,_dfltIbindLamArgMp,_dfltIcTrf,_dfltIenvUp,_dfltIfvS,_dfltIgUniq,_dfltIlevOf,_dfltImbLam,_dfltImbVar,_dfltIwhatBelow) =
+                  dflt_ _dfltOargMp _dfltOcvarIntroMp _dfltOevalCtx _dfltOgUniq _dfltOintroCVarIntroMp _dfltOisDictClass _dfltOisTopApp _dfltOisTopTup _dfltOlamArgMp _dfltOlamFvSMp _dfltOlamS _dfltOlev _dfltOmbCtxCount _dfltOvarS _dfltOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_CaseAltFail :: CaseAltFailReason ->
+                         T_CExpr ->
+                         T_CExpr
+sem_CExpr_CaseAltFail failReason_ errorExpr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOappFunKind :: AppFunKind
+              _lhsOgUniq :: Int
+              _lhsOmbLam :: (Maybe [HsName])
+              _lhsOmbVar :: (Maybe HsName)
+              _lhsOwhatBelow :: WhatExpr
+              _errorExprOargMp :: CVarReplNmMp
+              _errorExprOcvarIntroMp :: CVarIntroMp
+              _errorExprOevalCtx :: EvalCtx
+              _errorExprOgUniq :: Int
+              _errorExprOintroCVarIntroMp :: CVarIntroMp
+              _errorExprOisDictClass :: Bool
+              _errorExprOisTopApp :: Bool
+              _errorExprOisTopTup :: Bool
+              _errorExprOlamArgMp :: LamArgMp
+              _errorExprOlamFvSMp :: FvSMp
+              _errorExprOlamS :: FvS
+              _errorExprOlev :: Int
+              _errorExprOmbCtxCount :: (Maybe Int)
+              _errorExprOvarS :: FvS
+              _errorExprOwhatAbove :: WhatExpr
+              _errorExprIappFunKind :: AppFunKind
+              _errorExprIbindLamArgMp :: LamArgMp
+              _errorExprIcTrf :: CExpr
+              _errorExprIenvUp :: Env
+              _errorExprIfvS :: FvS
+              _errorExprIgUniq :: Int
+              _errorExprIlevOf :: Int
+              _errorExprImbLam :: (Maybe [HsName])
+              _errorExprImbVar :: (Maybe HsName)
+              _errorExprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _errorExprIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _errorExprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _errorExprIlevOf
+              -- self rule
+              _cTrf =
+                  CExpr_CaseAltFail failReason_ _errorExprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOappFunKind =
+                  _errorExprIappFunKind
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _errorExprIgUniq
+              -- copy rule (up)
+              _lhsOmbLam =
+                  _errorExprImbLam
+              -- copy rule (up)
+              _lhsOmbVar =
+                  _errorExprImbVar
+              -- copy rule (up)
+              _lhsOwhatBelow =
+                  _errorExprIwhatBelow
+              -- copy rule (down)
+              _errorExprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _errorExprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _errorExprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _errorExprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _errorExprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _errorExprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _errorExprOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _errorExprOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _errorExprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _errorExprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _errorExprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _errorExprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _errorExprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _errorExprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _errorExprOwhatAbove =
+                  _whatAbove
+              ( _errorExprIappFunKind,_errorExprIbindLamArgMp,_errorExprIcTrf,_errorExprIenvUp,_errorExprIfvS,_errorExprIgUniq,_errorExprIlevOf,_errorExprImbLam,_errorExprImbVar,_errorExprIwhatBelow) =
+                  errorExpr_ _errorExprOargMp _errorExprOcvarIntroMp _errorExprOevalCtx _errorExprOgUniq _errorExprOintroCVarIntroMp _errorExprOisDictClass _errorExprOisTopApp _errorExprOisTopTup _errorExprOlamArgMp _errorExprOlamFvSMp _errorExprOlamS _errorExprOlev _errorExprOmbCtxCount _errorExprOvarS _errorExprOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_TupDel :: T_CExpr ->
+                    CTag ->
+                    HsName ->
+                    T_CExpr ->
+                    T_CExpr
+sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOisDictClass :: Bool
+              _exprOisTopApp :: Bool
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _offsetOargMp :: CVarReplNmMp
+              _offsetOcvarIntroMp :: CVarIntroMp
+              _offsetOevalCtx :: EvalCtx
+              _offsetOgUniq :: Int
+              _offsetOintroCVarIntroMp :: CVarIntroMp
+              _offsetOisDictClass :: Bool
+              _offsetOisTopApp :: Bool
+              _offsetOisTopTup :: Bool
+              _offsetOlamArgMp :: LamArgMp
+              _offsetOlamFvSMp :: FvSMp
+              _offsetOlamS :: FvS
+              _offsetOlev :: Int
+              _offsetOmbCtxCount :: (Maybe Int)
+              _offsetOvarS :: FvS
+              _offsetOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              _offsetIappFunKind :: AppFunKind
+              _offsetIbindLamArgMp :: LamArgMp
+              _offsetIcTrf :: CExpr
+              _offsetIenvUp :: Env
+              _offsetIfvS :: FvS
+              _offsetIgUniq :: Int
+              _offsetIlevOf :: Int
+              _offsetImbLam :: (Maybe [HsName])
+              _offsetImbVar :: (Maybe HsName)
+              _offsetIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 59, column 17)
+              _levOf =
+                  _exprIlevOf `max` _offsetIlevOf
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
+              _exprOisTopTup =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp `Map.union` _offsetIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS `Set.union` _offsetIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_TupDel _exprIcTrf tag_ nm_ _offsetIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _offsetIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _exprOisTopApp =
+                  _isTopApp
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _offsetOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _offsetOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _offsetOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _offsetOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _offsetOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _offsetOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _offsetOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _offsetOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _offsetOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _offsetOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _offsetOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _offsetOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _offsetOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _offsetOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _offsetOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
+                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_TupIns :: T_CExpr ->
+                    CTag ->
+                    HsName ->
+                    T_CExpr ->
+                    T_CExpr ->
+                    T_CExpr
+sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOisDictClass :: Bool
+              _exprOisTopApp :: Bool
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _offsetOargMp :: CVarReplNmMp
+              _offsetOcvarIntroMp :: CVarIntroMp
+              _offsetOevalCtx :: EvalCtx
+              _offsetOgUniq :: Int
+              _offsetOintroCVarIntroMp :: CVarIntroMp
+              _offsetOisDictClass :: Bool
+              _offsetOisTopApp :: Bool
+              _offsetOisTopTup :: Bool
+              _offsetOlamArgMp :: LamArgMp
+              _offsetOlamFvSMp :: FvSMp
+              _offsetOlamS :: FvS
+              _offsetOlev :: Int
+              _offsetOmbCtxCount :: (Maybe Int)
+              _offsetOvarS :: FvS
+              _offsetOwhatAbove :: WhatExpr
+              _fldExprOargMp :: CVarReplNmMp
+              _fldExprOcvarIntroMp :: CVarIntroMp
+              _fldExprOevalCtx :: EvalCtx
+              _fldExprOgUniq :: Int
+              _fldExprOintroCVarIntroMp :: CVarIntroMp
+              _fldExprOisDictClass :: Bool
+              _fldExprOisTopApp :: Bool
+              _fldExprOisTopTup :: Bool
+              _fldExprOlamArgMp :: LamArgMp
+              _fldExprOlamFvSMp :: FvSMp
+              _fldExprOlamS :: FvS
+              _fldExprOlev :: Int
+              _fldExprOmbCtxCount :: (Maybe Int)
+              _fldExprOvarS :: FvS
+              _fldExprOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              _offsetIappFunKind :: AppFunKind
+              _offsetIbindLamArgMp :: LamArgMp
+              _offsetIcTrf :: CExpr
+              _offsetIenvUp :: Env
+              _offsetIfvS :: FvS
+              _offsetIgUniq :: Int
+              _offsetIlevOf :: Int
+              _offsetImbLam :: (Maybe [HsName])
+              _offsetImbVar :: (Maybe HsName)
+              _offsetIwhatBelow :: WhatExpr
+              _fldExprIappFunKind :: AppFunKind
+              _fldExprIbindLamArgMp :: LamArgMp
+              _fldExprIcTrf :: CExpr
+              _fldExprIenvUp :: Env
+              _fldExprIfvS :: FvS
+              _fldExprIgUniq :: Int
+              _fldExprIlevOf :: Int
+              _fldExprImbLam :: (Maybe [HsName])
+              _fldExprImbVar :: (Maybe HsName)
+              _fldExprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
+              _levOf =
+                  _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
+              _exprOisTopTup =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp `Map.union` _offsetIbindLamArgMp `Map.union` _fldExprIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_TupIns _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _fldExprIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _exprOisTopApp =
+                  _isTopApp
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _offsetOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _offsetOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _offsetOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _offsetOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _offsetOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _offsetOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _offsetOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _offsetOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _offsetOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _offsetOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _offsetOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _offsetOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _offsetOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _offsetOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _offsetOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _fldExprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _fldExprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _fldExprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _fldExprOgUniq =
+                  _offsetIgUniq
+              -- copy rule (down)
+              _fldExprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _fldExprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _fldExprOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _fldExprOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _fldExprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _fldExprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _fldExprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _fldExprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _fldExprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _fldExprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _fldExprOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
+                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
+              ( _fldExprIappFunKind,_fldExprIbindLamArgMp,_fldExprIcTrf,_fldExprIenvUp,_fldExprIfvS,_fldExprIgUniq,_fldExprIlevOf,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) =
+                  fldExpr_ _fldExprOargMp _fldExprOcvarIntroMp _fldExprOevalCtx _fldExprOgUniq _fldExprOintroCVarIntroMp _fldExprOisDictClass _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamArgMp _fldExprOlamFvSMp _fldExprOlamS _fldExprOlev _fldExprOmbCtxCount _fldExprOvarS _fldExprOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_TupUpd :: T_CExpr ->
+                    CTag ->
+                    HsName ->
+                    T_CExpr ->
+                    T_CExpr ->
+                    T_CExpr
+sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOisDictClass :: Bool
+              _exprOisTopApp :: Bool
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _offsetOargMp :: CVarReplNmMp
+              _offsetOcvarIntroMp :: CVarIntroMp
+              _offsetOevalCtx :: EvalCtx
+              _offsetOgUniq :: Int
+              _offsetOintroCVarIntroMp :: CVarIntroMp
+              _offsetOisDictClass :: Bool
+              _offsetOisTopApp :: Bool
+              _offsetOisTopTup :: Bool
+              _offsetOlamArgMp :: LamArgMp
+              _offsetOlamFvSMp :: FvSMp
+              _offsetOlamS :: FvS
+              _offsetOlev :: Int
+              _offsetOmbCtxCount :: (Maybe Int)
+              _offsetOvarS :: FvS
+              _offsetOwhatAbove :: WhatExpr
+              _fldExprOargMp :: CVarReplNmMp
+              _fldExprOcvarIntroMp :: CVarIntroMp
+              _fldExprOevalCtx :: EvalCtx
+              _fldExprOgUniq :: Int
+              _fldExprOintroCVarIntroMp :: CVarIntroMp
+              _fldExprOisDictClass :: Bool
+              _fldExprOisTopApp :: Bool
+              _fldExprOisTopTup :: Bool
+              _fldExprOlamArgMp :: LamArgMp
+              _fldExprOlamFvSMp :: FvSMp
+              _fldExprOlamS :: FvS
+              _fldExprOlev :: Int
+              _fldExprOmbCtxCount :: (Maybe Int)
+              _fldExprOvarS :: FvS
+              _fldExprOwhatAbove :: WhatExpr
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              _offsetIappFunKind :: AppFunKind
+              _offsetIbindLamArgMp :: LamArgMp
+              _offsetIcTrf :: CExpr
+              _offsetIenvUp :: Env
+              _offsetIfvS :: FvS
+              _offsetIgUniq :: Int
+              _offsetIlevOf :: Int
+              _offsetImbLam :: (Maybe [HsName])
+              _offsetImbVar :: (Maybe HsName)
+              _offsetIwhatBelow :: WhatExpr
+              _fldExprIappFunKind :: AppFunKind
+              _fldExprIbindLamArgMp :: LamArgMp
+              _fldExprIcTrf :: CExpr
+              _fldExprIenvUp :: Env
+              _fldExprIfvS :: FvS
+              _fldExprIgUniq :: Int
+              _fldExprIlevOf :: Int
+              _fldExprImbLam :: (Maybe [HsName])
+              _fldExprImbVar :: (Maybe HsName)
+              _fldExprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 61, column 17)
+              _levOf =
+                  _exprIlevOf `max` _offsetIlevOf `max` _fldExprIlevOf
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
+              _exprOisTopTup =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp `Map.union` _offsetIbindLamArgMp `Map.union` _fldExprIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _levOf
+              -- self rule
+              _cTrf =
+                  CExpr_TupUpd _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _fldExprIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _exprOisTopApp =
+                  _isTopApp
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _offsetOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _offsetOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _offsetOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _offsetOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _offsetOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _offsetOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _offsetOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _offsetOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _offsetOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _offsetOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _offsetOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _offsetOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _offsetOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _offsetOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _offsetOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _fldExprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _fldExprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _fldExprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _fldExprOgUniq =
+                  _offsetIgUniq
+              -- copy rule (down)
+              _fldExprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _fldExprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _fldExprOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _fldExprOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _fldExprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _fldExprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _fldExprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _fldExprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _fldExprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _fldExprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _fldExprOwhatAbove =
+                  _whatAbove
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
+                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
+              ( _fldExprIappFunKind,_fldExprIbindLamArgMp,_fldExprIcTrf,_fldExprIenvUp,_fldExprIfvS,_fldExprIgUniq,_fldExprIlevOf,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) =
+                  fldExpr_ _fldExprOargMp _fldExprOcvarIntroMp _fldExprOevalCtx _fldExprOgUniq _fldExprOintroCVarIntroMp _fldExprOisDictClass _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamArgMp _fldExprOlamFvSMp _fldExprOlamS _fldExprOlev _fldExprOmbCtxCount _fldExprOvarS _fldExprOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_FFI :: FFIWay ->
+                 String ->
+                 ForeignEnt ->
+                 Ty ->
+                 T_CExpr
+sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 12, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_FFI
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 56, column 25)
+              _whatBelow =
+                  ExprIsFFI
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_FFI callconv_ safety_ impEnt_ ty_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Dbg :: String ->
+                 T_CExpr
+sem_CExpr_Dbg info_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_Dbg info_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Hole :: UID ->
+                  T_CExpr
+sem_CExpr_Hole uid_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_Hole uid_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_HoleLet :: UID ->
+                     T_CExpr ->
+                     T_CExpr
+sem_CExpr_HoleLet bindsUid_ body_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _bodyOargMp :: CVarReplNmMp
+              _bodyOcvarIntroMp :: CVarIntroMp
+              _bodyOevalCtx :: EvalCtx
+              _bodyOgUniq :: Int
+              _bodyOintroCVarIntroMp :: CVarIntroMp
+              _bodyOisDictClass :: Bool
+              _bodyOisTopApp :: Bool
+              _bodyOisTopTup :: Bool
+              _bodyOlamArgMp :: LamArgMp
+              _bodyOlamFvSMp :: FvSMp
+              _bodyOlamS :: FvS
+              _bodyOlev :: Int
+              _bodyOmbCtxCount :: (Maybe Int)
+              _bodyOvarS :: FvS
+              _bodyOwhatAbove :: WhatExpr
+              _bodyIappFunKind :: AppFunKind
+              _bodyIbindLamArgMp :: LamArgMp
+              _bodyIcTrf :: CExpr
+              _bodyIenvUp :: Env
+              _bodyIfvS :: FvS
+              _bodyIgUniq :: Int
+              _bodyIlevOf :: Int
+              _bodyImbLam :: (Maybe [HsName])
+              _bodyImbVar :: (Maybe HsName)
+              _bodyIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _bodyIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _bodyIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _bodyIlevOf
+              -- self rule
+              _cTrf =
+                  CExpr_HoleLet bindsUid_ _bodyIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _bodyIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _bodyOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _bodyOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _bodyOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _bodyOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _bodyOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _bodyOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _bodyOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _bodyOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _bodyOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bodyOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bodyOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _bodyOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _bodyOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _bodyOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _bodyOwhatAbove =
+                  _whatAbove
+              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
+                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_CoeArg :: T_CExpr
+sem_CExpr_CoeArg =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExpr_CoeArg
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_ImplsApp :: T_CExpr ->
+                      ImplsVarId ->
+                      T_CExpr
+sem_CExpr_ImplsApp func_ uid_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _funcOargMp :: CVarReplNmMp
+              _funcOcvarIntroMp :: CVarIntroMp
+              _funcOevalCtx :: EvalCtx
+              _funcOgUniq :: Int
+              _funcOintroCVarIntroMp :: CVarIntroMp
+              _funcOisDictClass :: Bool
+              _funcOisTopApp :: Bool
+              _funcOisTopTup :: Bool
+              _funcOlamArgMp :: LamArgMp
+              _funcOlamFvSMp :: FvSMp
+              _funcOlamS :: FvS
+              _funcOlev :: Int
+              _funcOmbCtxCount :: (Maybe Int)
+              _funcOvarS :: FvS
+              _funcOwhatAbove :: WhatExpr
+              _funcIappFunKind :: AppFunKind
+              _funcIbindLamArgMp :: LamArgMp
+              _funcIcTrf :: CExpr
+              _funcIenvUp :: Env
+              _funcIfvS :: FvS
+              _funcIgUniq :: Int
+              _funcIlevOf :: Int
+              _funcImbLam :: (Maybe [HsName])
+              _funcImbVar :: (Maybe HsName)
+              _funcIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _funcIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _funcIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _funcIlevOf
+              -- self rule
+              _cTrf =
+                  CExpr_ImplsApp _funcIcTrf uid_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _funcIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _funcOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _funcOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _funcOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _funcOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _funcOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _funcOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _funcOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _funcOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _funcOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _funcOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _funcOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _funcOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _funcOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _funcOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _funcOwhatAbove =
+                  _whatAbove
+              ( _funcIappFunKind,_funcIbindLamArgMp,_funcIcTrf,_funcIenvUp,_funcIfvS,_funcIgUniq,_funcIlevOf,_funcImbLam,_funcImbVar,_funcIwhatBelow) =
+                  func_ _funcOargMp _funcOcvarIntroMp _funcOevalCtx _funcOgUniq _funcOintroCVarIntroMp _funcOisDictClass _funcOisTopApp _funcOisTopTup _funcOlamArgMp _funcOlamFvSMp _funcOlamS _funcOlev _funcOmbCtxCount _funcOvarS _funcOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_ImplsLam :: ImplsVarId ->
+                      T_CExpr ->
+                      T_CExpr
+sem_CExpr_ImplsLam uid_ body_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOmbLam :: (Maybe [HsName])
+              _lhsOappFunKind :: AppFunKind
+              _lhsOmbVar :: (Maybe HsName)
+              _isTopApp :: Bool
+              _whatAbove :: WhatExpr
+              _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOgUniq :: Int
+              _lhsOwhatBelow :: WhatExpr
+              _bodyOargMp :: CVarReplNmMp
+              _bodyOcvarIntroMp :: CVarIntroMp
+              _bodyOevalCtx :: EvalCtx
+              _bodyOgUniq :: Int
+              _bodyOintroCVarIntroMp :: CVarIntroMp
+              _bodyOisDictClass :: Bool
+              _bodyOisTopApp :: Bool
+              _bodyOisTopTup :: Bool
+              _bodyOlamArgMp :: LamArgMp
+              _bodyOlamFvSMp :: FvSMp
+              _bodyOlamS :: FvS
+              _bodyOlev :: Int
+              _bodyOmbCtxCount :: (Maybe Int)
+              _bodyOvarS :: FvS
+              _bodyOwhatAbove :: WhatExpr
+              _bodyIappFunKind :: AppFunKind
+              _bodyIbindLamArgMp :: LamArgMp
+              _bodyIcTrf :: CExpr
+              _bodyIenvUp :: Env
+              _bodyIfvS :: FvS
+              _bodyIgUniq :: Int
+              _bodyIlevOf :: Int
+              _bodyImbLam :: (Maybe [HsName])
+              _bodyImbVar :: (Maybe HsName)
+              _bodyIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
+              _lhsOmbLam =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
+              _lhsOappFunKind =
+                  AppFunKind_NoApp
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
+              _lhsOmbVar =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
+              _isTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
+              _isTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
+              _whatBelow =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _bodyIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _bodyIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _bodyIlevOf
+              -- self rule
+              _cTrf =
+                  CExpr_ImplsLam uid_ _bodyIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _bodyIgUniq
+              -- copy rule (from local)
+              _lhsOwhatBelow =
+                  _whatBelow
+              -- copy rule (down)
+              _bodyOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _bodyOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _bodyOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (down)
+              _bodyOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _bodyOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _bodyOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (from local)
+              _bodyOisTopApp =
+                  _isTopApp
+              -- copy rule (from local)
+              _bodyOisTopTup =
+                  _isTopTup
+              -- copy rule (down)
+              _bodyOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bodyOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bodyOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _bodyOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _bodyOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _bodyOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _bodyOwhatAbove =
+                  _whatAbove
+              ( _bodyIappFunKind,_bodyIbindLamArgMp,_bodyIcTrf,_bodyIenvUp,_bodyIfvS,_bodyIgUniq,_bodyIlevOf,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) =
+                  body_ _bodyOargMp _bodyOcvarIntroMp _bodyOevalCtx _bodyOgUniq _bodyOintroCVarIntroMp _bodyOisDictClass _bodyOisTopApp _bodyOisTopTup _bodyOlamArgMp _bodyOlamFvSMp _bodyOlamS _bodyOlev _bodyOmbCtxCount _bodyOvarS _bodyOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+sem_CExpr_Ann :: T_CExprAnn ->
+                 T_CExpr ->
+                 T_CExpr
+sem_CExpr_Ann ann_ expr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIevalCtx
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIisDictClass
+       _lhsIisTopApp
+       _lhsIisTopTup
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsImbCtxCount
+       _lhsIvarS
+       _lhsIwhatAbove ->
+         (let _lhsOenvUp :: Env
+              _lhsObindLamArgMp :: LamArgMp
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExpr
+              _lhsOappFunKind :: AppFunKind
+              _lhsOgUniq :: Int
+              _lhsOmbLam :: (Maybe [HsName])
+              _lhsOmbVar :: (Maybe HsName)
+              _lhsOwhatBelow :: WhatExpr
+              _annOargMp :: CVarReplNmMp
+              _annOcvarIntroMp :: CVarIntroMp
+              _annOgUniq :: Int
+              _annOintroCVarIntroMp :: CVarIntroMp
+              _annOlamArgMp :: LamArgMp
+              _annOlamFvSMp :: FvSMp
+              _annOlamS :: FvS
+              _annOlev :: Int
+              _annOvarS :: FvS
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOevalCtx :: EvalCtx
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOisDictClass :: Bool
+              _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _annIcTrf :: CExprAnn
+              _annIfvS :: FvS
+              _annIgUniq :: Int
+              _annIlevOf :: Int
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 198, column 12)
+              _lhsOenvUp =
+                  Map.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 106, column 39)
+              _lhsObindLamArgMp =
+                  _exprIbindLamArgMp
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _annIfvS `Set.union` _exprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _annIlevOf `max` _exprIlevOf
+              -- self rule
+              _cTrf =
+                  CExpr_Ann _annIcTrf _exprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOappFunKind =
+                  _exprIappFunKind
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _exprIgUniq
+              -- copy rule (up)
+              _lhsOmbLam =
+                  _exprImbLam
+              -- copy rule (up)
+              _lhsOmbVar =
+                  _exprImbVar
+              -- copy rule (up)
+              _lhsOwhatBelow =
+                  _exprIwhatBelow
+              -- copy rule (down)
+              _annOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _annOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _annOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _annOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _annOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _annOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _annOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _annOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _annOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOevalCtx =
+                  _lhsIevalCtx
+              -- copy rule (chain)
+              _exprOgUniq =
+                  _annIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOisDictClass =
+                  _lhsIisDictClass
+              -- copy rule (down)
+              _exprOisTopApp =
+                  _lhsIisTopApp
+              -- copy rule (down)
+              _exprOisTopTup =
+                  _lhsIisTopTup
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOmbCtxCount =
+                  _lhsImbCtxCount
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _exprOwhatAbove =
+                  _lhsIwhatAbove
+              ( _annIcTrf,_annIfvS,_annIgUniq,_annIlevOf) =
+                  ann_ _annOargMp _annOcvarIntroMp _annOgUniq _annOintroCVarIntroMp _annOlamArgMp _annOlamFvSMp _annOlamS _annOlev _annOvarS
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+          in  ( _lhsOappFunKind,_lhsObindLamArgMp,_lhsOcTrf,_lhsOenvUp,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow)))
+-- CExprAnn ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CExprAnn 
+         fvS                  : FvS
+         levOf                : Int
+   alternatives:
+      alternative Ty:
+         child ty             : {Ty}
+         visit 0:
+            local cTrf        : _
+      alternative Debug:
+         child info           : {String}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CExprAnn :: CExprAnn ->
+                T_CExprAnn
+sem_CExprAnn (CExprAnn_Ty _ty) =
+    (sem_CExprAnn_Ty _ty)
+sem_CExprAnn (CExprAnn_Debug _info) =
+    (sem_CExprAnn_Debug _info)
+-- semantic domain
+type T_CExprAnn = CVarReplNmMp ->
+                  CVarIntroMp ->
+                  Int ->
+                  CVarIntroMp ->
+                  LamArgMp ->
+                  FvSMp ->
+                  FvS ->
+                  Int ->
+                  FvS ->
+                  ( CExprAnn,FvS,Int,Int)
+sem_CExprAnn_Ty :: Ty ->
+                   T_CExprAnn
+sem_CExprAnn_Ty ty_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExprAnn
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExprAnn_Ty ty_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
+sem_CExprAnn_Debug :: String ->
+                      T_CExprAnn
+sem_CExprAnn_Debug info_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CExprAnn
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CExprAnn_Debug info_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
+-- CImport -----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CImport 
+   alternatives:
+      alternative Import:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CImport :: CImport ->
+               T_CImport
+sem_CImport (CImport_Import _nm) =
+    (sem_CImport_Import _nm)
+-- semantic domain
+type T_CImport = ( CImport)
+sem_CImport_Import :: HsName ->
+                      T_CImport
+sem_CImport_Import nm_ =
+    (let _lhsOcTrf :: CImport
+         -- self rule
+         _cTrf =
+             CImport_Import nm_
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CImportL ----------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CImportL 
+   alternatives:
+      alternative Cons:
+         child hd             : CImport 
+         child tl             : CImportL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CImportL :: CImportL ->
+                T_CImportL
+sem_CImportL list =
+    (Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list))
+-- semantic domain
+type T_CImportL = ( CImportL)
+sem_CImportL_Cons :: T_CImport ->
+                     T_CImportL ->
+                     T_CImportL
+sem_CImportL_Cons hd_ tl_ =
+    (let _lhsOcTrf :: CImportL
+         _hdIcTrf :: CImport
+         _tlIcTrf :: CImportL
+         -- self rule
+         _cTrf =
+             (:) _hdIcTrf _tlIcTrf
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+         ( _hdIcTrf) =
+             hd_
+         ( _tlIcTrf) =
+             tl_
+     in  ( _lhsOcTrf))
+sem_CImportL_Nil :: T_CImportL
+sem_CImportL_Nil =
+    (let _lhsOcTrf :: CImportL
+         -- self rule
+         _cTrf =
+             []
+         -- self rule
+         _lhsOcTrf =
+             _cTrf
+     in  ( _lhsOcTrf))
+-- CModule -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CModule 
+         fvS                  : FvS
+         levOf                : Int
+   alternatives:
+      alternative Mod:
+         child moduleNm       : {HsName}
+         child exports        : CExportL 
+         child imports        : CImportL 
+         child declMetas      : CDeclMetaL 
+         child expr           : CExpr 
+         visit 0:
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+-}
+-- cata
+sem_CModule :: CModule ->
+               T_CModule
+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 ->
+                 Int ->
+                 CVarIntroMp ->
+                 LamArgMp ->
+                 FvSMp ->
+                 FvS ->
+                 Int ->
+                 FvS ->
+                 ( CModule,FvS,Int,Int)
+sem_CModule_Mod :: HsName ->
+                   T_CExportL ->
+                   T_CImportL ->
+                   T_CDeclMetaL ->
+                   T_CExpr ->
+                   T_CModule
+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _exprOisTopApp :: Bool
+              _exprOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _exprOevalCtx :: EvalCtx
+              _exprOmbCtxCount :: (Maybe Int)
+              _exprOisDictClass :: Bool
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CModule
+              _lhsOgUniq :: Int
+              _exprOargMp :: CVarReplNmMp
+              _exprOcvarIntroMp :: CVarIntroMp
+              _exprOgUniq :: Int
+              _exprOintroCVarIntroMp :: CVarIntroMp
+              _exprOlamArgMp :: LamArgMp
+              _exprOlamFvSMp :: FvSMp
+              _exprOlamS :: FvS
+              _exprOlev :: Int
+              _exprOvarS :: FvS
+              _exprOwhatAbove :: WhatExpr
+              _exportsIcTrf :: CExportL
+              _importsIcTrf :: CImportL
+              _declMetasIcTrf :: CDeclMetaL
+              _exprIappFunKind :: AppFunKind
+              _exprIbindLamArgMp :: LamArgMp
+              _exprIcTrf :: CExpr
+              _exprIenvUp :: Env
+              _exprIfvS :: FvS
+              _exprIgUniq :: Int
+              _exprIlevOf :: Int
+              _exprImbLam :: (Maybe [HsName])
+              _exprImbVar :: (Maybe HsName)
+              _exprIwhatBelow :: WhatExpr
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 27, column 17)
+              _exprOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 27, column 17)
+              _exprOisTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 93, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 102, column 17)
+              _exprOevalCtx =
+                  EvalCtx_Eval
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 156, column 10)
+              _exprOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 157, column 10)
+              _exprOisDictClass =
+                  False
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _exprIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _exprIlevOf
+              -- self rule
+              _cTrf =
+                  CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _exprIgUniq
+              -- copy rule (down)
+              _exprOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _exprOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _exprOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _exprOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _exprOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _exprOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _exprOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _exprOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _exprOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _exprOwhatAbove =
+                  _whatAbove
+              ( _exportsIcTrf) =
+                  exports_
+              ( _importsIcTrf) =
+                  imports_
+              ( _declMetasIcTrf) =
+                  declMetas_
+              ( _exprIappFunKind,_exprIbindLamArgMp,_exprIcTrf,_exprIenvUp,_exprIfvS,_exprIgUniq,_exprIlevOf,_exprImbLam,_exprImbVar,_exprIwhatBelow) =
+                  expr_ _exprOargMp _exprOcvarIntroMp _exprOevalCtx _exprOgUniq _exprOintroCVarIntroMp _exprOisDictClass _exprOisTopApp _exprOisTopTup _exprOlamArgMp _exprOlamFvSMp _exprOlamS _exprOlev _exprOmbCtxCount _exprOvarS _exprOwhatAbove
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf)))
+-- CPat --------------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CPat 
+         fldNmL               : [HsName]
+         fvS                  : FvS
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Var:
+         child pnm            : {HsName}
+         visit 0:
+            local cTrf        : _
+      alternative Con:
+         child tag            : {CTag}
+         child rest           : CPatRest 
+         child binds          : CPatFldL 
+         visit 0:
+            local cTrf        : _
+      alternative Int:
+         child int            : {Int}
+         visit 0:
+            local cTrf        : _
+      alternative Char:
+         child char           : {Char}
+         visit 0:
+            local cTrf        : _
+      alternative BoolExpr:
+         child cexpr          : {CExpr}
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CPat :: CPat ->
+            T_CPat
+sem_CPat (CPat_Var _pnm) =
+    (sem_CPat_Var _pnm)
+sem_CPat (CPat_Con _tag _rest _binds) =
+    (sem_CPat_Con _tag (sem_CPatRest _rest) (sem_CPatFldL _binds))
+sem_CPat (CPat_Int _int) =
+    (sem_CPat_Int _int)
+sem_CPat (CPat_Char _char) =
+    (sem_CPat_Char _char)
+sem_CPat (CPat_BoolExpr _cexpr) =
+    (sem_CPat_BoolExpr _cexpr)
+-- semantic domain
+type T_CPat = CVarReplNmMp ->
+              CVarIntroMp ->
+              Int ->
+              CVarIntroMp ->
+              LamArgMp ->
+              FvSMp ->
+              FvS ->
+              Int ->
+              FvS ->
+              ( CPat,([HsName]),FvS,Int,Int,([HsName]))
+sem_CPat_Var :: HsName ->
+                T_CPat
+sem_CPat_Var pnm_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOnmL :: ([HsName])
+              _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CPat
+              _lhsOgUniq :: Int
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 28, column 17)
+              _lhsOnmL =
+                  [pnm_]
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  []
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CPat_Var pnm_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CPat_Con :: CTag ->
+                T_CPatRest ->
+                T_CPatFldL ->
+                T_CPat
+sem_CPat_Con tag_ rest_ binds_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOnmL :: ([HsName])
+              _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CPat
+              _lhsOgUniq :: Int
+              _restOargMp :: CVarReplNmMp
+              _restOcvarIntroMp :: CVarIntroMp
+              _restOgUniq :: Int
+              _restOintroCVarIntroMp :: CVarIntroMp
+              _restOlamArgMp :: LamArgMp
+              _restOlamFvSMp :: FvSMp
+              _restOlamS :: FvS
+              _restOlev :: Int
+              _restOvarS :: FvS
+              _bindsOargMp :: CVarReplNmMp
+              _bindsOcvarIntroMp :: CVarIntroMp
+              _bindsOgUniq :: Int
+              _bindsOintroCVarIntroMp :: CVarIntroMp
+              _bindsOlamArgMp :: LamArgMp
+              _bindsOlamFvSMp :: FvSMp
+              _bindsOlamS :: FvS
+              _bindsOlev :: Int
+              _bindsOvarS :: FvS
+              _restIcTrf :: CPatRest
+              _restIfvS :: FvS
+              _restIgUniq :: Int
+              _restIlevOf :: Int
+              _restInmL :: ([HsName])
+              _bindsIcTrf :: CPatFldL
+              _bindsIfldNmL :: ([HsName])
+              _bindsIfvS :: FvS
+              _bindsIgUniq :: Int
+              _bindsIlevOf :: Int
+              _bindsInmL :: ([HsName])
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 29, column 17)
+              _lhsOnmL =
+                  _restInmL ++ _bindsInmL
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  _bindsIfldNmL
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _restIfvS `Set.union` _bindsIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _restIlevOf `max` _bindsIlevOf
+              -- self rule
+              _cTrf =
+                  CPat_Con tag_ _restIcTrf _bindsIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _bindsIgUniq
+              -- copy rule (down)
+              _restOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _restOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _restOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _restOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _restOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _restOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _restOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _restOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _restOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _bindsOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _bindsOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (chain)
+              _bindsOgUniq =
+                  _restIgUniq
+              -- copy rule (down)
+              _bindsOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _bindsOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bindsOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bindsOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _bindsOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _bindsOvarS =
+                  _lhsIvarS
+              ( _restIcTrf,_restIfvS,_restIgUniq,_restIlevOf,_restInmL) =
+                  rest_ _restOargMp _restOcvarIntroMp _restOgUniq _restOintroCVarIntroMp _restOlamArgMp _restOlamFvSMp _restOlamS _restOlev _restOvarS
+              ( _bindsIcTrf,_bindsIfldNmL,_bindsIfvS,_bindsIgUniq,_bindsIlevOf,_bindsInmL) =
+                  binds_ _bindsOargMp _bindsOcvarIntroMp _bindsOgUniq _bindsOintroCVarIntroMp _bindsOlamArgMp _bindsOlamFvSMp _bindsOlamS _bindsOlev _bindsOvarS
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CPat_Int :: Int ->
+                T_CPat
+sem_CPat_Int int_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CPat
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  []
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CPat_Int int_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CPat_Char :: Char ->
+                 T_CPat
+sem_CPat_Char char_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CPat
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  []
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CPat_Char char_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CPat_BoolExpr :: CExpr ->
+                     T_CPat
+sem_CPat_BoolExpr cexpr_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CPat
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  []
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CPat_BoolExpr cexpr_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CPatFld -----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CPatFld 
+         fldNmL               : [HsName]
+         fvS                  : FvS
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Fld:
+         child lbl            : {HsName}
+         child offset         : CExpr 
+         child bind           : CBind 
+         child fldAnns        : CBindAnnL 
+         visit 0:
+            local fldNm       : _
+            local whatAbove   : {WhatExpr}
+            local cTrf        : _
+-}
+-- cata
+sem_CPatFld :: CPatFld ->
+               T_CPatFld
+sem_CPatFld (CPatFld_Fld _lbl _offset _bind _fldAnns) =
+    (sem_CPatFld_Fld _lbl (sem_CExpr _offset) (sem_CBind _bind) (sem_CBindAnnL _fldAnns))
+-- semantic domain
+type T_CPatFld = CVarReplNmMp ->
+                 CVarIntroMp ->
+                 Int ->
+                 CVarIntroMp ->
+                 LamArgMp ->
+                 FvSMp ->
+                 FvS ->
+                 Int ->
+                 FvS ->
+                 ( CPatFld,([HsName]),FvS,Int,Int,([HsName]))
+sem_CPatFld_Fld :: HsName ->
+                   T_CExpr ->
+                   T_CBind ->
+                   T_CBindAnnL ->
+                   T_CPatFld
+sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOnmL :: ([HsName])
+              _lhsOfldNmL :: ([HsName])
+              _bindOletBindingsCateg :: CBindCateg
+              _offsetOisTopApp :: Bool
+              _offsetOisTopTup :: Bool
+              _whatAbove :: WhatExpr
+              _offsetOevalCtx :: EvalCtx
+              _bindOevalCtx :: EvalCtx
+              _bindOisGlobal :: Bool
+              _offsetOmbCtxCount :: (Maybe Int)
+              _offsetOisDictClass :: Bool
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CPatFld
+              _lhsOgUniq :: Int
+              _offsetOargMp :: CVarReplNmMp
+              _offsetOcvarIntroMp :: CVarIntroMp
+              _offsetOgUniq :: Int
+              _offsetOintroCVarIntroMp :: CVarIntroMp
+              _offsetOlamArgMp :: LamArgMp
+              _offsetOlamFvSMp :: FvSMp
+              _offsetOlamS :: FvS
+              _offsetOlev :: Int
+              _offsetOvarS :: FvS
+              _offsetOwhatAbove :: WhatExpr
+              _bindOargMp :: CVarReplNmMp
+              _bindOcvarIntroMp :: CVarIntroMp
+              _bindOgUniq :: Int
+              _bindOintroCVarIntroMp :: CVarIntroMp
+              _bindOlamArgMp :: LamArgMp
+              _bindOlamFvSMp :: FvSMp
+              _bindOlamS :: FvS
+              _bindOlev :: Int
+              _bindOvarS :: FvS
+              _fldAnnsOargMp :: CVarReplNmMp
+              _fldAnnsOcvarIntroMp :: CVarIntroMp
+              _fldAnnsOgUniq :: Int
+              _fldAnnsOintroCVarIntroMp :: CVarIntroMp
+              _fldAnnsOlamArgMp :: LamArgMp
+              _fldAnnsOlamFvSMp :: FvSMp
+              _fldAnnsOlamS :: FvS
+              _fldAnnsOlev :: Int
+              _fldAnnsOvarS :: FvS
+              _offsetIappFunKind :: AppFunKind
+              _offsetIbindLamArgMp :: LamArgMp
+              _offsetIcTrf :: CExpr
+              _offsetIenvUp :: Env
+              _offsetIfvS :: FvS
+              _offsetIgUniq :: Int
+              _offsetIlevOf :: Int
+              _offsetImbLam :: (Maybe [HsName])
+              _offsetImbVar :: (Maybe HsName)
+              _offsetIwhatBelow :: WhatExpr
+              _bindIbindLamArgMp :: LamArgMp
+              _bindIbindLamS :: FvS
+              _bindIbindVarS :: FvS
+              _bindIbindsIntroCVarIntroMp :: CVarIntroMp
+              _bindIcTrf :: CBind
+              _bindIcvarIntroExprMp :: CVarIntroMp
+              _bindIenvUp :: Env
+              _bindIfvS :: FvS
+              _bindIfvSMp :: FvSMp
+              _bindIgUniq :: Int
+              _bindIlevOf :: Int
+              _bindInm :: HsName
+              _bindInmL :: ([HsName])
+              _fldAnnsIcTrf :: CBindAnnL
+              _fldAnnsIfvS :: FvS
+              _fldAnnsIgUniq :: Int
+              _fldAnnsIlevOf :: Int
+              _fldAnnsInmL :: ([HsName])
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 22, column 17)
+              _lhsOnmL =
+                  [_fldNm]
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 23, column 17)
+              _fldNm =
+                  _bindInm
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 28, column 17)
+              _lhsOfldNmL =
+                  [_fldNm]
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 9, column 17)
+              _bindOletBindingsCateg =
+                  acoreBindcategPlain
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 41, column 17)
+              _offsetOisTopApp =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 41, column 17)
+              _offsetOisTopTup =
+                  True
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 87, column 17)
+              _whatAbove =
+                  ExprIsOther
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 105, column 17)
+              _offsetOevalCtx =
+                  EvalCtx_Eval
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 106, column 33)
+              _bindOevalCtx =
+                  EvalCtx_None
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 15, column 17)
+              _bindOisGlobal =
+                  False
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 172, column 10)
+              _offsetOmbCtxCount =
+                  Nothing
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 173, column 10)
+              _offsetOisDictClass =
+                  False
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _offsetIlevOf `max` _bindIlevOf `max` _fldAnnsIlevOf
+              -- self rule
+              _cTrf =
+                  CPatFld_Fld lbl_ _offsetIcTrf _bindIcTrf _fldAnnsIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _fldAnnsIgUniq
+              -- copy rule (down)
+              _offsetOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _offsetOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _offsetOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _offsetOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _offsetOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _offsetOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _offsetOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _offsetOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _offsetOvarS =
+                  _lhsIvarS
+              -- copy rule (from local)
+              _offsetOwhatAbove =
+                  _whatAbove
+              -- copy rule (down)
+              _bindOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _bindOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (chain)
+              _bindOgUniq =
+                  _offsetIgUniq
+              -- copy rule (down)
+              _bindOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _bindOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _bindOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _bindOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _bindOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _bindOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _fldAnnsOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _fldAnnsOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (chain)
+              _fldAnnsOgUniq =
+                  _bindIgUniq
+              -- copy rule (down)
+              _fldAnnsOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _fldAnnsOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _fldAnnsOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _fldAnnsOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _fldAnnsOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _fldAnnsOvarS =
+                  _lhsIvarS
+              ( _offsetIappFunKind,_offsetIbindLamArgMp,_offsetIcTrf,_offsetIenvUp,_offsetIfvS,_offsetIgUniq,_offsetIlevOf,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) =
+                  offset_ _offsetOargMp _offsetOcvarIntroMp _offsetOevalCtx _offsetOgUniq _offsetOintroCVarIntroMp _offsetOisDictClass _offsetOisTopApp _offsetOisTopTup _offsetOlamArgMp _offsetOlamFvSMp _offsetOlamS _offsetOlev _offsetOmbCtxCount _offsetOvarS _offsetOwhatAbove
+              ( _bindIbindLamArgMp,_bindIbindLamS,_bindIbindVarS,_bindIbindsIntroCVarIntroMp,_bindIcTrf,_bindIcvarIntroExprMp,_bindIenvUp,_bindIfvS,_bindIfvSMp,_bindIgUniq,_bindIlevOf,_bindInm,_bindInmL) =
+                  bind_ _bindOargMp _bindOcvarIntroMp _bindOevalCtx _bindOgUniq _bindOintroCVarIntroMp _bindOisGlobal _bindOlamArgMp _bindOlamFvSMp _bindOlamS _bindOletBindingsCateg _bindOlev _bindOvarS
+              ( _fldAnnsIcTrf,_fldAnnsIfvS,_fldAnnsIgUniq,_fldAnnsIlevOf,_fldAnnsInmL) =
+                  fldAnns_ _fldAnnsOargMp _fldAnnsOcvarIntroMp _fldAnnsOgUniq _fldAnnsOintroCVarIntroMp _fldAnnsOlamArgMp _fldAnnsOlamFvSMp _fldAnnsOlamS _fldAnnsOlev _fldAnnsOvarS
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CPatFldL ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CPatFldL 
+         fldNmL               : [HsName]
+         fvS                  : FvS
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Cons:
+         child hd             : CPatFld 
+         child tl             : CPatFldL 
+         visit 0:
+            local cTrf        : _
+      alternative Nil:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CPatFldL :: CPatFldL ->
+                T_CPatFldL
+sem_CPatFldL list =
+    (Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list))
+-- semantic domain
+type T_CPatFldL = CVarReplNmMp ->
+                  CVarIntroMp ->
+                  Int ->
+                  CVarIntroMp ->
+                  LamArgMp ->
+                  FvSMp ->
+                  FvS ->
+                  Int ->
+                  FvS ->
+                  ( CPatFldL,([HsName]),FvS,Int,Int,([HsName]))
+sem_CPatFldL_Cons :: T_CPatFld ->
+                     T_CPatFldL ->
+                     T_CPatFldL
+sem_CPatFldL_Cons hd_ tl_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CPatFldL
+              _lhsOgUniq :: Int
+              _hdOargMp :: CVarReplNmMp
+              _hdOcvarIntroMp :: CVarIntroMp
+              _hdOgUniq :: Int
+              _hdOintroCVarIntroMp :: CVarIntroMp
+              _hdOlamArgMp :: LamArgMp
+              _hdOlamFvSMp :: FvSMp
+              _hdOlamS :: FvS
+              _hdOlev :: Int
+              _hdOvarS :: FvS
+              _tlOargMp :: CVarReplNmMp
+              _tlOcvarIntroMp :: CVarIntroMp
+              _tlOgUniq :: Int
+              _tlOintroCVarIntroMp :: CVarIntroMp
+              _tlOlamArgMp :: LamArgMp
+              _tlOlamFvSMp :: FvSMp
+              _tlOlamS :: FvS
+              _tlOlev :: Int
+              _tlOvarS :: FvS
+              _hdIcTrf :: CPatFld
+              _hdIfldNmL :: ([HsName])
+              _hdIfvS :: FvS
+              _hdIgUniq :: Int
+              _hdIlevOf :: Int
+              _hdInmL :: ([HsName])
+              _tlIcTrf :: CPatFldL
+              _tlIfldNmL :: ([HsName])
+              _tlIfvS :: FvS
+              _tlIgUniq :: Int
+              _tlIlevOf :: Int
+              _tlInmL :: ([HsName])
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  _hdIfldNmL ++ _tlIfldNmL
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  _hdIfvS `Set.union` _tlIfvS
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  _hdIlevOf `max` _tlIlevOf
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  _hdInmL ++ _tlInmL
+              -- self rule
+              _cTrf =
+                  (:) _hdIcTrf _tlIcTrf
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (up)
+              _lhsOgUniq =
+                  _tlIgUniq
+              -- copy rule (down)
+              _hdOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _hdOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (down)
+              _hdOgUniq =
+                  _lhsIgUniq
+              -- copy rule (down)
+              _hdOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _hdOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _hdOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _hdOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _hdOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _hdOvarS =
+                  _lhsIvarS
+              -- copy rule (down)
+              _tlOargMp =
+                  _lhsIargMp
+              -- copy rule (down)
+              _tlOcvarIntroMp =
+                  _lhsIcvarIntroMp
+              -- copy rule (chain)
+              _tlOgUniq =
+                  _hdIgUniq
+              -- copy rule (down)
+              _tlOintroCVarIntroMp =
+                  _lhsIintroCVarIntroMp
+              -- copy rule (down)
+              _tlOlamArgMp =
+                  _lhsIlamArgMp
+              -- copy rule (down)
+              _tlOlamFvSMp =
+                  _lhsIlamFvSMp
+              -- copy rule (down)
+              _tlOlamS =
+                  _lhsIlamS
+              -- copy rule (down)
+              _tlOlev =
+                  _lhsIlev
+              -- copy rule (down)
+              _tlOvarS =
+                  _lhsIvarS
+              ( _hdIcTrf,_hdIfldNmL,_hdIfvS,_hdIgUniq,_hdIlevOf,_hdInmL) =
+                  hd_ _hdOargMp _hdOcvarIntroMp _hdOgUniq _hdOintroCVarIntroMp _hdOlamArgMp _hdOlamFvSMp _hdOlamS _hdOlev _hdOvarS
+              ( _tlIcTrf,_tlIfldNmL,_tlIfvS,_tlIgUniq,_tlIlevOf,_tlInmL) =
+                  tl_ _tlOargMp _tlOcvarIntroMp _tlOgUniq _tlOintroCVarIntroMp _tlOlamArgMp _tlOlamFvSMp _tlOlamS _tlOlev _tlOvarS
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CPatFldL_Nil :: T_CPatFldL
+sem_CPatFldL_Nil =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfldNmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CPatFldL
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
+              _lhsOfldNmL =
+                  []
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  []
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CPatRest ----------------------------------------------------
+{-
+   visit 0:
+      inherited attributes:
+         argMp                : CVarReplNmMp
+         cvarIntroMp          : CVarIntroMp
+         introCVarIntroMp     : CVarIntroMp
+         lamArgMp             : LamArgMp
+         lamFvSMp             : FvSMp
+         lamS                 : FvS
+         lev                  : Int
+         varS                 : FvS
+      chained attribute:
+         gUniq                : Int
+      synthesized attributes:
+         cTrf                 : CPatRest 
+         fvS                  : FvS
+         levOf                : Int
+         nmL                  : [HsName]
+   alternatives:
+      alternative Var:
+         child nm             : {HsName}
+         visit 0:
+            local cTrf        : _
+      alternative Empty:
+         visit 0:
+            local cTrf        : _
+-}
+-- cata
+sem_CPatRest :: CPatRest ->
+                T_CPatRest
+sem_CPatRest (CPatRest_Var _nm) =
+    (sem_CPatRest_Var _nm)
+sem_CPatRest (CPatRest_Empty) =
+    (sem_CPatRest_Empty)
+-- semantic domain
+type T_CPatRest = CVarReplNmMp ->
+                  CVarIntroMp ->
+                  Int ->
+                  CVarIntroMp ->
+                  LamArgMp ->
+                  FvSMp ->
+                  FvS ->
+                  Int ->
+                  FvS ->
+                  ( CPatRest,FvS,Int,Int,([HsName]))
+sem_CPatRest_Var :: HsName ->
+                    T_CPatRest
+sem_CPatRest_Var nm_ =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOnmL :: ([HsName])
+              _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOcTrf :: CPatRest
+              _lhsOgUniq :: Int
+              -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 25, column 17)
+              _lhsOnmL =
+                  [nm_]
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- self rule
+              _cTrf =
+                  CPatRest_Var nm_
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+sem_CPatRest_Empty :: T_CPatRest
+sem_CPatRest_Empty =
+    (\ _lhsIargMp
+       _lhsIcvarIntroMp
+       _lhsIgUniq
+       _lhsIintroCVarIntroMp
+       _lhsIlamArgMp
+       _lhsIlamFvSMp
+       _lhsIlamS
+       _lhsIlev
+       _lhsIvarS ->
+         (let _lhsOfvS :: FvS
+              _lhsOlevOf :: Int
+              _lhsOnmL :: ([HsName])
+              _lhsOcTrf :: CPatRest
+              _lhsOgUniq :: Int
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
+              _lhsOfvS =
+                  Set.empty
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 53, column 28)
+              _lhsOlevOf =
+                  cLevModule
+              -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
+              _lhsOnmL =
+                  []
+              -- self rule
+              _cTrf =
+                  CPatRest_Empty
+              -- self rule
+              _lhsOcTrf =
+                  _cTrf
+              -- copy rule (chain)
+              _lhsOgUniq =
+                  _lhsIgUniq
+          in  ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOlevOf,_lhsOnmL)))
+-- CodeAGItf ---------------------------------------------------
+{-
+   visit 0:
+      synthesized attribute:
+         cTrf                 : CModule 
+   alternatives:
+      alternative AGItf:
+         child module         : CModule 
+-}
+-- cata
+sem_CodeAGItf :: CodeAGItf ->
+                 T_CodeAGItf
+sem_CodeAGItf (CodeAGItf_AGItf _module) =
+    (sem_CodeAGItf_AGItf (sem_CModule _module))
+-- semantic domain
+type T_CodeAGItf = ( CModule)
+data Inh_CodeAGItf = Inh_CodeAGItf {}
+data Syn_CodeAGItf = Syn_CodeAGItf {cTrf_Syn_CodeAGItf :: !(CModule)}
+wrap_CodeAGItf :: T_CodeAGItf ->
+                  Inh_CodeAGItf ->
+                  Syn_CodeAGItf
+wrap_CodeAGItf sem (Inh_CodeAGItf) =
+    (let ( _lhsOcTrf) = sem
+     in  (Syn_CodeAGItf _lhsOcTrf))
+sem_CodeAGItf_AGItf :: T_CModule ->
+                       T_CodeAGItf
+sem_CodeAGItf_AGItf module_ =
+    (let _moduleOvarS :: FvS
+         _moduleOlamS :: FvS
+         _moduleOcvarIntroMp :: CVarIntroMp
+         _moduleOintroCVarIntroMp :: CVarIntroMp
+         _moduleOlev :: Int
+         _moduleOgUniq :: Int
+         _moduleOlamFvSMp :: FvSMp
+         _moduleOargMp :: CVarReplNmMp
+         _moduleOlamArgMp :: LamArgMp
+         _lhsOcTrf :: CModule
+         _moduleIcTrf :: CModule
+         _moduleIfvS :: FvS
+         _moduleIgUniq :: Int
+         _moduleIlevOf :: Int
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 14, column 17)
+         _moduleOvarS =
+             Set.empty
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonGlobalAsArg.ag"(line 14, column 17)
+         _moduleOlamS =
+             Set.empty
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 17, column 17)
+         _moduleOcvarIntroMp =
+             Map.empty
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonLev.ag"(line 38, column 17)
+         _moduleOintroCVarIntroMp =
+             Map.empty
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 4, column 17)
+         _moduleOlev =
+             cLevModule
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 51, column 17)
+         _moduleOgUniq =
+             0
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 60, column 17)
+         _moduleOlamFvSMp =
+             Map.empty
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 76, column 17)
+         _moduleOargMp =
+             Map.empty
+         -- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.ag"(line 111, column 17)
          _moduleOlamArgMp =
              Map.empty
          -- copy rule (up)
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LetDe)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LetDe)
 module UHC.Light.Compiler.Core.Trf.LetDefBeforeUse(cmodTrfLetDefBeforeUse) where
 
 import Data.Maybe
@@ -415,15 +415,9 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -447,10 +441,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -462,10 +454,9 @@
                 Int ->
                 HsName ->
                 ( CBound,DefMp,FvS,FvSMp,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIisGlobal
        _lhsIlev
        _lhsInm ->
@@ -473,41 +464,13 @@
           { _exprOlev | _exprOlev `seq` (True) ->
           (case (expr_ _exprOlev) of
            { ( _exprIcTrf,_exprIdefMp,_exprIfvS,_exprIletBody) | True ->
-               (case (_lhsIlev) of
-                { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                (case (bindMeta_ _bindMetaOlev) of
-                 { ( _bindMetaIcTrf,_bindMetaIdefMp,_bindMetaIfvS) | True ->
-                     (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       (case (_bindMetaIdefMp `defMpComb` _exprIdefMp) of
-                        { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-                        (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                         { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                         (case (Map.empty) of
-                          { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                          (case ([]) of
-                           { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                           ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIisGlobal
-       _lhsIlev
-       _lhsInm ->
-         (case (_lhsIlev) of
-          { _cmetasOlev | _cmetasOlev `seq` (True) ->
-          (case (cmetas_ _cmetasOlev) of
-           { ( _cmetasIcTrf,_cmetasIdefMp,_cmetasIfvS) | True ->
-               (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
+               (case (CBound_Bind _exprIcTrf) of
                 { _cTrf | _cTrf `seq` (True) ->
                 (case (_cTrf) of
                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                 (case (_cmetasIdefMp) of
+                 (case (_exprIdefMp) of
                   { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-                  (case (_cmetasIfvS) of
+                  (case (_exprIfvS) of
                    { _lhsOfvS | _lhsOfvS `seq` (True) ->
                    (case (Map.empty) of
                     { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
@@ -1681,245 +1644,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         defMp                : DefMp
-         fvS                  : FvS
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   ( CMetaBind,DefMp,FvS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIlev ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         defMp                : DefMp
-         fvS                  : FvS
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  ( CMetaVal,DefMp,FvS)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIlev ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIlev ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIlev ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIlev ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIlev ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Map.empty) of
-            { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-            (case (Set.empty) of
-             { _lhsOfvS | _lhsOfvS `seq` (True) ->
-             ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attribute:
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetas 
-         defMp                : DefMp
-         fvS                  : FvS
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                ( CMetas,DefMp,FvS)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIlev ->
-         (case (_lhsIlev) of
-          { _x2Olev | _x2Olev `seq` (True) ->
-          (case (x2_ _x2Olev) of
-           { ( _x2IcTrf,_x2IdefMp,_x2IfvS) | True ->
-               (case (_lhsIlev) of
-                { _x1Olev | _x1Olev `seq` (True) ->
-                (case (x1_ _x1Olev) of
-                 { ( _x1IcTrf,_x1IdefMp,_x1IfvS) | True ->
-                     (case ((_x1IcTrf,_x2IcTrf)) of
-                      { _cTrf | _cTrf `seq` (True) ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                       (case (_x1IdefMp `defMpComb` _x2IdefMp) of
-                        { _lhsOdefMp | _lhsOdefMp `seq` (True) ->
-                        (case (_x1IfvS `Set.union` _x2IfvS) of
-                         { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                         ( _lhsOcTrf,_lhsOdefMp,_lhsOfvS) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LetFl)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LetFl)
 module UHC.Light.Compiler.Core.Trf.LetFlattenStrict(cmodTrfLetFlattenStrict) where
 
 import UHC.Light.Compiler.Base.Common
@@ -290,15 +290,9 @@
          hasNonPlainBinds     : Bool
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -322,10 +316,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -335,10 +327,9 @@
 -- semantic domain
 type T_CBound = Bool ->
                 ( ([Lift]),CBound,Bool,Bool)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIisStrictChain ->
          (case (_lhsIisStrictChain) of
           { _exprOisStrictChain ->
@@ -346,35 +337,15 @@
            { ( _exprIbinds,_exprIcTrf,_exprIflatExpr,_exprIisStrictChain,_exprImbLift) ->
                (case (maybe [] (:[]) _exprImbLift) of
                 { _lhsOaspLiftL ->
-                (case (bindMeta_) of
-                 { ( _bindMetaIcTrf) ->
-                     (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                      { _cTrf ->
-                      (case (_cTrf) of
-                       { _lhsOcTrf ->
-                       (case (False) of
-                        { _lhsOhasNonPlainBinds ->
-                        (case (_exprIisStrictChain) of
-                         { _lhsOisStrictChain ->
-                         ( _lhsOaspLiftL,_lhsOcTrf,_lhsOhasNonPlainBinds,_lhsOisStrictChain) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIisStrictChain ->
-         (case ([]) of
-          { _lhsOaspLiftL ->
-          (case (cmetas_) of
-           { ( _cmetasIcTrf) ->
-               (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                { _cTrf ->
-                (case (_cTrf) of
-                 { _lhsOcTrf ->
-                 (case (True) of
-                  { _lhsOhasNonPlainBinds ->
-                  (case (_lhsIisStrictChain) of
-                   { _lhsOisStrictChain ->
-                   ( _lhsOaspLiftL,_lhsOcTrf,_lhsOhasNonPlainBinds,_lhsOisStrictChain) }) }) }) }) }) }))
+                (case (CBound_Bind _exprIcTrf) of
+                 { _cTrf ->
+                 (case (_cTrf) of
+                  { _lhsOcTrf ->
+                  (case (False) of
+                   { _lhsOhasNonPlainBinds ->
+                   (case (_exprIisStrictChain) of
+                    { _lhsOisStrictChain ->
+                    ( _lhsOaspLiftL,_lhsOcTrf,_lhsOhasNonPlainBinds,_lhsOisStrictChain) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -1580,176 +1551,6 @@
      (case (_cTrf) of
       { _lhsOcTrf ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (case (CMetaBind_Plain) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (case (CMetaBind_Function0) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (case (CMetaBind_Function1) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (case (CMetaBind_Apply0) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (case (CMetaVal_Val) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (case (CMetaVal_Dict) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (case (CMetaVal_DictClass tracks_) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (case (CMetaVal_DictInstance tracks_) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (case (CMetaVal_Track track_) of
-     { _cTrf ->
-     (case (_cTrf) of
-      { _lhsOcTrf ->
-      ( _lhsOcTrf) }) })
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (case (x2_) of
-     { ( _x2IcTrf) ->
-         (case (x1_) of
-          { ( _x1IcTrf) ->
-              (case ((_x1IcTrf,_x2IcTrf)) of
-               { _cTrf ->
-               (case (_cTrf) of
-                { _lhsOcTrf ->
-                ( _lhsOcTrf) }) }) }) })
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LetUn)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/LetUn)
 module UHC.Light.Compiler.Core.Trf.LetUnrec(cmodTrfLetUnrec) where
 
 import UHC.Light.Compiler.Base.Common
@@ -37,7 +37,7 @@
 
 
 
-type BindMp = Map.Map HsName (CExpr,CMetas)
+type BindMp = Map.Map HsName CExpr
 
 -- CAlt --------------------------------------------------------
 {-
@@ -458,15 +458,9 @@
          useMp                : UseMp
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 0:
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 0:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -490,10 +484,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -506,10 +498,9 @@
                 Int ->
                 HsName ->
                 ( BindMp,CBound,FvS,FvSMp,([HsName]),UseMp)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIinNmL
        _lhsIisGlobal
        _lhsIlev
@@ -520,54 +511,19 @@
            { _exprOlev | _exprOlev `seq` (True) ->
            (case (expr_ _exprOinNmL _exprOlev) of
             { ( _exprIcTrf,_exprIfvS,_exprIuseMp) | True ->
-                (case (_lhsIlev) of
-                 { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                 (case (_lhsIinNmL) of
-                  { _bindMetaOinNmL | _bindMetaOinNmL `seq` (True) ->
-                  (case (bindMeta_ _bindMetaOinNmL _bindMetaOlev) of
-                   { ( _bindMetaIcTrf,_bindMetaIfvS,_bindMetaIuseMp) | True ->
-                       (case (_lhsInm `Map.singleton` (_exprIcTrf,_bindMetaIcTrf)) of
-                        { _lhsObindMp | _lhsObindMp `seq` (True) ->
-                        (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                         { _cTrf | _cTrf `seq` (True) ->
-                         (case (_cTrf) of
-                          { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                          (case (_bindMetaIfvS `Set.union` _exprIfvS) of
-                           { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                           (case (Map.empty) of
-                            { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
-                            (case ([]) of
-                             { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                             (case ((_lhsInm `Map.singleton` []) `useMpComb` _exprIuseMp) of
-                              { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-                              ( _lhsObindMp,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL,_lhsOuseMp) }) }) }) }) }) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIinNmL
-       _lhsIisGlobal
-       _lhsIlev
-       _lhsInm ->
-         (case (Map.empty) of
-          { _lhsObindMp | _lhsObindMp `seq` (True) ->
-          (case (_lhsIlev) of
-           { _cmetasOlev | _cmetasOlev `seq` (True) ->
-           (case (_lhsIinNmL) of
-            { _cmetasOinNmL | _cmetasOinNmL `seq` (True) ->
-            (case (cmetas_ _cmetasOinNmL _cmetasOlev) of
-             { ( _cmetasIcTrf,_cmetasIfvS,_cmetasIuseMp) | True ->
-                 (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
+                (case (_lhsInm `Map.singleton` (_exprIcTrf)) of
+                 { _lhsObindMp | _lhsObindMp `seq` (True) ->
+                 (case (CBound_Bind _exprIcTrf) of
                   { _cTrf | _cTrf `seq` (True) ->
                   (case (_cTrf) of
                    { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                   (case (_cmetasIfvS) of
+                   (case (_exprIfvS) of
                     { _lhsOfvS | _lhsOfvS `seq` (True) ->
                     (case (Map.empty) of
                      { _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
                      (case ([]) of
                       { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                      (case (_cmetasIuseMp) of
+                      (case ((_lhsInm `Map.singleton` []) `useMpComb` _exprIuseMp) of
                        { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
                        ( _lhsObindMp,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL,_lhsOuseMp) }) }) }) }) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
@@ -1281,7 +1237,7 @@
                          (case (if categ_ == CBindCateg_Rec
                                 then  let  h = Map.filterWithKey (\k e -> k `Map.member` _bindsIbindMp) _bindsIuseMp
                                            o = scc . Map.toList $ h
-                                           mk c ns b = acoreLet c [ acoreBind1MetasTy n m (acoreTyErr "LetUnrec.CExpr.Let") e | n <- ns, (e,m) <- maybeToList (Map.lookup n _bindsIbindMp) ] b
+                                           mk c ns b = acoreLet c [ acoreBind1Ty n (acoreTyErr "LetUnrec.CExpr.Let") e | n <- ns, (e) <- maybeToList (Map.lookup n _bindsIbindMp) ] b
                                            t = foldr (\bs b
                                                          -> case bs of
                                                                [n] | n `elem` Map.findWithDefault [] n h
@@ -1809,265 +1765,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         inNmL                : [HsName]
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetaBind 
-         fvS                  : FvS
-         useMp                : UseMp
-   alternatives:
-      alternative Plain:
-         visit 0:
-            local cTrf        : _
-      alternative Function0:
-         visit 0:
-            local cTrf        : _
-      alternative Function1:
-         visit 0:
-            local cTrf        : _
-      alternative Apply0:
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ([HsName]) ->
-                   Int ->
-                   ( CMetaBind,FvS,UseMp)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaBind_Plain) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaBind_Function0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaBind_Function1) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaBind_Apply0) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         inNmL                : [HsName]
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetaVal 
-         fvS                  : FvS
-         useMp                : UseMp
-   alternatives:
-      alternative Val:
-         visit 0:
-            local cTrf        : _
-      alternative Dict:
-         visit 0:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 0:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ([HsName]) ->
-                  Int ->
-                  ( CMetaVal,FvS,UseMp)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaVal_Val) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaVal_Dict) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaVal_DictClass tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaVal_DictInstance tracks_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (CMetaVal_Track track_) of
-          { _cTrf | _cTrf `seq` (True) ->
-          (case (_cTrf) of
-           { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-           (case (Set.empty) of
-            { _lhsOfvS | _lhsOfvS `seq` (True) ->
-            (case (Map.empty) of
-             { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-             ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      inherited attributes:
-         inNmL                : [HsName]
-         lev                  : Int
-      synthesized attributes:
-         cTrf                 : CMetas 
-         fvS                  : FvS
-         useMp                : UseMp
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 0:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ([HsName]) ->
-                Int ->
-                ( CMetas,FvS,UseMp)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIinNmL
-       _lhsIlev ->
-         (case (_lhsIlev) of
-          { _x2Olev | _x2Olev `seq` (True) ->
-          (case (_lhsIinNmL) of
-           { _x2OinNmL | _x2OinNmL `seq` (True) ->
-           (case (x2_ _x2OinNmL _x2Olev) of
-            { ( _x2IcTrf,_x2IfvS,_x2IuseMp) | True ->
-                (case (_lhsIlev) of
-                 { _x1Olev | _x1Olev `seq` (True) ->
-                 (case (_lhsIinNmL) of
-                  { _x1OinNmL | _x1OinNmL `seq` (True) ->
-                  (case (x1_ _x1OinNmL _x1Olev) of
-                   { ( _x1IcTrf,_x1IfvS,_x1IuseMp) | True ->
-                       (case ((_x1IcTrf,_x2IcTrf)) of
-                        { _cTrf | _cTrf `seq` (True) ->
-                        (case (_cTrf) of
-                         { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                         (case (_x1IfvS `Set.union` _x2IfvS) of
-                          { _lhsOfvS | _lhsOfvS `seq` (True) ->
-                          (case (_x1IuseMp `useMpComb` _x2IuseMp) of
-                           { _lhsOuseMp | _lhsOuseMp `seq` (True) ->
-                           ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    visit 0:
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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/RenUn)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/RenUn)
 module UHC.Light.Compiler.Core.Trf.RenUniq(RenUniqOpts (..), emptyRenUniqOpts
 , cmodTrfRenUniq) where
 
@@ -743,16 +743,10 @@
          nmL                  : [HsName]
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
          visit 1:
             local aRenMp      : _
             local cTrf        : _
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
-         visit 1:
-            local cTrf        : _
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -778,10 +772,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -798,110 +790,56 @@
                   HsName ->
                   HsName ->
                   ( CBound,([HsName]))
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsIgIniq
        _lhsIprotectedBindingNames
        _lhsIropts ->
          (case (_lhsIropts) of
           { _exprOropts | _exprOropts `seq` (True) ->
-          (case (_lhsIgIniq) of
-           { _bindMetaOgIniq | _bindMetaOgIniq `seq` (True) ->
-           (case (bindMeta_ _bindMetaOgIniq) of
-            { ( _bindMetaIgIniq,_bindMetaIprotectableBindingNames,bindMeta_1) | True ->
-                (case (_bindMetaIprotectableBindingNames ++ _lhsIprotectedBindingNames) of
-                 { _exprOprotectedBindingNames | _exprOprotectedBindingNames `seq` (True) ->
+          (case (_lhsIprotectedBindingNames) of
+           { _exprOprotectedBindingNames | _exprOprotectedBindingNames `seq` (True) ->
+           (case (if   renuniqOptResetOnlyInLam _lhsIropts
+                  then 1
+                  else _lhsIgIniq) of
+            { _exprOgIniq | _exprOgIniq `seq` (True) ->
+            (case (expr_ _exprOgIniq _exprOprotectedBindingNames _exprOropts) of
+             { ( _exprIgIniq,_exprIisLamBody,expr_1) | True ->
                  (case (if   renuniqOptResetOnlyInLam _lhsIropts
-                        then 1
-                        else _lhsIgIniq) of
-                  { _exprOgIniq | _exprOgIniq `seq` (True) ->
-                  (case (expr_ _exprOgIniq _exprOprotectedBindingNames _exprOropts) of
-                   { ( _exprIgIniq,_exprIisLamBody,expr_1) | True ->
-                       (case (if   renuniqOptResetOnlyInLam _lhsIropts
-                              then _lhsIgIniq
-                              else _exprIgIniq) of
-                        { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-                        (case ((let sem_CBound_Bind_1 :: T_CBound_1
-                                    sem_CBound_Bind_1 =
-                                        (\ _lhsIaRenMp
-                                           _lhsIlev
-                                           _lhsImoduleNm
-                                           _lhsInm ->
-                                             (case (_lhsImoduleNm) of
-                                              { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
-                                              (case (_lhsIlev) of
-                                               { _exprOlev | _exprOlev `seq` (True) ->
-                                               (case (_lhsIaRenMp) of
-                                                { _exprOaccumARenMp | _exprOaccumARenMp `seq` (True) ->
-                                                (case (expr_1 _exprOaccumARenMp _exprOlev _exprOmoduleNm) of
-                                                 { ( _exprIaccumARenMp,expr_2) | True ->
-                                                     (case (_exprIaccumARenMp) of
-                                                      { _aRenMp | _aRenMp `seq` (True) ->
-                                                      (case (_aRenMp) of
-                                                       { _exprOaRenMp | _exprOaRenMp `seq` (True) ->
-                                                       (case (expr_2 _exprOaRenMp) of
-                                                        { ( _exprIcTrf) | True ->
-                                                            (case (_lhsIropts) of
-                                                             { _bindMetaOropts | _bindMetaOropts `seq` (True) ->
-                                                             (case (_lhsImoduleNm) of
-                                                              { _bindMetaOmoduleNm | _bindMetaOmoduleNm `seq` (True) ->
-                                                              (case (_lhsIlev) of
-                                                               { _bindMetaOlev | _bindMetaOlev `seq` (True) ->
-                                                               (case (_aRenMp) of
-                                                                { _bindMetaOaRenMp | _bindMetaOaRenMp `seq` (True) ->
-                                                                (case (bindMeta_1 _bindMetaOaRenMp _bindMetaOlev _bindMetaOmoduleNm _bindMetaOropts) of
-                                                                 { ( _bindMetaIcTrf) | True ->
-                                                                     (case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
-                                                                      { _cTrf | _cTrf `seq` (True) ->
-                                                                      (case (_cTrf) of
-                                                                       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                                                       (case ([]) of
-                                                                        { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                                                                        ( _lhsOcTrf,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
-                                in  sem_CBound_Bind_1)) of
-                         { ( sem_CBound_1) | True ->
-                         ( _lhsOgIniq,sem_CBound_1) }) }) }) }) }) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsIgIniq
-       _lhsIprotectedBindingNames
-       _lhsIropts ->
-         (case (_lhsIgIniq) of
-          { _cmetasOgIniq | _cmetasOgIniq `seq` (True) ->
-          (case (cmetas_ _cmetasOgIniq) of
-           { ( _cmetasIgIniq,_cmetasIprotectableBindingNames,cmetas_1) | True ->
-               (case (_cmetasIgIniq) of
-                { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-                (case ((let sem_CBound_Meta_1 :: T_CBound_1
-                            sem_CBound_Meta_1 =
-                                (\ _lhsIaRenMp
-                                   _lhsIlev
-                                   _lhsImoduleNm
-                                   _lhsInm ->
-                                     (case (_lhsIropts) of
-                                      { _cmetasOropts | _cmetasOropts `seq` (True) ->
-                                      (case (_lhsImoduleNm) of
-                                       { _cmetasOmoduleNm | _cmetasOmoduleNm `seq` (True) ->
-                                       (case (_lhsIlev) of
-                                        { _cmetasOlev | _cmetasOlev `seq` (True) ->
-                                        (case (_lhsIaRenMp) of
-                                         { _cmetasOaRenMp | _cmetasOaRenMp `seq` (True) ->
-                                         (case (cmetas_1 _cmetasOaRenMp _cmetasOlev _cmetasOmoduleNm _cmetasOropts) of
-                                          { ( _cmetasIcTrf) | True ->
-                                              (case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
-                                               { _cTrf | _cTrf `seq` (True) ->
-                                               (case (_cTrf) of
-                                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                                (case ([]) of
-                                                 { _lhsOnmL | _lhsOnmL `seq` (True) ->
-                                                 ( _lhsOcTrf,_lhsOnmL) }) }) }) }) }) }) }) }))
-                        in  sem_CBound_Meta_1)) of
-                 { ( sem_CBound_1) | True ->
-                 ( _lhsOgIniq,sem_CBound_1) }) }) }) }))
+                        then _lhsIgIniq
+                        else _exprIgIniq) of
+                  { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
+                  (case ((let sem_CBound_Bind_1 :: T_CBound_1
+                              sem_CBound_Bind_1 =
+                                  (\ _lhsIaRenMp
+                                     _lhsIlev
+                                     _lhsImoduleNm
+                                     _lhsInm ->
+                                       (case (_lhsImoduleNm) of
+                                        { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
+                                        (case (_lhsIlev) of
+                                         { _exprOlev | _exprOlev `seq` (True) ->
+                                         (case (_lhsIaRenMp) of
+                                          { _exprOaccumARenMp | _exprOaccumARenMp `seq` (True) ->
+                                          (case (expr_1 _exprOaccumARenMp _exprOlev _exprOmoduleNm) of
+                                           { ( _exprIaccumARenMp,expr_2) | True ->
+                                               (case (_exprIaccumARenMp) of
+                                                { _aRenMp | _aRenMp `seq` (True) ->
+                                                (case (_aRenMp) of
+                                                 { _exprOaRenMp | _exprOaRenMp `seq` (True) ->
+                                                 (case (expr_2 _exprOaRenMp) of
+                                                  { ( _exprIcTrf) | True ->
+                                                      (case (CBound_Bind _exprIcTrf) of
+                                                       { _cTrf | _cTrf `seq` (True) ->
+                                                       (case (_cTrf) of
+                                                        { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
+                                                        (case ([]) of
+                                                         { _lhsOnmL | _lhsOnmL `seq` (True) ->
+                                                         ( _lhsOcTrf,_lhsOnmL) }) }) }) }) }) }) }) }) }) }))
+                          in  sem_CBound_Bind_1)) of
+                   { ( sem_CBound_1) | True ->
+                   ( _lhsOgIniq,sem_CBound_1) }) }) }) }) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
                   MetaLev ->
                   CLbl ->
@@ -2938,378 +2876,6 @@
      (case (_cTrf) of
       { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
       ( _lhsOcTrf) }) })
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      chained attribute:
-         gIniq                : Int
-   visit 1:
-      inherited attributes:
-         aRenMp               : ARenMp
-         lev                  : Int
-         moduleNm             : HsName
-         ropts                : RenUniqOpts
-      synthesized attribute:
-         cTrf                 : CMetaBind 
-   alternatives:
-      alternative Plain:
-         visit 1:
-            local cTrf        : _
-      alternative Function0:
-         visit 1:
-            local cTrf        : _
-      alternative Function1:
-         visit 1:
-            local cTrf        : _
-      alternative Apply0:
-         visit 1:
-            local cTrf        : _
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = Int ->
-                   ( Int,T_CMetaBind_1)
-type T_CMetaBind_1 = ARenMp ->
-                     Int ->
-                     HsName ->
-                     RenUniqOpts ->
-                     ( CMetaBind)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ((let sem_CMetaBind_Plain_1 :: T_CMetaBind_1
-                      sem_CMetaBind_Plain_1 =
-                          (\ _lhsIaRenMp
-                             _lhsIlev
-                             _lhsImoduleNm
-                             _lhsIropts ->
-                               (case (CMetaBind_Plain) of
-                                { _cTrf | _cTrf `seq` (True) ->
-                                (case (_cTrf) of
-                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                 ( _lhsOcTrf) }) }))
-                  in  sem_CMetaBind_Plain_1)) of
-           { ( sem_CMetaBind_1) | True ->
-           ( _lhsOgIniq,sem_CMetaBind_1) }) }))
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ((let sem_CMetaBind_Function0_1 :: T_CMetaBind_1
-                      sem_CMetaBind_Function0_1 =
-                          (\ _lhsIaRenMp
-                             _lhsIlev
-                             _lhsImoduleNm
-                             _lhsIropts ->
-                               (case (CMetaBind_Function0) of
-                                { _cTrf | _cTrf `seq` (True) ->
-                                (case (_cTrf) of
-                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                 ( _lhsOcTrf) }) }))
-                  in  sem_CMetaBind_Function0_1)) of
-           { ( sem_CMetaBind_1) | True ->
-           ( _lhsOgIniq,sem_CMetaBind_1) }) }))
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ((let sem_CMetaBind_Function1_1 :: T_CMetaBind_1
-                      sem_CMetaBind_Function1_1 =
-                          (\ _lhsIaRenMp
-                             _lhsIlev
-                             _lhsImoduleNm
-                             _lhsIropts ->
-                               (case (CMetaBind_Function1) of
-                                { _cTrf | _cTrf `seq` (True) ->
-                                (case (_cTrf) of
-                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                 ( _lhsOcTrf) }) }))
-                  in  sem_CMetaBind_Function1_1)) of
-           { ( sem_CMetaBind_1) | True ->
-           ( _lhsOgIniq,sem_CMetaBind_1) }) }))
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ((let sem_CMetaBind_Apply0_1 :: T_CMetaBind_1
-                      sem_CMetaBind_Apply0_1 =
-                          (\ _lhsIaRenMp
-                             _lhsIlev
-                             _lhsImoduleNm
-                             _lhsIropts ->
-                               (case (CMetaBind_Apply0) of
-                                { _cTrf | _cTrf `seq` (True) ->
-                                (case (_cTrf) of
-                                 { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                 ( _lhsOcTrf) }) }))
-                  in  sem_CMetaBind_Apply0_1)) of
-           { ( sem_CMetaBind_1) | True ->
-           ( _lhsOgIniq,sem_CMetaBind_1) }) }))
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      chained attribute:
-         gIniq                : Int
-      synthesized attribute:
-         protectableBindingNames : [HsName]
-   visit 1:
-      inherited attributes:
-         aRenMp               : ARenMp
-         lev                  : Int
-         moduleNm             : HsName
-         ropts                : RenUniqOpts
-      synthesized attribute:
-         cTrf                 : CMetaVal 
-   alternatives:
-      alternative Val:
-         visit 1:
-            local cTrf        : _
-      alternative Dict:
-         visit 1:
-            local cTrf        : _
-      alternative DictClass:
-         child tracks         : {[Track]}
-         visit 1:
-            local cTrf        : _
-      alternative DictInstance:
-         child tracks         : {[Track]}
-         visit 1:
-            local cTrf        : _
-      alternative Track:
-         child track          : {Track}
-         visit 1:
-            local cTrf        : _
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = Int ->
-                  ( Int,([HsName]),T_CMetaVal_1)
-type T_CMetaVal_1 = ARenMp ->
-                    Int ->
-                    HsName ->
-                    RenUniqOpts ->
-                    ( CMetaVal)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ([]) of
-           { _lhsOprotectableBindingNames | _lhsOprotectableBindingNames `seq` (True) ->
-           (case ((let sem_CMetaVal_Val_1 :: T_CMetaVal_1
-                       sem_CMetaVal_Val_1 =
-                           (\ _lhsIaRenMp
-                              _lhsIlev
-                              _lhsImoduleNm
-                              _lhsIropts ->
-                                (case (CMetaVal_Val) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  ( _lhsOcTrf) }) }))
-                   in  sem_CMetaVal_Val_1)) of
-            { ( sem_CMetaVal_1) | True ->
-            ( _lhsOgIniq,_lhsOprotectableBindingNames,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ([]) of
-           { _lhsOprotectableBindingNames | _lhsOprotectableBindingNames `seq` (True) ->
-           (case ((let sem_CMetaVal_Dict_1 :: T_CMetaVal_1
-                       sem_CMetaVal_Dict_1 =
-                           (\ _lhsIaRenMp
-                              _lhsIlev
-                              _lhsImoduleNm
-                              _lhsIropts ->
-                                (case (CMetaVal_Dict) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  ( _lhsOcTrf) }) }))
-                   in  sem_CMetaVal_Dict_1)) of
-            { ( sem_CMetaVal_1) | True ->
-            ( _lhsOgIniq,_lhsOprotectableBindingNames,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ([ nm  | TrackVarApply nm _ <- tracks_ ]) of
-           { _lhsOprotectableBindingNames | _lhsOprotectableBindingNames `seq` (True) ->
-           (case ((let sem_CMetaVal_DictClass_1 :: T_CMetaVal_1
-                       sem_CMetaVal_DictClass_1 =
-                           (\ _lhsIaRenMp
-                              _lhsIlev
-                              _lhsImoduleNm
-                              _lhsIropts ->
-                                (case (CMetaVal_DictClass tracks_) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  ( _lhsOcTrf) }) }))
-                   in  sem_CMetaVal_DictClass_1)) of
-            { ( sem_CMetaVal_1) | True ->
-            ( _lhsOgIniq,_lhsOprotectableBindingNames,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ([ nm  | TrackVarApply nm _ <- tracks_ ]) of
-           { _lhsOprotectableBindingNames | _lhsOprotectableBindingNames `seq` (True) ->
-           (case ((let sem_CMetaVal_DictInstance_1 :: T_CMetaVal_1
-                       sem_CMetaVal_DictInstance_1 =
-                           (\ _lhsIaRenMp
-                              _lhsIlev
-                              _lhsImoduleNm
-                              _lhsIropts ->
-                                (case (CMetaVal_DictInstance tracks_) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  ( _lhsOcTrf) }) }))
-                   in  sem_CMetaVal_DictInstance_1)) of
-            { ( sem_CMetaVal_1) | True ->
-            ( _lhsOgIniq,_lhsOprotectableBindingNames,sem_CMetaVal_1) }) }) }))
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-          (case ([]) of
-           { _lhsOprotectableBindingNames | _lhsOprotectableBindingNames `seq` (True) ->
-           (case ((let sem_CMetaVal_Track_1 :: T_CMetaVal_1
-                       sem_CMetaVal_Track_1 =
-                           (\ _lhsIaRenMp
-                              _lhsIlev
-                              _lhsImoduleNm
-                              _lhsIropts ->
-                                (case (CMetaVal_Track track_) of
-                                 { _cTrf | _cTrf `seq` (True) ->
-                                 (case (_cTrf) of
-                                  { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                  ( _lhsOcTrf) }) }))
-                   in  sem_CMetaVal_Track_1)) of
-            { ( sem_CMetaVal_1) | True ->
-            ( _lhsOgIniq,_lhsOprotectableBindingNames,sem_CMetaVal_1) }) }) }))
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      chained attribute:
-         gIniq                : Int
-      synthesized attribute:
-         protectableBindingNames : [HsName]
-   visit 1:
-      inherited attributes:
-         aRenMp               : ARenMp
-         lev                  : Int
-         moduleNm             : HsName
-         ropts                : RenUniqOpts
-      synthesized attribute:
-         cTrf                 : CMetas 
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
-         visit 1:
-            local cTrf        : _
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = Int ->
-                ( Int,([HsName]),T_CMetas_1)
-type T_CMetas_1 = ARenMp ->
-                  Int ->
-                  HsName ->
-                  RenUniqOpts ->
-                  ( CMetas)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (\ _lhsIgIniq ->
-         (case (_lhsIgIniq) of
-          { _x1OgIniq | _x1OgIniq `seq` (True) ->
-          (case (x1_ _x1OgIniq) of
-           { ( _x1IgIniq,x1_1) | True ->
-               (case (_x1IgIniq) of
-                { _x2OgIniq | _x2OgIniq `seq` (True) ->
-                (case (x2_ _x2OgIniq) of
-                 { ( _x2IgIniq,_x2IprotectableBindingNames,x2_1) | True ->
-                     (case (_x2IgIniq) of
-                      { _lhsOgIniq | _lhsOgIniq `seq` (True) ->
-                      (case (_x2IprotectableBindingNames) of
-                       { _lhsOprotectableBindingNames | _lhsOprotectableBindingNames `seq` (True) ->
-                       (case ((let sem_CMetas_Tuple_1 :: T_CMetas_1
-                                   sem_CMetas_Tuple_1 =
-                                       (\ _lhsIaRenMp
-                                          _lhsIlev
-                                          _lhsImoduleNm
-                                          _lhsIropts ->
-                                            (case (_lhsIropts) of
-                                             { _x2Oropts | _x2Oropts `seq` (True) ->
-                                             (case (_lhsImoduleNm) of
-                                              { _x2OmoduleNm | _x2OmoduleNm `seq` (True) ->
-                                              (case (_lhsIlev) of
-                                               { _x2Olev | _x2Olev `seq` (True) ->
-                                               (case (_lhsIaRenMp) of
-                                                { _x2OaRenMp | _x2OaRenMp `seq` (True) ->
-                                                (case (x2_1 _x2OaRenMp _x2Olev _x2OmoduleNm _x2Oropts) of
-                                                 { ( _x2IcTrf) | True ->
-                                                     (case (_lhsIropts) of
-                                                      { _x1Oropts | _x1Oropts `seq` (True) ->
-                                                      (case (_lhsImoduleNm) of
-                                                       { _x1OmoduleNm | _x1OmoduleNm `seq` (True) ->
-                                                       (case (_lhsIlev) of
-                                                        { _x1Olev | _x1Olev `seq` (True) ->
-                                                        (case (_lhsIaRenMp) of
-                                                         { _x1OaRenMp | _x1OaRenMp `seq` (True) ->
-                                                         (case (x1_1 _x1OaRenMp _x1Olev _x1OmoduleNm _x1Oropts) of
-                                                          { ( _x1IcTrf) | True ->
-                                                              (case ((_x1IcTrf,_x2IcTrf)) of
-                                                               { _cTrf | _cTrf `seq` (True) ->
-                                                               (case (_cTrf) of
-                                                                { _lhsOcTrf | _lhsOcTrf `seq` (True) ->
-                                                                ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }))
-                               in  sem_CMetas_Tuple_1)) of
-                        { ( sem_CMetas_1) | True ->
-                        ( _lhsOgIniq,_lhsOprotectableBindingNames,sem_CMetas_1) }) }) }) }) }) }) }))
 -- CModule -----------------------------------------------------
 {-
    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
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/UsedModNm)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/UsedModNm)
 module UHC.Light.Compiler.Core.UsedModNms(cmodUsedModNms) where
 
 import qualified Data.Set as Set
@@ -232,11 +232,7 @@
          usedNmS              : HsNameS
    alternatives:
       alternative Bind:
-         child bindMeta       : CMetas 
          child expr           : CExpr 
-      alternative Meta:
-         child aspectKeyS     : {ACoreBindAspectKeyS}
-         child cmetas         : CMetas 
       alternative Val:
          child aspectKeyS     : {ACoreBindAspectKeyS}
          child mlev           : {MetaLev}
@@ -254,10 +250,8 @@
 -- cata
 sem_CBound :: CBound ->
               T_CBound
-sem_CBound (CBound_Bind _bindMeta _expr) =
-    (sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
-sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
-    (sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
+sem_CBound (CBound_Bind _expr) =
+    (sem_CBound_Bind (sem_CExpr _expr))
 sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) =
     (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr))
 sem_CBound (CBound_Ty _aspectKeyS _ty) =
@@ -267,26 +261,13 @@
 -- semantic domain
 type T_CBound = HsName ->
                 ( HsNameS)
-sem_CBound_Bind :: T_CMetas ->
-                   T_CExpr ->
+sem_CBound_Bind :: T_CExpr ->
                    T_CBound
-sem_CBound_Bind bindMeta_ expr_ =
+sem_CBound_Bind expr_ =
     (\ _lhsInm ->
          (case (expr_) of
           { ( _exprIintroducedNmS,_exprIusedNmS) ->
-              (case (bindMeta_) of
-               { ( _bindMetaIusedNmS) ->
-                   (case (_bindMetaIusedNmS `Set.union` _exprIusedNmS) of
-                    { _lhsOusedNmS ->
-                    ( _lhsOusedNmS) }) }) }))
-sem_CBound_Meta :: ACoreBindAspectKeyS ->
-                   T_CMetas ->
-                   T_CBound
-sem_CBound_Meta aspectKeyS_ cmetas_ =
-    (\ _lhsInm ->
-         (case (cmetas_) of
-          { ( _cmetasIusedNmS) ->
-              (case (_cmetasIusedNmS) of
+              (case (_exprIusedNmS) of
                { _lhsOusedNmS ->
                ( _lhsOusedNmS) }) }))
 sem_CBound_Val :: ACoreBindAspectKeyS ->
@@ -962,136 +943,6 @@
 sem_CImportL_Nil :: T_CImportL
 sem_CImportL_Nil =
     ( )
--- CMetaBind ---------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         usedNmS              : HsNameS
-   alternatives:
-      alternative Plain:
-      alternative Function0:
-      alternative Function1:
-      alternative Apply0:
--}
--- cata
-sem_CMetaBind :: CMetaBind ->
-                 T_CMetaBind
-sem_CMetaBind (CMetaBind_Plain) =
-    (sem_CMetaBind_Plain)
-sem_CMetaBind (CMetaBind_Function0) =
-    (sem_CMetaBind_Function0)
-sem_CMetaBind (CMetaBind_Function1) =
-    (sem_CMetaBind_Function1)
-sem_CMetaBind (CMetaBind_Apply0) =
-    (sem_CMetaBind_Apply0)
--- semantic domain
-type T_CMetaBind = ( HsNameS)
-sem_CMetaBind_Plain :: T_CMetaBind
-sem_CMetaBind_Plain =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaBind_Function0 :: T_CMetaBind
-sem_CMetaBind_Function0 =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaBind_Function1 :: T_CMetaBind
-sem_CMetaBind_Function1 =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaBind_Apply0 :: T_CMetaBind
-sem_CMetaBind_Apply0 =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
--- CMetaVal ----------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         usedNmS              : HsNameS
-   alternatives:
-      alternative Val:
-      alternative Dict:
-      alternative DictClass:
-         child tracks         : {[Track]}
-      alternative DictInstance:
-         child tracks         : {[Track]}
-      alternative Track:
-         child track          : {Track}
--}
--- cata
-sem_CMetaVal :: CMetaVal ->
-                T_CMetaVal
-sem_CMetaVal (CMetaVal_Val) =
-    (sem_CMetaVal_Val)
-sem_CMetaVal (CMetaVal_Dict) =
-    (sem_CMetaVal_Dict)
-sem_CMetaVal (CMetaVal_DictClass _tracks) =
-    (sem_CMetaVal_DictClass _tracks)
-sem_CMetaVal (CMetaVal_DictInstance _tracks) =
-    (sem_CMetaVal_DictInstance _tracks)
-sem_CMetaVal (CMetaVal_Track _track) =
-    (sem_CMetaVal_Track _track)
--- semantic domain
-type T_CMetaVal = ( HsNameS)
-sem_CMetaVal_Val :: T_CMetaVal
-sem_CMetaVal_Val =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaVal_Dict :: T_CMetaVal
-sem_CMetaVal_Dict =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaVal_DictClass :: ([Track]) ->
-                          T_CMetaVal
-sem_CMetaVal_DictClass tracks_ =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaVal_DictInstance :: ([Track]) ->
-                             T_CMetaVal
-sem_CMetaVal_DictInstance tracks_ =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
-sem_CMetaVal_Track :: Track ->
-                      T_CMetaVal
-sem_CMetaVal_Track track_ =
-    (case (Set.empty) of
-     { _lhsOusedNmS ->
-     ( _lhsOusedNmS) })
--- CMetas ------------------------------------------------------
-{-
-   visit 0:
-      synthesized attribute:
-         usedNmS              : HsNameS
-   alternatives:
-      alternative Tuple:
-         child x1             : CMetaBind 
-         child x2             : CMetaVal 
--}
--- cata
-sem_CMetas :: CMetas ->
-              T_CMetas
-sem_CMetas ( x1,x2) =
-    (sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
--- semantic domain
-type T_CMetas = ( HsNameS)
-sem_CMetas_Tuple :: T_CMetaBind ->
-                    T_CMetaVal ->
-                    T_CMetas
-sem_CMetas_Tuple x1_ x2_ =
-    (case (x2_) of
-     { ( _x2IusedNmS) ->
-         (case (x1_) of
-          { ( _x1IusedNmS) ->
-              (case (_x1IusedNmS `Set.union` _x2IusedNmS) of
-               { _lhsOusedNmS ->
-               ( _lhsOusedNmS) }) }) })
 -- CModule -----------------------------------------------------
 {-
    visit 0:
diff --git a/src/UHC/Light/Compiler/Core/Utils.hs b/src/UHC/Light/Compiler/Core/Utils.hs
--- a/src/UHC/Light/Compiler/Core/Utils.hs
+++ b/src/UHC/Light/Compiler/Core/Utils.hs
@@ -37,7 +37,7 @@
 
 
 {-# LINE 46 "src/ehc/Core/Utils.chs" #-}
-type RCEEnv = RCEEnv' CExpr CMetaVal CBind CBound CTy
+type RCEEnv = RCEEnv' CExpr CBind CBound CTy
 
 {-# LINE 62 "src/ehc/Core/Utils.chs" #-}
 type FieldUpdateL e = AssocL HsName (e,Maybe Int)
diff --git a/src/UHC/Light/Compiler/CoreRun.hs b/src/UHC/Light/Compiler/CoreRun.hs
--- a/src/UHC/Light/Compiler/CoreRun.hs
+++ b/src/UHC/Light/Compiler/CoreRun.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun.ag)
 module UHC.Light.Compiler.CoreRun(module UHC.Light.Compiler.CoreRun.Prim
 , AGItf (..)
 , Mod (..), SExp (..), Exp (..), MbExp, Alt (..), Pat (..)
@@ -16,7 +16,7 @@
 , Ref2Nm
 , Nm2RefMp, emptyNm2RefMp, nm2refUnion, nm2RefMpInverse, nm2refLookup
 , ref2nmEmpty, ref2nmUnion, ref2nmLookup
-, mkLocLevRef, mkLocDifRef, mkGlobRef, mkImpRef, mkExpRef, mkModRef
+, mkLocLevRef, mkLocDifRef, mkGlobRef, mkImpRef, mkExpRef, mkModRef, mkTagRef, mkFldRef
 , mkExp, mkVar, mkVar', mkInt, mkInt', mkChar, mkChar', mkString, mkString'
 , mkDbg, mkDbg'
 , mkApp, mkApp', mkTup, mkTup', mkEval, mkTail, mkCase, mkLam, mkLam', mkLet, mkLet', mkFFI, mkFFI'
@@ -192,13 +192,13 @@
   -- | fld of memory/constructor node referred to by other ref
   | RRef_Fld
       { rrefRef         :: !RRef    -- ^ of what this is a field
-      , rrefEntry       :: !Int     -- ^ entry inside level
+      , rrefEntry       :: !Int     -- ^ entry inside node, zero base index
       }
   -- | debug variant, holding original name
   | RRef_Dbg
       { rrefNm          :: !HsName
       }
-  deriving (Eq,Ord)
+  deriving (Eq,Ord,Generic)
 
 instance Show RRef where
   show _ = "RRef"
@@ -307,122 +307,33 @@
 
 
 
-instance Binary Mod where
-  put (Mod_Mod a b c d e f g h i) = put a >> put b >> put c >> put d >> put e >> put f >> put g >> put h >> put i
-  get = liftM9 Mod_Mod get get get get get get get get get
-
 instance Serialize Mod where
   sput = sputPlain
   sget = sgetPlain
 
-instance Binary Meta where
-  put (Meta_Data a b) = {- putWord8 0 >> -} put a >> put b
-  get = {- do t <- getWord8
-           case t of
-             0 -> -} liftM2 Meta_Data get get
-
-instance Binary Import where
-  put (Import_Import a) = {- putWord8 0 >> -} put a
-  get = {- do t <- getWord8
-           case t of
-             0 -> -} liftM  Import_Import get
-
-instance Binary Export where
-  put (Export_Export a b) = {- putWord8 0 >> -} put a >> put b
-  get = {- do t <- getWord8
-           case t of
-             0 -> -} liftM2 Export_Export get get
-
-instance Binary DataCon where
-  put (DataCon_Con a b) = {- putWord8 0 >> -} put a >> put b
-  get = {- do t <- getWord8
-           case t of
-             0 -> -} liftM2 DataCon_Con get get
-
-instance Binary Exp where
-  put (Exp_SExp 	a  			) = putWord8 0 >> put a
-  put (Exp_Tup 		a b			) = putWord8 1 >> put a >> put b
-  put (Exp_Let 		a b c d		) = putWord8 2 >> put a >> put b >> put c >> put d
-  put (Exp_App 		a b			) = putWord8 3 >> put a >> put b
-  put (Exp_Lam 		a b c d	e	) = putWord8 4 >> put a >> put b >> put c >> put d >> put e
-  put (Exp_Force 	a  			) = putWord8 5 >> put a
-  put (Exp_Tail 	a  			) = putWord8 6 >> put a
-  put (Exp_Case		a b			) = putWord8 7 >> put a >> put b
-  put (Exp_FFI		a b			) = putWord8 8 >> put a >> put b
-  get = do t <- getWord8
-           case t of
-             0 -> liftM  Exp_SExp 		get
-             1 -> liftM2 Exp_Tup 		get get
-             2 -> liftM4 Exp_Let 		get get get get
-             3 -> liftM2 Exp_App 		get get
-             4 -> liftM5 Exp_Lam 		get get get get get
-             5 -> liftM  Exp_Force 		get
-             6 -> liftM  Exp_Tail 		get
-             7 -> liftM2 Exp_Case 		get get
-             8 -> liftM2 Exp_FFI 		get get
-
-instance Binary SExp where
-  put (SExp_Var 	a  			) = putWord8 0 >> put a
-  put (SExp_Int   	a  			) = putWord8 1 >> put a
-  put (SExp_Char  	a  			) = putWord8 2 >> put a
-  put (SExp_String	a  			) = putWord8 3 >> put a
-  put (SExp_Integer	a  			) = putWord8 4 >> put a
-  put (SExp_Dbg		a  			) = putWord8 5 >> put a
-  get = do t <- getWord8
-           case t of
-             0 -> liftM  SExp_Var 		get
-             1 -> liftM  SExp_Int   	get
-             2 -> liftM  SExp_Char  	get
-             3 -> liftM  SExp_String	get
-             4 -> liftM  SExp_Integer	get
-             5 -> liftM  SExp_Dbg 		get
-
-instance Binary Alt where
-  put (Alt_Alt a b) = {- putWord8 0 >> -} put a >> put b
-  get = {- do t <- getWord8
-           case t of
-             0 -> -} liftM2 Alt_Alt get get
-
-instance Binary Pat where
-  put (Pat_Con 			a  			) = {- putWord8 0 >> -} put a
-  get = {- do t <- getWord8
-           case t of
-             0 -> -} liftM  Pat_Con 		get
-
 instance Binary RunPrim where
   put = putEnum
   get = getEnum
 
-instance Binary RRef where
-  put (RRef_Glb 		a b			) = putWord8 0 >> put a >> put b
-  put (RRef_Loc 		a b			) = putWord8 1 >> put a >> put b
-  put (RRef_LDf 		a b			) = putWord8 2 >> put a >> put b
-  put (RRef_Tag 		a  			) = putWord8 3 >> put a
-  put (RRef_Fld 		a b			) = putWord8 4 >> put a >> put b
-  put (RRef_Dbg 		a  			) = putWord8 5 >> put a
-  put (RRef_Mod 		a  			) = putWord8 6 >> put a
-  put (RRef_Imp 		a b			) = putWord8 7 >> put a >> put b
-  put (RRef_Exp 		a b			) = putWord8 8 >> put a >> put b
-  put (RRef_Unr 		a  			) = putWord8 9 >> put a
-  get = do t <- getWord8
-           case t of
-             0 -> liftM2 RRef_Glb 		get get
-             1 -> liftM2 RRef_Loc 		get get
-             2 -> liftM2 RRef_LDf 		get get
-             3 -> liftM  RRef_Tag 		get
-             4 -> liftM2 RRef_Fld 		get get
-             5 -> liftM  RRef_Dbg 		get
-             6 -> liftM  RRef_Mod 		get
-             7 -> liftM2 RRef_Imp 		get get
-             8 -> liftM2 RRef_Exp 		get get
-             9 -> liftM  RRef_Unr 		get
-
 instance Binary a => Binary (CRArray a) where
   put = put . crarrayToList
   get = fmap crarrayFromList get
 
 
 
+instance Binary Mod
+instance Binary Meta
+instance Binary Import
+instance Binary Export
+instance Binary DataCon
+instance Binary Exp
+instance Binary SExp
+instance Binary Alt
+instance Binary Pat
+instance Binary RRef
+
+
+
 -- **************************************
 -- Construction: references
 -- **************************************
@@ -451,8 +362,16 @@
 mkModRef :: Int -> RRef
 mkModRef = RRef_Mod
 
+-- | 'RRef' to tag of node
+mkTagRef :: RRef -> RRef
+mkTagRef = RRef_Tag
 
+-- | 'RRef' to field of node, using a zero based index
+mkFldRef :: RRef -> Int -> RRef
+mkFldRef = RRef_Fld
 
+
+
 -- **************************************
 -- Construction: constants as SExp or Exp
 -- **************************************
@@ -693,10 +612,13 @@
 
 -- AGItf -------------------------------------------------------
 data AGItf = AGItf_AGItf {module_AGItf_AGItf :: !(Mod)}
+           deriving ( Generic)
 -- Alt ---------------------------------------------------------
 data Alt = Alt_Alt {ref2nm_Alt_Alt :: !(Ref2Nm),expr_Alt_Alt :: !(Exp)}
+         deriving ( Generic)
 -- DataCon -----------------------------------------------------
 data DataCon = DataCon_Con {conNm_DataCon_Con :: !(HsName),tagNr_DataCon_Con :: !(Int)}
+             deriving ( Generic)
 -- DataConL ----------------------------------------------------
 type DataConL = [DataCon]
 -- Exp ---------------------------------------------------------
@@ -709,24 +631,30 @@
          | Exp_Tail {expr_Exp_Tail :: !(Exp)}
          | Exp_Case {expr_Exp_Case :: !(SExp),alts_Exp_Case :: !((CRArray Alt))}
          | Exp_FFI {prim_Exp_FFI :: !(RunPrim),args_Exp_FFI :: !((CRArray SExp))}
+         deriving ( Generic)
 -- Export ------------------------------------------------------
 data Export = Export_Export {nm_Export_Export :: !(HsName),offset_Export_Export :: !(Int)}
+            deriving ( Generic)
 -- ExportL -----------------------------------------------------
 type ExportL = [Export]
 -- Import ------------------------------------------------------
 data Import = Import_Import {nm_Import_Import :: !(HsName)}
+            deriving ( Generic)
 -- ImportL -----------------------------------------------------
 type ImportL = [Import]
 -- MbExp -------------------------------------------------------
 type MbExp = Maybe (Exp)
 -- Meta --------------------------------------------------------
 data Meta = Meta_Data {tyNm_Meta_Data :: !(HsName),dataCons_Meta_Data :: !(DataConL)}
+          deriving ( Generic)
 -- MetaL -------------------------------------------------------
 type MetaL = [Meta]
 -- Mod ---------------------------------------------------------
 data Mod = Mod_Mod {ref2nm_Mod_Mod :: !(Ref2Nm),moduleNm_Mod_Mod :: !(HsName),moduleNr_Mod_Mod :: !((Maybe Int)),stkDepth_Mod_Mod :: !(Int),imports_Mod_Mod :: !(ImportL),exports_Mod_Mod :: !(ExportL),metas_Mod_Mod :: !(MetaL),binds_Mod_Mod :: !((CRArray Bind)),mbbody_Mod_Mod :: !(MbExp)}
+         deriving ( Generic)
 -- Pat ---------------------------------------------------------
 data Pat = Pat_Con {tag_Pat_Con :: !(Int)}
+         deriving ( Generic)
 -- SExp --------------------------------------------------------
 data SExp = SExp_Var {ref_SExp_Var :: !(RRef)}
           | SExp_Int {int_SExp_Int :: !(Int)}
@@ -734,3 +662,4 @@
           | SExp_String {str_SExp_String :: !(String)}
           | SExp_Integer {integer_SExp_Integer :: !(Integer)}
           | SExp_Dbg {msg_SExp_Dbg :: !(String)}
+          deriving ( Generic)
diff --git a/src/UHC/Light/Compiler/CoreRun/API.hs b/src/UHC/Light/Compiler/CoreRun/API.hs
--- a/src/UHC/Light/Compiler/CoreRun/API.hs
+++ b/src/UHC/Light/Compiler/CoreRun/API.hs
@@ -35,6 +35,8 @@
   , mkImpRef
   , mkExpRef
   , mkModRef
+  , mkTagRef
+  , mkFldRef
 
   -- ** Expressions
   , mkExp
diff --git a/src/UHC/Light/Compiler/CoreRun/Check.hs b/src/UHC/Light/Compiler/CoreRun/Check.hs
--- a/src/UHC/Light/Compiler/CoreRun/Check.hs
+++ b/src/UHC/Light/Compiler/CoreRun/Check.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun/Check.)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun/Check.)
 module UHC.Light.Compiler.CoreRun.Check(crmodCheck', Inh_AGItf (..), Syn_AGItf (..)) where
 
 import UHC.Light.Compiler.Base.Common
diff --git a/src/UHC/Light/Compiler/CoreRun/ModImpExp.hs b/src/UHC/Light/Compiler/CoreRun/ModImpExp.hs
--- a/src/UHC/Light/Compiler/CoreRun/ModImpExp.hs
+++ b/src/UHC/Light/Compiler/CoreRun/ModImpExp.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun/ModImp)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun/ModImp)
 module UHC.Light.Compiler.CoreRun.ModImpExp(crmodImpExp', Inh_AGItf (..), Syn_AGItf (..)) where
 
 import UHC.Light.Compiler.Base.Common
diff --git a/src/UHC/Light/Compiler/CoreRun/Pretty.hs b/src/UHC/Light/Compiler/CoreRun/Pretty.hs
--- a/src/UHC/Light/Compiler/CoreRun/Pretty.hs
+++ b/src/UHC/Light/Compiler/CoreRun/Pretty.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun/Pretty)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/CoreRun/Pretty)
 module UHC.Light.Compiler.CoreRun.Pretty(ppMod', ppExp') where
 
 import UHC.Util.Pretty
diff --git a/src/UHC/Light/Compiler/EH.hs b/src/UHC/Light/Compiler/EH.hs
--- a/src/UHC/Light/Compiler/EH.hs
+++ b/src/UHC/Light/Compiler/EH.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/EH.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/EH.ag)
 module UHC.Light.Compiler.EH(AGItf (..), Decl (..), Decls, TyExpr (..), Expr (..), PatExpr (..)
 , ExprAnn (..), PatExprAnn (..), TyExprAnn (..)
 , mkLet
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
@@ -539,7 +539,7 @@
                                                                                                                                                                                      { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                      (case (trppEmpty) of
                                                                                                                                                                                       { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                      (case (ppNestTrPP _lhsIopts ["AGItf","AGItf"] [] [_exprIppAST] _trppHere) of
+                                                                                                                                                                                      (case (ppNestTrPP ["AGItf","AGItf"] [] [_exprIppAST] _trppHere) of
                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                        (case (ppTy (tyQuantifyClosed _exprIty)) of
                                                                                                                                                                                         { _lhsOtopTyPP | _lhsOtopTyPP `seq` (True) ->
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
@@ -522,7 +522,7 @@
                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                             { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP _lhsIopts ["CaseAlt","Pat"] [] [_patExprIppAST,_exprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["CaseAlt","Pat"] [] [_patExprIppAST,_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case (RAlt_Alt [_patExprIrpat] _exprIcexpr _exprIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOralt | _lhsOralt `seq` (True) ->
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
@@ -495,7 +495,7 @@
                                                                                                                                                                                                                                                                                                                                                                             { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                             (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                              { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                             (case (ppNestTrPP _lhsIopts ["CaseAlts","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                             (case (ppNestTrPP ["CaseAlts","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                               { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case (empty) of
                                                                                                                                                                                                                                                                                                                                                                                { _extraPP | _extraPP `seq` (True) ->
@@ -663,7 +663,7 @@
                                                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                 (case (trppEmpty) of
                                                                                                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                 (case (ppNestTrPP _lhsIopts ["CaseAlts","Nil"] [] [] _trppHere) of
+                                                                                                                                                                                                                 (case (ppNestTrPP ["CaseAlts","Nil"] [] [] _trppHere) of
                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                    { _lhsOppL | _lhsOppL `seq` (True) ->
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
@@ -595,10 +595,10 @@
                                                                                                                                                                                                                                                                                                                    { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                     { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP _lhsIopts ["DataConstr","Constr"] [ppTrNm conNm_]
-                                                                                                                                                                                                                                                                                                                                                [ _fieldsIppAST
-                                                                                                                                                                                                                                                                                                                                                , _mbGadtTyExprIppAST
-                                                                                                                                                                                                                                                                                                                                                ] _trppHere) of
+                                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP ["DataConstr","Constr"] [ppTrNm conNm_]
+                                                                                                                                                                                                                                                                                                                                      [ _fieldsIppAST
+                                                                                                                                                                                                                                                                                                                                      , _mbGadtTyExprIppAST
+                                                                                                                                                                                                                                                                                                                                      ] _trppHere) of
                                                                                                                                                                                                                                                                                                                      { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                       { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -477,7 +477,7 @@
                                                                                                                                                                                                                                                                                                             { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                              { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                             (case (ppNestTrPP _lhsIopts ["DataConstrs","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                             (case (ppNestTrPP ["DataConstrs","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                               { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (_hdIpp : _tlIppL) of
                                                                                                                                                                                                                                                                                                                { _lhsOppL | _lhsOppL `seq` (True) ->
@@ -637,7 +637,7 @@
                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                         (case (trppEmpty) of
                                                                                                                                                                          { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                         (case (ppNestTrPP _lhsIopts ["DataConstrs","Nil"] [] [] _trppHere) of
+                                                                                                                                                                         (case (ppNestTrPP ["DataConstrs","Nil"] [] [] _trppHere) of
                                                                                                                                                                           { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                           (case ([]) of
                                                                                                                                                                            { _lhsOppL | _lhsOppL `seq` (True) ->
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
@@ -369,7 +369,7 @@
                                                                                                                                                                                                                                      { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                      (case (trppEmpty) of
                                                                                                                                                                                                                                       { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                      (case (ppNestTrPP _lhsIopts ["DataField","Field"] [pp (maybe [] (map ppTrNm) mbLabels_)] [_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                      (case (ppNestTrPP ["DataField","Field"] [pp (maybe [] (map ppTrNm) mbLabels_)] [_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                        { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                        (case (_ppAST) of
                                                                                                                                                                                                                                         { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -696,7 +696,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (ppNestTrPP _lhsIopts ["DataFieldExpr","Upd"] [ppTrNm nm_] [_dataFieldExprIppAST,_exprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (ppNestTrPP ["DataFieldExpr","Upd"] [ppTrNm nm_] [_dataFieldExprIppAST,_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                       { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -922,7 +922,7 @@
                                                                                                                                                                                                                                                             { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                             (case (trppEmpty) of
                                                                                                                                                                                                                                                              { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                             (case (ppNestTrPP _lhsIopts ["DataFieldExpr","Con"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                                             (case (ppNestTrPP ["DataFieldExpr","Con"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                                               { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                               (case (_ppAST) of
                                                                                                                                                                                                                                                                { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1223,7 +1223,7 @@
                                                                                                                                                                                                                                                                                                                                       { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                        { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                       (case (ppNestTrPP _lhsIopts ["DataFieldExpr","Expr"] [] [_exprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                       (case (ppNestTrPP ["DataFieldExpr","Expr"] [] [_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                         { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                          { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -656,7 +656,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP _lhsIopts ["DataFieldPatExpr","Ext"] [ppTrNm nm_] [_dataFieldPatExprIppAST,_patExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP ["DataFieldPatExpr","Ext"] [ppTrNm nm_] [_dataFieldPatExprIppAST,_patExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -883,7 +883,7 @@
                                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["DataFieldPatExpr","Con"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                          (case (ppNestTrPP ["DataFieldPatExpr","Con"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                            { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                            (case (_ppAST) of
                                                                                                                                                                                                                                             { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -423,7 +423,7 @@
                                                                                                                                                                                                                                                                                        { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (trppEmpty) of
                                                                                                                                                                                                                                                                                         { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                        (case (ppNestTrPP _lhsIopts ["DataFields","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                        (case (ppNestTrPP ["DataFields","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                          { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (_hdIpp : _tlIppL) of
                                                                                                                                                                                                                                                                                           { _lhsOppL | _lhsOppL `seq` (True) ->
@@ -561,7 +561,7 @@
                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                (case (ppNestTrPP _lhsIopts ["DataFields","Nil"] [] [] _trppHere) of
+                                                                                                                                                                (case (ppNestTrPP ["DataFields","Nil"] [] [] _trppHere) of
                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                  (case ([]) of
                                                                                                                                                                   { _lhsOppL | _lhsOppL `seq` (True) ->
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
@@ -718,7 +718,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (ppNestTrPP _lhsIopts ["Decls","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (ppNestTrPP ["Decls","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_hdItrpp >< _tlItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -993,7 +993,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["Decls","Nil"] [] [] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                          (case (ppNestTrPP ["Decls","Nil"] [] [] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
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_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
@@ -265,7 +265,7 @@
                                                                                                                                                                              { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                              (case (trppEmpty) of
                                                                                                                                                                               { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                              (case (ppNestTrPP _lhsIopts ["FuncDep","Dep"] [] [_fromTvsIppAST,_toTvsIppAST] _trppHere) of
+                                                                                                                                                                              (case (ppNestTrPP ["FuncDep","Dep"] [] [_fromTvsIppAST,_toTvsIppAST] _trppHere) of
                                                                                                                                                                                { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                (case (_ppAST) of
                                                                                                                                                                                 { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -264,7 +264,7 @@
                                                                                                                                                                      { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                      (case (trppEmpty) of
                                                                                                                                                                       { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                      (case (ppNestTrPP _lhsIopts ["FuncDeps","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                      (case (ppNestTrPP ["FuncDeps","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                        (case (_hdIpp : _tlIppL) of
                                                                                                                                                                         { _lhsOppL | _lhsOppL `seq` (True) ->
@@ -340,7 +340,7 @@
                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                (case (trppEmpty) of
                                                                                                 { _trppHere | _trppHere `seq` (True) ->
-                                                                                                (case (ppNestTrPP _lhsIopts ["FuncDeps","Nil"] [] [] _trppHere) of
+                                                                                                (case (ppNestTrPP ["FuncDeps","Nil"] [] [] _trppHere) of
                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                  (case ([]) of
                                                                                                   { _lhsOppL | _lhsOppL `seq` (True) ->
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
@@ -283,7 +283,7 @@
                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["MbTyExpr","Just"] [] [_justIppAST] _trppHere) of
+                                                                                                                                                                                          (case (ppNestTrPP ["MbTyExpr","Just"] [] [_justIppAST] _trppHere) of
                                                                                                                                                                                            { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                            (case (_ppAST) of
                                                                                                                                                                                             { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -388,7 +388,7 @@
                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                         (case (trppEmpty) of
                                                                                                                          { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                         (case (ppNestTrPP _lhsIopts ["MbTyExpr","Nothing"] [] [] _trppHere) of
+                                                                                                                         (case (ppNestTrPP ["MbTyExpr","Nothing"] [] [] _trppHere) of
                                                                                                                           { _ppAST | _ppAST `seq` (True) ->
                                                                                                                           (case (_ppAST) of
                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -1121,7 +1121,7 @@
                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                (case (ppNestTrPP _lhsIopts ["PatExpr","IConst"] [_pp] [] _trppHere) of
+                                                                                                                                                                                                                                                                (case (ppNestTrPP ["PatExpr","IConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                                   { _finalTy | _finalTy `seq` (True) ->
@@ -1362,7 +1362,7 @@
                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                (case (ppNestTrPP _lhsIopts ["PatExpr","CConst"] [_pp] [] _trppHere) of
+                                                                                                                                                                                                                                                                (case (ppNestTrPP ["PatExpr","CConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                                   { _finalTy | _finalTy `seq` (True) ->
@@ -1647,7 +1647,7 @@
                                                                                                                                                                                                                                                                                  { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case ((_lhsItr TraceOn_EhValGam $ ["PatExpr.Con" >#< hsnUn nm_] ++ [ "ty_g_=" >#< ppTy _ty_g_, "@lhs.patTyVarMp |=> ty_g_=" >#< ppTy (_lhsIpatTyVarMp `varUpd` _ty_g_), "patFunTy=" >#< ppTy _patFunTy ])) of
                                                                                                                                                                                                                                                                                   { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                  (case (ppNestTrPP _lhsIopts ["PatExpr","Con"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                                                                  (case (ppNestTrPP ["PatExpr","Con"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                                                                    { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                    (case (_tvarv1_) of
                                                                                                                                                                                                                                                                                     { _knPatTy | _knPatTy `seq` (True) ->
@@ -1935,7 +1935,7 @@
                                                                                                                                                                                                                                                                               { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                               (case (trppEmpty) of
                                                                                                                                                                                                                                                                                { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                               (case (ppNestTrPP _lhsIopts ["PatExpr","Var"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                                                               (case (ppNestTrPP ["PatExpr","Var"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                                                                 { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                 (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                                                  { _finalTy | _finalTy `seq` (True) ->
@@ -2305,7 +2305,7 @@
                                                                                                                                                                                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                   (case (ppNestTrPP _lhsIopts ["PatExpr","VarAs"] [ppTrNm nm_] [_patExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                   (case (ppNestTrPP ["PatExpr","VarAs"] [ppTrNm nm_] [_patExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_patExprIrpat {rcpPNm = _cpNm}) of
                                                                                                                                                                                                                                                                                                                                                                      { _rpat | _rpat `seq` (True) ->
@@ -2738,7 +2738,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP _lhsIopts ["PatExpr","App"] [] [_funcIppAST,_argIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP ["PatExpr","App"] [] [_funcIppAST,_argIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_argIrpat) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOrpat | _lhsOrpat `seq` (True) ->
@@ -3096,7 +3096,7 @@
                                                                                                                                                                                                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                 (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                 (case (ppNestTrPP _lhsIopts ["PatExpr","AppTop"] [] [_patExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                 (case (ppNestTrPP ["PatExpr","AppTop"] [] [_patExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (_patExprIappFunNm) of
                                                                                                                                                                                                                                                                                                                                                                    { _appFunNm | _appFunNm `seq` (True) ->
@@ -3450,7 +3450,7 @@
                                                                                                                                                                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                   (case (ppNestTrPP _lhsIopts ["PatExpr","Parens"] [] [_patExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                   (case (ppNestTrPP ["PatExpr","Parens"] [] [_patExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (_patExprIrpat) of
                                                                                                                                                                                                                                                                                                                                                      { _lhsOrpat | _lhsOrpat `seq` (True) ->
@@ -4160,7 +4160,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                                        (case (ppNestTrPP _lhsIopts ["PatExpr","TypeAs"] [] [_patExprIppAST,_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                                        (case (ppNestTrPP ["PatExpr","TypeAs"] [] [_patExprIppAST,_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_patExprIrpat) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOrpat | _lhsOrpat `seq` (True) ->
@@ -4395,7 +4395,7 @@
                                                                                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                   (case (ppNestTrPP _lhsIopts ["PatExpr","SConst"] [_pp] [] _trppHere) of
+                                                                                                                                                                                                                                                                   (case (ppNestTrPP ["PatExpr","SConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                     (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                                      { _finalTy | _finalTy `seq` (True) ->
@@ -4735,7 +4735,7 @@
                                                                                                                                                                                                                                                                                                                                                    { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                     { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP _lhsIopts ["PatExpr","Rec"] [] [_recPatExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP ["PatExpr","Rec"] [] [_recPatExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                      { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                       { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -5093,7 +5093,7 @@
                                                                                                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                (case (ppNestTrPP _lhsIopts ["PatExpr","DataFields"] [] [_dataFieldPatExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                (case (ppNestTrPP ["PatExpr","DataFields"] [] [_dataFieldPatExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                  { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -578,7 +578,7 @@
                                                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case ((_lhsItr TraceOn_EhClsGam $ ["Class" >#< nm_] ++ [ "clGam=" >#< ppGam _lhsIclGam ])) of
                                                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                (case (ppNestTrPP _lhsIopts ["PrExpr","Class"] [ppTrNm nm_] [_tyExprsIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                (case (ppNestTrPP ["PrExpr","Class"] [ppTrNm nm_] [_tyExprsIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                  { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (_ppAST) of
                                                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -844,7 +844,7 @@
                                                                                                                                                                                                                                                                                                                                                            { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                             { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP _lhsIopts ["PrExpr","Arrow"] [] [_argIppAST,_resIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["PrExpr","Arrow"] [] [_argIppAST,_resIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                              { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                               { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1269,7 +1269,7 @@
                                                                                                                                                                                                                                                                                  { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case (trppEmpty) of
                                                                                                                                                                                                                                                                                   { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                  (case (ppNestTrPP _lhsIopts ["PrExpr","Lacks"] [ppTrNm nm_] [_rowTyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                  (case (ppNestTrPP ["PrExpr","Lacks"] [ppTrNm nm_] [_rowTyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                    { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                    (case (_ppAST) of
                                                                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1475,7 +1475,7 @@
                                                                                                                                                                                                                                                                                           { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                                            { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                           (case (ppNestTrPP _lhsIopts ["PrExpr","DynVar"] [ppTrNm nm_] [_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                           (case (ppNestTrPP ["PrExpr","DynVar"] [ppTrNm nm_] [_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                             { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (_ppAST) of
                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1746,7 +1746,7 @@
                                                                                                                                                                                                                                                                                                                                                               { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP _lhsIopts ["PrExpr","Eq"] [] [_tyExpr1IppAST,_tyExpr2IppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP ["PrExpr","Eq"] [] [_tyExpr1IppAST,_tyExpr2IppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                 { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                 (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -485,7 +485,7 @@
                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["RecExpr","Empty"] [] [] _trppHere) of
+                                                                                                                                                                                                                          (case (ppNestTrPP ["RecExpr","Empty"] [] [] _trppHere) of
                                                                                                                                                                                                                            { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                            (case (_ppAST) of
                                                                                                                                                                                                                             { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -917,7 +917,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                           (case (ppNestTrPP _lhsIopts ["RecExpr","Ext"] [ppTrNm _nm] [_recExprIppAST,_exprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                           (case (ppNestTrPP ["RecExpr","Ext"] [ppTrNm _nm] [_recExprIppAST,_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1343,7 +1343,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                          { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                         (case (ppNestTrPP _lhsIopts ["RecExpr","Upd"] [ppTrNm nm_] [_recExprIppAST,_exprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                         (case (ppNestTrPP ["RecExpr","Upd"] [ppTrNm nm_] [_recExprIppAST,_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1619,7 +1619,7 @@
                                                                                                                                                                                                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                     (case (ppNestTrPP _lhsIopts ["RecExpr","Expr"] [] [_exprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                     (case (ppNestTrPP ["RecExpr","Expr"] [] [_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                       { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                       (case (_ppAST) of
                                                                                                                                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -450,7 +450,7 @@
                                                                                                                                                                                                                                    { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                    (case (trppEmpty) of
                                                                                                                                                                                                                                     { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                    (case (ppNestTrPP _lhsIopts ["RecPatExpr","Empty"] [] [] _trppHere) of
+                                                                                                                                                                                                                                    (case (ppNestTrPP ["RecPatExpr","Empty"] [] [] _trppHere) of
                                                                                                                                                                                                                                      { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                      (case (_ppAST) of
                                                                                                                                                                                                                                       { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -902,7 +902,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                                                                           (case (ppNestTrPP _lhsIopts ["RecPatExpr","Ext"] [ppTrNm _nm] [_recPatExprIppAST,_patExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                                                                           (case (ppNestTrPP ["RecPatExpr","Ext"] [ppTrNm _nm] [_recPatExprIppAST,_patExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -1201,7 +1201,7 @@
                                                                                                                                                                                                                                                                                                                      { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                       { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                      (case (ppNestTrPP _lhsIopts ["RecPatExpr","Expr"] [] [_patExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                      (case (ppNestTrPP ["RecPatExpr","Expr"] [] [_patExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                        { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                         { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -317,7 +317,7 @@
                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["RowTyExpr","Empty"] [] [] _trppHere) of
+                                                                                                                                                                          (case (ppNestTrPP ["RowTyExpr","Empty"] [] [] _trppHere) of
                                                                                                                                                                            { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                            (case (_ppAST) of
                                                                                                                                                                             { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -571,7 +571,7 @@
                                                                                                                                                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                          { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                         (case (ppNestTrPP _lhsIopts ["RowTyExpr","Ext"] [ppTrNm _nm] [_rowTyExprIppAST,_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                         (case (ppNestTrPP ["RowTyExpr","Ext"] [ppTrNm _nm] [_rowTyExprIppAST,_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                           { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_ppAST) of
                                                                                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -718,7 +718,7 @@
                                                                                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                     (case (ppNestTrPP _lhsIopts ["RowTyExpr","Var"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                     (case (ppNestTrPP ["RowTyExpr","Var"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                       { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                       (case (_ppAST) of
                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
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
@@ -781,7 +781,7 @@
                                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["TyExpr","Con"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                          (case (ppNestTrPP ["TyExpr","Con"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                             { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -1074,7 +1074,7 @@
                                                                                                                                                                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["TyExpr","App"] [] [_funcIppAST,_argIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                                                                                          (case (ppNestTrPP ["TyExpr","App"] [] [_funcIppAST,_argIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (_funcItrpp >< _argItrpp) of
                                                                                                                                                                                                                                                                                                                                                                             { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -1280,7 +1280,7 @@
                                                                                                                                                                                                                                                                                            { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                             { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                            (case (ppNestTrPP _lhsIopts ["TyExpr","AppTop"] [] [_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["TyExpr","AppTop"] [] [_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_tyExprItrpp) of
                                                                                                                                                                                                                                                                                               { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -1485,7 +1485,7 @@
                                                                                                                                                                                                                                                                                            { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                             { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                            (case (ppNestTrPP _lhsIopts ["TyExpr","Parens"] [] [_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["TyExpr","Parens"] [] [_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_tyExprItrpp) of
                                                                                                                                                                                                                                                                                               { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -1857,7 +1857,7 @@
                                                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                   (case (ppNestTrPP _lhsIopts ["TyExpr","Wild"] [] [] _trppHere) of
+                                                                                                                                                                                                                                   (case (ppNestTrPP ["TyExpr","Wild"] [] [] _trppHere) of
                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                      { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -2019,7 +2019,7 @@
                                                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                   (case (ppNestTrPP _lhsIopts ["TyExpr","Mono"] [] [] _trppHere) of
+                                                                                                                                                                                                                                   (case (ppNestTrPP ["TyExpr","Mono"] [] [] _trppHere) of
                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                      { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -2196,7 +2196,7 @@
                                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                          (case (ppNestTrPP _lhsIopts ["TyExpr","Var"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                          (case (ppNestTrPP ["TyExpr","Var"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                             { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -2365,7 +2365,7 @@
                                                                                                                                                                                                                                      { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                      (case (trppEmpty) of
                                                                                                                                                                                                                                       { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                      (case (ppNestTrPP _lhsIopts ["TyExpr","VarWild"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                                                                                                                      (case (ppNestTrPP ["TyExpr","VarWild"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                        (case (trppEmpty) of
                                                                                                                                                                                                                                         { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -2593,7 +2593,7 @@
                                                                                                                                                                                                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                     (case (ppNestTrPP _lhsIopts ["TyExpr","Quant"] [text (showTyQu qu_),ppTrNm tyVar_] [_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                     (case (ppNestTrPP ["TyExpr","Quant"] [text (showTyQu qu_),ppTrNm tyVar_] [_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                       { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                       (case (_tyExprItrpp) of
                                                                                                                                                                                                                                                                                                        { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
@@ -2803,7 +2803,7 @@
                                                                                                                                                                                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                     (case (ppNestTrPP _lhsIopts ["TyExpr","Row"] [] [_rowTyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                     (case (ppNestTrPP ["TyExpr","Row"] [] [_rowTyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                       { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (_ppAST) of
                                                                                                                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -3010,7 +3010,7 @@
                                                                                                                                                                                                                                                                                            { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                             { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                            (case (ppNestTrPP _lhsIopts ["TyExpr","Pred"] [] [_prExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["TyExpr","Pred"] [] [_prExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                              { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_ppAST) of
                                                                                                                                                                                                                                                                                               { _lhsOppAST | _lhsOppAST `seq` (True) ->
@@ -3561,7 +3561,7 @@
                                                                                                                                                                                                                                                                                                            { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                             { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP _lhsIopts ["TyExpr","Lam"] [ppTrNm tyVar_] [_tyExprIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["TyExpr","Lam"] [ppTrNm tyVar_] [_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (_tyExprItrpp) of
                                                                                                                                                                                                                                                                                                               { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
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
@@ -370,7 +370,7 @@
                                                                                                                                                                                                                                                                                                    { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                    (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                     { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP _lhsIopts ["TyExprs","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP ["TyExprs","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                      { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                      (case (_hdIpp : _tlIppL) of
                                                                                                                                                                                                                                                                                                       { _lhsOppL | _lhsOppL `seq` (True) ->
@@ -489,7 +489,7 @@
                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                         (case (trppEmpty) of
                                                                                                                                                                          { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                         (case (ppNestTrPP _lhsIopts ["TyExprs","Nil"] [] [] _trppHere) of
+                                                                                                                                                                         (case (ppNestTrPP ["TyExprs","Nil"] [] [] _trppHere) of
                                                                                                                                                                           { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                           (case ([]) of
                                                                                                                                                                            { _lhsOppL | _lhsOppL `seq` (True) ->
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
@@ -246,7 +246,7 @@
                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                 (case (trppEmpty) of
                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                 (case (ppNestTrPP _lhsIopts ["TyVar","Var"] [ppTrNm nm_] [] _trppHere) of
+                                                                                                                                 (case (ppNestTrPP ["TyVar","Var"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                   (case (trppEmpty) of
                                                                                                                                    { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
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
@@ -283,7 +283,7 @@
                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                                                                                                   (case (ppNestTrPP _lhsIopts ["TyVars","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
+                                                                                                                                                                                                   (case (ppNestTrPP ["TyVars","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of
                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                     (case (_hdIpp : _tlIppL) of
                                                                                                                                                                                                      { _lhsOppL | _lhsOppL `seq` (True) ->
@@ -372,7 +372,7 @@
                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                     (case (trppEmpty) of
                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
-                                                                                                                     (case (ppNestTrPP _lhsIopts ["TyVars","Nil"] [] [] _trppHere) of
+                                                                                                                     (case (ppNestTrPP ["TyVars","Nil"] [] [] _trppHere) of
                                                                                                                       { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                       (case ([]) of
                                                                                                                        { _lhsOppL | _lhsOppL `seq` (True) ->
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
@@ -481,7 +481,6 @@
         -- overlapping errors; 20120209: is empty, detection done earlier
         -- overlapErrs = if null overlapEvids then [] else [rngLift range Err_OverlapPreds [ (cpoPr $ overlapevidPredOcc a,map pp $ overlapevidInfos a) | a <- overlapEvids]]
         overlapErrs = []
-        -- TyCore variant
         range = feRange $ fiEnv env
         -- debugging info
         -- dbgp = ppParensCommas $ Map.keys toProveHereCnstrMpCanon
@@ -731,7 +730,7 @@
         ,[CBind]                            -- bindings for super + ctxt class related context reduction, only Assume
         )
      -> ( CExpr                             -- the instance
-        , CMetaVal                          -- the meta info about the instance
+        , ()                          -- the meta info about the instance
         )
 mkNormalInstance
       opts sysfEnv clgi dataGam dictTag
@@ -741,7 +740,7 @@
       declsCBindL
       (chrDeclsCBindL,chrSuperProveCBindL,chrSuperCtxtAssumeCBindL)
   = ( bind4
-    , CMetaVal_DictInstance (TrackVarApply (ctagTyNm dictTag) [] : TrackVarApply dfltNm [] : instanceAndSuperTracks )
+    , ()
     )
   where dfltNm       = clgiDfltDictNm clgi
         rsltNm       = dictBuildNm
@@ -761,7 +760,7 @@
         -- mkCTy = SysF.ty2TyC opts sysfEnv
 
         instanceBindingPairs= [ (nm,v)
-                              | CBind_Bind nm asps <- declsCBindL, CBound_Bind _ v <- asps
+                              | CBind_Bind nm asps <- declsCBindL, CBound_Bind v <- asps
                               ]
         instanceMbBodies    = map (flip lookup instanceBindingPairs) memberNames
         instanceMbNewNames  = let f _ Nothing  = Nothing
@@ -770,16 +769,16 @@
         instanceMbNames     = let f _ Nothing  = Nothing
                                   f n (Just _) = Just n
                               in zipWith f memberNames instanceMbNewNames
-        instanceNameMapping = [ (nm, CMetaVal_Val, v)
+        instanceNameMapping = [ (nm, (), v)
                               | (Just nm,v) <- zip instanceMbNames memberNewVars
                               ]
-        instanceNewBindings = [ acoreBind1MetaTy nm CMetaVal_Val (acoreTyErr $ "EH.ToCore.mkNormalInstance.instanceNewBindings: " ++ show nm) v
+        instanceNewBindings = [ acoreBind1Ty nm (acoreTyErr $ "EH.ToCore.mkNormalInstance.instanceNewBindings: " ++ show nm) v
                               | (nm,Just v) <- zip memberNewNames instanceMbBodies
                               ]
 
         superNewVars        = map acoreVar superNmL
         superNameMapping    = zip3 superFldNmL
-                                   (repeat CMetaVal_Dict)
+                                   (repeat ())
                                    superNewVars
 
         superNameMapping2   = zip superFldNmL
@@ -804,13 +803,13 @@
         instanceCHRBindings = chrSuperCtxtAssumeCBindL ++ chrSuperProveCBindL ++ chrDeclsCBindL
 
         dict1     = acore1App dfltVar rsltVar
-        bind1     = acoreBind1MetaTy dfltNmStrict CMetaVal_Dict instanceTy dict1
+        bind1     = acoreBind1Ty dfltNmStrict instanceTy dict1
 
         dict2     = acoreLetBase (acoreBindcategStrict) [bind1] (mkSetFlds (superNameMapping ++ instanceNameMapping) dfltVarStrict)
-        bind2     = acoreBind1MetaTy rsltNmStrict (CMetaVal_Track TrackSelf) instanceTy dict2
+        bind2     = acoreBind1Ty rsltNmStrict instanceTy dict2
 
         dict3     = acoreLetBase (acoreBindcategPlain) [bind2] rsltVarStrict
-        bind3     = acoreBind1MetaTy rsltNm       (CMetaVal_Track TrackSelf) instanceTy dict3
+        bind3     = acoreBind1Ty rsltNm instanceTy dict3
 
         dict4     = acoreLetRec ([bind3] ++ instanceNewBindings ++ instanceCHRBindings) rsltVar
         bind4     = acoreLamTy (acoreTyErrLift "EH.ToCore.mkNormalInstance.dict4" contextArguments) dict4
@@ -859,8 +858,8 @@
       nmLs@(superFldNmL,superNmL,contextNmL)
       declsCBindL
       chrBindLs@(chrDeclsCBindL,chrSuperProveCBindL,chrSuperCtxtAssumeCBindL)
-  = [acoreBind1MetaTy dictNm generatedMeta instanceCTy generatedDictionary]
-  where (generatedDictionary, generatedMeta)
+  = [acoreBind1Ty dictNm instanceCTy generatedDictionary]
+  where (generatedDictionary, _ {- generatedMeta -})
           = case instVariant of
                InstNormal     -> mkNormalD  declsCBindL
                InstDefault    -> mkDefaultD declsCBindL
@@ -882,38 +881,37 @@
                 (instanceFieldL,memberNames,memberNewNames,memberNewVars)
                                     = mkInstanceNames opts sysfEnv dictNm instanceRecTy
 
-                lookupMeta n = if n `elem` superFldNmL then CMetaVal_Dict else CMetaVal_Val
+                -- lookupMeta n = if n `elem` superFldNmL then () else ()
 
                 defaultBindingPairs = [ (nm,v)
-                                      | CBind_Bind nm asps <- defaultBindings, CBound_Bind _ v <- asps
+                                      | CBind_Bind nm asps <- defaultBindings, CBound_Bind v <- asps
                                       ]
                 defaultMbBodies     = map (flip lookup defaultBindingPairs) memberNames
-                defaultMetas        = map lookupMeta                        memberNames
+                -- defaultMetas        = map lookupMeta                        memberNames
                 defaultBodies       = map (maybe (acoreBuiltinUndefined opts) id) defaultMbBodies
                 defaultMbNewNames   = let f _ Nothing  = Nothing
                                           f n (Just _) = Just n
                                       in zipWith f memberNewNames defaultMbBodies
-                defaultTracks       = map mbNameToTrack defaultMbNewNames
+                -- defaultTracks       = map mbNameToTrack defaultMbNewNames
 
-                defaultNewBindings  = zipWith3 (\n m b -> acoreBind1MetaTy n m (acoreTyErr $ "EH.ToCore.mkInstanceCBindL.defaultNewBindings: " ++ show n) b)
+                defaultNewBindings  = zipWith  (\n b -> acoreBind1Ty n (acoreTyErr $ "EH.ToCore.mkInstanceCBindL.defaultNewBindings: " ++ show n) b)
                                                                 memberNewNames
-                                                                defaultMetas
                                                                 defaultBodies
                 defaultCHRBindings  = chrDeclsCBindL
 
                 dict5     = acoreTagTupTy dictTag (acoreTyErr "EH.ToCore.mkInstanceCBindL.dict5") memberNewVars -- acoreApp (CExpr_Tup dictTag) memberNewVars
-                bind5     = acoreBind1MetaTy rsltNm CMetaVal_Dict (acoreTyErr $ "EH.ToCore.mkInstanceCBindL.bind5: " ++ show rsltNm) dict5
+                bind5     = acoreBind1Ty rsltNm (acoreTyErr $ "EH.ToCore.mkInstanceCBindL.bind5: " ++ show rsltNm) dict5
 
                 dict6     = acoreLetRec ([bind5] ++ defaultNewBindings ++ defaultCHRBindings) rsltVar
                 bind6     = acoreLam1Ty selfNm (acoreTyErr $ "EH.ToCore.mkInstanceCBindL.bind6: " ++ show selfNm) dict6
 
             in  ( bind6
-                , CMetaVal_DictClass defaultTracks
+                , ()
                 )
 
 
 
-mkInstanceSetFlds :: EHCOpts -> DataGam -> CTag -> AssocL HsName (Ty,CTy) -> Ty -> [(HsName,CMetaVal,CExpr)] -> CExpr -> CExpr
+mkInstanceSetFlds :: EHCOpts -> DataGam -> CTag -> AssocL HsName (Ty,CTy) -> Ty -> [(HsName,(),CExpr)] -> CExpr -> CExpr
 mkInstanceSetFlds opts dataGam dictTag instanceFieldL instanceRecTy
   = if   ehcCfgClassViaRec opts
     then mkSetFldsRec
@@ -925,7 +923,7 @@
           where mkSet d n v = CExpr_TupUpd d dictTag n (acoreInt opts $ off n) v
 
         mkSetFldsData ts d0
-          = acoreSatSelsCaseMetaTy env Nothing CMetaVal_Dict d0 dictTag nmLblOffL Nothing sel
+          = acoreSatSelsCaseTy env Nothing d0 dictTag nmLblOffL Nothing sel
           where env = (emptyRCEEnv opts) {rceDataGam = dataGam}
                 fullListWithTrivialValues = [ (o, (o, t, acoreVar n))
                                             | (n,t,o) <- nmLblOffL
@@ -950,13 +948,13 @@
 
 getBindRightVar :: CBind -> Maybe HsName
 
-getBindRightVar (CBind_Bind _ [CBound_Bind _ v]) = acoreExprMbVar v
+getBindRightVar (CBind_Bind _ [CBound_Bind v]) = acoreExprMbVar v
 getBindRightVar _ = Nothing
 
 
 getBindLeftAndRightVar :: CBind -> (HsName,HsName)
 
-getBindLeftAndRightVar (CBind_Bind nm1 [CBound_Bind _ (CExpr_Var ref2)]) = (nm1, acbrefNm ref2)
+getBindLeftAndRightVar (CBind_Bind nm1 [CBound_Bind (CExpr_Var ref2)]) = (nm1, acbrefNm ref2)
 getBindLeftAndRightVar _ = error "getBindLeftAndRightVar: not a bind"
 
 mbNameToTrack Nothing   = TrackNone
@@ -1160,19 +1158,6 @@
 
 ppErrsSq :: ErrSq -> PP_Doc
 ppErrsSq = ppErrs . Seq.toList
-
-
-
-ppNestTrPP :: PP a => EHCOpts -> [a] -> [PP_Doc] -> [PP_Doc] -> TrPP -> PP_Doc
-ppNestTrPP opts nms attrs ps trpp
-  = ppListSep "" "" "_" nms
-    >#< (   (if null attrs then empty else ppSpaced attrs)
-        >-< trpp
-        )
-    >-< indent 2 (vlist ps)
-
-ppTrNm :: HsName -> PP_Doc
-ppTrNm = text . show . show
 
 
 
diff --git a/src/UHC/Light/Compiler/EHC/ASTHandler.hs b/src/UHC/Light/Compiler/EHC/ASTHandler.hs
--- a/src/UHC/Light/Compiler/EHC/ASTHandler.hs
+++ b/src/UHC/Light/Compiler/EHC/ASTHandler.hs
@@ -16,8 +16,6 @@
 import UHC.Light.Compiler.EHC.Common
 import UHC.Light.Compiler.EHC.CompileUnit
 import UHC.Light.Compiler.EHC.CompileRun.Base
-import Data.Typeable
-import GHC.Generics
 import qualified Data.Map as Map
 import qualified UHC.Util.RelMap as Rel
 import UHC.Util.Lens
@@ -78,6 +76,9 @@
 		  --- | Generate a pretty printed text version
 		  , _asthdlrPretty				:: EHCOpts -> EHCompileUnit -> ast -> Maybe PP_Doc
 
+		  --- | Generate a pretty printed text version as AST with trace info
+		  , _asthdlrPrettyTrace			:: EHCOpts -> EHCompileUnit -> ast -> Maybe PP_Doc
+
 		  --- | Generate a serialized binary version directly on file, yielding True if this could be done
 		  , _asthdlrPutSerializeFileIO 	:: FilePath -> ast -> IO Bool
 
@@ -115,7 +116,7 @@
 		  }
 		  deriving Typeable
 
-{-# LINE 146 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 149 "src/ehc/EHC/ASTHandler.chs" #-}
 emptyASTHandler' :: forall ast . ASTHandler' ast
 emptyASTHandler'
   = ASTHandler'
@@ -129,6 +130,7 @@
       , _asthdlrEcuStore			= const id
 
       , _asthdlrPretty				= \_ _ _ -> Nothing
+      , _asthdlrPrettyTrace			= \_ _ _ -> Nothing
       , _asthdlrPutSerializeFileIO	= \_ _ -> return False
       , _asthdlrOutputIO 			= \_ _ _ _ _ _ _ -> return False
 
@@ -140,16 +142,16 @@
       , _asthdlrASTIsValid          = const True
       }
 
-{-# LINE 182 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 186 "src/ehc/EHC/ASTHandler.chs" #-}
 data ASTHandler
   = forall ast .
       Typeable ast =>
         ASTHandler (ASTHandler' ast)
 
-{-# LINE 189 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 193 "src/ehc/EHC/ASTHandler.chs" #-}
 type ASTHandlerMp = Map.Map ASTType ASTHandler
 
-{-# LINE 197 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 201 "src/ehc/EHC/ASTHandler.chs" #-}
 -- | Per suffix AST specific info
 data ASTSuffixInfo ast
   = ASTSuffixInfo
@@ -166,7 +168,7 @@
 instance Ord (ASTSuffixInfo ast) where
   i1 `compare` i2 = _astsuffinfoSuff i1 `compare` _astsuffinfoSuff i2
 
-{-# LINE 217 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 221 "src/ehc/EHC/ASTHandler.chs" #-}
 type ASTSuffixRel ast = Rel.Rel ASTSuffixKey (ASTSuffixInfo ast)
 
 emptyASTSuffixRel :: ASTSuffixRel ast
@@ -224,14 +226,14 @@
   i <- astsuffixLookup sk r
   Map.lookup tk $ _astsuffinfoASTLensMp i
 
-{-# LINE 290 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 294 "src/ehc/EHC/ASTHandler.chs" #-}
 -- | Lookup lens for modf time of
 astsuffixLookupTmLens :: ASTSuffixKey -> ASTFileTiming -> ASTSuffixRel ast -> Maybe (Lens EHCompileUnit (Maybe ClockTime))
 astsuffixLookupTmLens sk tk r = do
   i <- astsuffixLookup sk r
   Map.lookup tk $ _astsuffinfoModfTimeMp i
 
-{-# LINE 302 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 306 "src/ehc/EHC/ASTHandler.chs" #-}
 -- | Write to an ast to a file in the IO monad, return True if could be done
 asthdlrOutputIO :: ASTHandler' ast -> ASTFileContent -> EHCOpts -> EHCompileUnit -> HsName -> FPath -> FilePath -> ast -> IO Bool
 asthdlrOutputIO hdlr how opts ecu modNm fpC fnC ast = do
@@ -243,11 +245,17 @@
             putPPFPath fpC ppAst 1000
             return True
           _ -> return False
+      ASTFileContent_ASTText -> do
+        case _asthdlrPrettyTrace hdlr opts ecu ast of
+          Just ppAst -> do
+            putPPFPath fpC ppAst 1000
+            return True
+          _ -> return False
       ASTFileContent_Binary -> do
         _asthdlrPutSerializeFileIO hdlr fnC ast
       _ -> return False
 
-{-# LINE 321 "src/ehc/EHC/ASTHandler.chs" #-}
+{-# LINE 331 "src/ehc/EHC/ASTHandler.chs" #-}
 -- | Construct a FPath given a handler
 asthdlrMkInputFPath :: ASTHandler' ast -> EHCOpts -> EHCompileUnit -> ASTFileSuffOverride -> HsName -> FPath -> FPath
 asthdlrMkInputFPath hdlr opts ecu overr modNm fp = _asthdlrMkInputFPath hdlr opts ecu modNm fp suff
diff --git a/src/UHC/Light/Compiler/EHC/ASTHandler/Instances.hs b/src/UHC/Light/Compiler/EHC/ASTHandler/Instances.hs
--- a/src/UHC/Light/Compiler/EHC/ASTHandler/Instances.hs
+++ b/src/UHC/Light/Compiler/EHC/ASTHandler/Instances.hs
@@ -22,7 +22,6 @@
 import Data.Maybe
 import qualified UHC.Util.RelMap as Rel
 import Data.Typeable
-import GHC.Generics
 import UHC.Light.Compiler.Base.ParseUtils
 import UHC.Light.Compiler.EHC.ASTTypes
 import UHC.Light.Compiler.Core.Trf.EraseExtractTysigCore
@@ -33,6 +32,7 @@
 import UHC.Light.Compiler.CoreRun.Pretty
 import UHC.Light.Compiler.Core as Core
 import UHC.Light.Compiler.Core.Pretty
+import UHC.Light.Compiler.Core.PrettyTrace
 import UU.Parsing
 import UU.Parsing.Offside
 import qualified UHC.Util.ScanUtils as ScanUtils
@@ -66,7 +66,7 @@
 
 
 
-{-# LINE 138 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 135 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 astHandler'_HS :: ASTHandler' AST_HS
 astHandler'_HS = mk emptyASTHandler'
   where mk (hdlr@(ASTHandler' {..})) =
@@ -132,7 +132,7 @@
         -}
 
 
-{-# LINE 245 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 242 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 astHandler'_EH :: ASTHandler' AST_EH
 astHandler'_EH = mk emptyASTHandler'
   where mk (hdlr@(ASTHandler' {..})) =
@@ -155,7 +155,7 @@
 -}
             }
 
-{-# LINE 273 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 270 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 astHandler'_HI :: ASTHandler' AST_HI
 astHandler'_HI = mk emptyASTHandler'
   where mk (hdlr@(ASTHandler' {..})) =
@@ -199,7 +199,7 @@
             , _asthdlrASTIsValid      	= \hiinfo -> HI.hiiValidity hiinfo == HI.HIValidity_Ok
             }
 
-{-# LINE 328 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 325 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 astHandler'_Core :: ASTHandler' AST_Core
 astHandler'_Core = mk emptyASTHandler'
   where mk (hdlr@(ASTHandler' {..})) =
@@ -210,6 +210,7 @@
             								[ ( (ASTFileContent_Binary	, ASTFileUse_Target)	, (Cfg.suffixDotlessBinaryCore, ecuMbCore, Nothing) )
             								, ( (ASTFileContent_Text	, ASTFileUse_Src)		, (Cfg.suffixDotlessOutputTextualCore, ecuMbCore, Nothing) )
             								, ( (ASTFileContent_Text	, ASTFileUse_Dump)		, (Cfg.suffixDotlessOutputTextualCore, ecuMbCore, Nothing) )
+            								, ( (ASTFileContent_ASTText	, ASTFileUse_Dump)		, (Cfg.suffixDotlessOutputTextualCoreAST, ecuMbCore, Nothing) )
             								, ( (ASTFileContent_Binary	, ASTFileUse_Src)		, (Cfg.suffixDotlessInputOutputBinaryCore, ecuMbCore, Nothing) )
             								, ( (ASTFileContent_Binary	, ASTFileUse_Dump)		, (Cfg.suffixDotlessInputOutputBinaryCore, ecuMbCore, Nothing) )
             								]
@@ -229,6 +230,7 @@
             , _asthdlrParseScanOpts     = \opts _ -> coreScanOpts opts
             , _asthdlrParser            = \opts _ -> Just $ ASTParser (CorePrs.pCModule opts :: EHPrsAna AST_Core)
             , _asthdlrPretty			= \opts _ ast -> Just $ ppCModule (opts {- ehcOptCoreOpts = coreOpts ++ ehcOptCoreOpts opts -}) $ cmodTrfEraseTyCore opts ast
+            , _asthdlrPrettyTrace		= \opts _ ast -> Just $ ppASTCModule opts ast
 			, _asthdlrPutSerializeFileIO= default_asthdlrPutSerializeFileIO
 			, _asthdlrGetSerializeFileIO= default_asthdlrGetSerializeFileIO
 
@@ -243,7 +245,7 @@
 -}
             }
 
-{-# LINE 385 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 384 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 astHandler'_CoreRun :: ASTHandler' AST_CoreRun
 astHandler'_CoreRun = mk emptyASTHandler'
   where mk (hdlr@(ASTHandler' {..})) =
@@ -287,7 +289,7 @@
 -}
             }
 
-{-# LINE 525 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 524 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 -- | Global mapping from ASTType to ast handler
 allASThandlerMp :: ASTHandlerMp
 allASThandlerMp = Map.fromList
@@ -298,28 +300,28 @@
   , ( ASTType_CoreRun		, ASTHandler astHandler'_CoreRun	)
   ]
 
-{-# LINE 552 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 551 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 -- | Lookup ast handler, forcing a particular ast type
 asthandlerLookup :: Typeable ast => ASTType -> Maybe (ASTHandler' ast)
 asthandlerLookup t = case Map.lookup t allASThandlerMp of
     Just (ASTHandler h) -> cast h
     _                   -> Nothing
 
-{-# LINE 560 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 559 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 -- | Lookup ast handler, allowing arbitrary type by hiding the type
 asthandlerLookup' :: ASTType -> (forall ast . Typeable ast => ASTHandler' ast -> Maybe x) -> Maybe x
 asthandlerLookup' t f = case Map.lookup t allASThandlerMp of
     Just (ASTHandler h) -> f h
     _                   -> Nothing
 
-{-# LINE 568 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 567 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 -- | Lookup ast handler, allowing arbitrary type by hiding the type, monadically
 asthandlerLookupM' :: Monad m => ASTType -> (forall ast . Typeable ast => ASTHandler' ast -> m (Maybe x)) -> m (Maybe x)
 asthandlerLookupM' t f = case Map.lookup t allASThandlerMp of
     Just (ASTHandler h) -> f h
     _                   -> return Nothing
 
-{-# LINE 580 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
+{-# LINE 579 "src/ehc/EHC/ASTHandler/Instances.chs" #-}
 default_asthdlrGetSerializeFileIO :: Serialize ast => EHCOpts -> FPath -> IO (Maybe ast)
 default_asthdlrGetSerializeFileIO _ fp = fmap Just $ getSerializeFile (fpathToStr fp)
 
diff --git a/src/UHC/Light/Compiler/EHC/ASTPipeline.hs b/src/UHC/Light/Compiler/EHC/ASTPipeline.hs
--- a/src/UHC/Light/Compiler/EHC/ASTPipeline.hs
+++ b/src/UHC/Light/Compiler/EHC/ASTPipeline.hs
@@ -35,7 +35,6 @@
 import UHC.Light.Compiler.Opts.Base
 import qualified Data.Set as Set
 import Data.Monoid
-import GHC.Generics
 import UHC.Util.Pretty
 import UHC.Util.FPath
 import UHC.Util.Utils
@@ -88,9 +87,10 @@
 {-# LINE 103 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | File content variations of ast we can deal with (in principle)
 data ASTFileContent
-  = ASTFileContent_Text
-  | ASTFileContent_LitText
-  | ASTFileContent_Binary
+  = ASTFileContent_Text				-- ^ textual, readable input/output
+  | ASTFileContent_ASTText			-- ^ textual, readable AST output
+  | ASTFileContent_LitText			-- ^ textual, readable input
+  | ASTFileContent_Binary			-- ^ binary/serialized input/output
   | ASTFileContent_Unknown
   deriving (Eq, Ord, Enum, Typeable, Generic, Bounded)
 
@@ -103,11 +103,11 @@
 instance PP ASTFileContent where
   pp = pp . show
 
-{-# LINE 122 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 123 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Combination of 'ASTType' and 'ASTFileContent' as key into map of handlers
 type ASTHandlerKey = (ASTType, ASTFileContent)
 
-{-# LINE 127 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 128 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | File usage variations of ast
 data ASTFileUse
   = ASTFileUse_Cache		-- ^ internal use cache on file
@@ -127,11 +127,11 @@
 instance PP ASTFileUse where
   pp = pp . show
 
-{-# LINE 148 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 149 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Key for allowed suffixes, multiples allowed to cater for different suffixes
 type ASTSuffixKey = (ASTFileContent, ASTFileUse)
 
-{-# LINE 153 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 154 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | File timing variations of ast
 data ASTFileTiming
   = ASTFileTiming_Prev		-- ^ previously generated
@@ -147,7 +147,7 @@
 instance PP ASTFileTiming where
   pp = pp . show
 
-{-# LINE 170 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 171 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Available File for AST (as checked when first searching for a file)
 data ASTAvailableFile =
   ASTAvailableFile
@@ -168,13 +168,13 @@
   pp (ASTAvailableFile f t c u {- tm -}) = f >#< ppParensCommas [pp t, pp c, pp u]
 
 
-{-# LINE 196 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 197 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | The timing when read
 astfileuseReadTiming :: ASTFileUse -> ASTFileTiming
 astfileuseReadTiming ASTFileUse_Cache = ASTFileTiming_Prev
 astfileuseReadTiming _                = ASTFileTiming_Current
 
-{-# LINE 207 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 208 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | An 'Enum' of the stage semantic results are flown into global state
 data ASTSemFlowStage
   = --- | per module
@@ -192,7 +192,7 @@
 instance PP ASTSemFlowStage where
   pp = pp . show
 
-{-# LINE 232 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 233 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Key for remembering what already has flown into global state
 type ASTAlreadyFlowIntoCRSIFromToInfo =
        ( Maybe ASTType             -- possible 'to ast'
@@ -205,7 +205,7 @@
     , Maybe ASTAlreadyFlowIntoCRSIFromToInfo                       -- possible extra context
     )
 
-{-# LINE 250 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 251 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Description of transformation
 data ASTTrf where
     --- | Optimize, valid for some scopes only
@@ -225,7 +225,7 @@
   pp (ASTTrf_Optim scs) = "Optim" >#< ppBracketsCommas scs
   pp trf                = pp (show trf)
 
-{-# LINE 271 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 272 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Description of transformation
 data ASTPipeHowChoice
   = ASTPipeHowChoice_Avail     		-- ^ First available
@@ -242,7 +242,7 @@
 instance PP ASTPipeHowChoice where
   pp = pp . show
 
-{-# LINE 289 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 290 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Description of build pipelines
 data ASTPipe where
     --- | From source file. 20150904: astpTiming is ignored, derived from astpUse
@@ -307,7 +307,7 @@
     ASTPipe_Choose		h t p1 p2   -> "Choose" >#< h >#< t >-< indent 2 (p1 >-< p2)
     ASTPipe_Whole 		t p'	    -> "Whole" >#< t >-< indent 2 p'
 
-{-# LINE 365 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 366 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Fix of possible choices in an ASTPipe (based on time info)
 data TmChoice
   = Choice_End						-- ^ base case
@@ -331,7 +331,7 @@
 instance PP TmChoice where
   pp = pp . show
 
-{-# LINE 398 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 399 "src/ehc/EHC/ASTPipeline.chs" #-}
 data ASTBuildPlan
   = ASTBuildPlan
       { _astbplPipe		:: ASTPipe		-- ^ the pipe and its choices
@@ -347,11 +347,11 @@
 instance PP ASTBuildPlan where
   pp (ASTBuildPlan p c) = "Plan" >#< (c >-< p)
 
-{-# LINE 415 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 416 "src/ehc/EHC/ASTPipeline.chs" #-}
 mkBuildPlan :: ASTPipe -> TmChoice -> ASTBuildPlan
 mkBuildPlan = ASTBuildPlan
 
-{-# LINE 420 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 421 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Extract a subplan (i.e. from which is derived), if any
 astplMbSubPlan :: ASTBuildPlan -> Maybe ASTBuildPlan
 astplMbSubPlan pl = case pl of
@@ -365,7 +365,7 @@
 
 
 
-{-# LINE 437 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 438 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Find occurrence of predicate, yielding a new plan corresponding to the predicate, and
 astplFind :: (ASTPipe -> Maybe x) -> ASTBuildPlan -> Maybe (ASTBuildPlan, x)
 astplFind pred = fnd
@@ -374,12 +374,12 @@
       Just res -> Just (pl, res)
       _        -> astplMbSubPlan pl >>= fnd
 
-{-# LINE 451 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 452 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Construct a (dummy) pipe for which `astpTypes` will yield the given ASTTypes
 mkASTPipeForASTTypes :: [ASTType] -> ASTPipe
 mkASTPipeForASTTypes ts@(t:_) = ASTPipe_Compound t $ map (flip ASTPipe_Compound []) ts
 
-{-# LINE 457 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 458 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Fold over ASTPipe
 astpFold :: (ASTPipe -> x) -> (x -> x -> x) -> x -> ASTPipe -> x
 astpFold getx cmbx dfltx p = extr p
@@ -400,17 +400,17 @@
 astpFoldMonoid :: Monoid x => (ASTPipe -> x) -> ASTPipe -> x
 astpFoldMonoid getx p = astpFold getx mappend mempty p
 
-{-# LINE 481 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 482 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Extract all ASTTypes.
 astpTypes :: ASTPipe -> Set.Set ASTType
 astpTypes = astpFoldMonoid (Set.singleton . astpType)
 
-{-# LINE 487 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 488 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Find occurrence of predicate
 astpFind :: (ASTPipe -> Maybe ASTPipe) -> ASTPipe -> Maybe ASTPipe
 astpFind pred = astpFold pred (>>) Nothing
 
-{-# LINE 497 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 498 "src/ehc/EHC/ASTPipeline.chs" #-}
 data ASTPipeBldCfg =
   ASTPipeBldCfg
     { apbcfgTarget			:: Target
@@ -426,14 +426,14 @@
     False
     False
 
-{-# LINE 522 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 523 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_HS_src = ASTPipe_Src ASTFileUse_Src ASTFileTiming_Current ASTType_HS
 astpipe_EH_from_HS = ASTPipe_Derived ASTType_EH astpipe_HS_src
 
 astpipe_EH =
   astpipe_EH_from_HS
 
-{-# LINE 530 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 531 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_Core_from_EH :: ASTPipeBldCfg -> ASTPipe
 astpipe_Core_from_EH apbcfg =
     ASTPipe_Cache ASTType_Core $
@@ -444,15 +444,15 @@
       --- | apbcfgOptimScope apbcfg == OptimizationScope_WholeCore = id
       | otherwise                                              = ASTPipe_Trf ASTType_Core $ ASTTrf_Optim [ASTScope_Single]
 
-{-# LINE 546 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 547 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_Core_src :: ASTPipe
 astpipe_Core_src = ASTPipe_Src ASTFileUse_Src ASTFileTiming_Current ASTType_Core
 
-{-# LINE 551 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 552 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_Core_cached :: ASTPipe
 astpipe_Core_cached = ASTPipe_Src ASTFileUse_Cache ASTFileTiming_Prev ASTType_Core
 
-{-# LINE 556 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 557 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_Core :: ASTPipeBldCfg -> ASTPipe
 astpipe_Core apbcfg =
   apbcfgLoadChoice apbcfg ASTType_Core
@@ -476,24 +476,24 @@
       | apbcfgLoadOnly apbcfg                                  = ASTPipe_Choose ASTPipeHowChoice_Newer ASTType_Core astpipe_Core_cached
       | otherwise                                              = ASTPipe_Choose ASTPipeHowChoice_Newer ASTType_Core (ASTPipe_Compound ASTType_Core [astpipe_HI_cached, astpipe_Core_cached])
 
-{-# LINE 597 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 598 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_CoreRun_src :: ASTPipe
 astpipe_CoreRun_src =
   ASTPipe_Trf ASTType_CoreRun ASTTrf_Check $
     ASTPipe_Src ASTFileUse_Src ASTFileTiming_Current ASTType_CoreRun
 
-{-# LINE 606 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 607 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_CoreRun_cached :: ASTPipe
 astpipe_CoreRun_cached =
   ASTPipe_Trf ASTType_CoreRun ASTTrf_Check $
     ASTPipe_Src ASTFileUse_Cache ASTFileTiming_Prev ASTType_CoreRun
 
-{-# LINE 615 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 616 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_CoreRun_from_Core :: ASTPipeBldCfg -> ASTPipe
 astpipe_CoreRun_from_Core apbcfg =
   ASTPipe_Derived ASTType_CoreRun $ astpipe_Core apbcfg
 
-{-# LINE 621 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 622 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_CoreRun :: ASTPipeBldCfg -> ASTPipe
 astpipe_CoreRun apbcfg =
   apbcfgLoadChoice apbcfg ASTType_CoreRun
@@ -502,7 +502,7 @@
         astpipe_CoreRun_cached $
           astpipe_CoreRun_from_Core apbcfg
 
-{-# LINE 646 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 647 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_HI_cached :: ASTPipe
 astpipe_HI_cached = ASTPipe_Src ASTFileUse_Cache ASTFileTiming_Prev ASTType_HI
 
@@ -516,17 +516,17 @@
         [astpipe_HS_src, astpipe_EH]
         ++ [astpipe_Core_from_EH apbcfg]
 
-{-# LINE 688 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 689 "src/ehc/EHC/ASTPipeline.chs" #-}
 astpipe_C_src :: ASTPipe
 astpipe_C_src = ASTPipe_Src ASTFileUse_Src ASTFileTiming_Current ASTType_C
 
-{-# LINE 731 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 732 "src/ehc/EHC/ASTPipeline.chs" #-}
 apbcfgLoadChoice :: ASTPipeBldCfg -> ASTType -> ASTPipe -> ASTPipe -> ASTPipe
 apbcfgLoadChoice apbcfg -- t p1 p2
     | apbcfgLoadOnly apbcfg = ASTPipe_Choose ASTPipeHowChoice_Overr
     | otherwise             = ASTPipe_Choose ASTPipeHowChoice_Newer
 
-{-# LINE 744 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 745 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Construct a ASTPipe from build config
 astpipeForCfg :: ASTPipeBldCfg -> ASTPipe
 astpipeForCfg apbcfg =
@@ -541,6 +541,7 @@
             | otherwise                                      -> ([astpipe_Core apbcfg], ASTType_Core)
           Target_None_Core_CoreRun
                                                              -> ([astpipe_CoreRun apbcfg], ASTType_CoreRun)
+          _                                                  -> ([astpipe_EH], ASTType_EH)
 
         cmb [p] = p
         cmb ps  = ASTPipe_Compound topty ps
@@ -548,7 +549,7 @@
         -- 20150806: hackish solution for running core, done to be able to try out new build framework
         onlyrun = apbcfgRunOnly apbcfg
 
-{-# LINE 793 "src/ehc/EHC/ASTPipeline.chs" #-}
+{-# LINE 795 "src/ehc/EHC/ASTPipeline.chs" #-}
 -- | Construct a ASTPipe from compilers options, see `astpipeForCfg`
 astpipeForEHCOpts :: EHCOpts -> ASTPipe
 astpipeForEHCOpts opts = astpipeForCfg $ emptyASTPipeBldCfg
diff --git a/src/UHC/Light/Compiler/EHC/ASTTypes.hs b/src/UHC/Light/Compiler/EHC/ASTTypes.hs
--- a/src/UHC/Light/Compiler/EHC/ASTTypes.hs
+++ b/src/UHC/Light/Compiler/EHC/ASTTypes.hs
@@ -12,8 +12,6 @@
 , AST_HI )
 where
 import UHC.Light.Compiler.Base.Common
-import Data.Typeable
-import GHC.Generics
 import qualified UHC.Light.Compiler.EH as EH
 import qualified UHC.Light.Compiler.HS as HS
 import qualified UHC.Light.Compiler.Core as Core
@@ -38,7 +36,7 @@
 
 
 
-{-# LINE 72 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 70 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_HS					= HS.AGItf
 type AST_EH					= EH.AGItf
 
@@ -48,27 +46,27 @@
 type AST_HS_Inh_Check		= HSSem.Inh_AGItf
 type AST_EH_Inh_Check		= EHSem.Inh_AGItf
 
-{-# LINE 83 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 81 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_HS_Sem_Mod			= HSSemMod.Syn_AGItf
 
-{-# LINE 87 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 85 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_HI					= HI.HIInfo
 
-{-# LINE 91 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 89 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_Core				= Core.CModule
 
-{-# LINE 101 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 99 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_Core_Sem_ToCoreRun	= Core2CoreRunSem.Syn_CodeAGItf
 
-{-# LINE 105 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 103 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_Core_Sem_Check		= Core2ChkSem.Syn_CodeAGItf
 
-{-# LINE 109 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 107 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_CoreRun			= CoreRun.Mod
 
-{-# LINE 113 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 111 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_CoreRun_Sem_Check	= CoreRun2ChkSem.Syn_AGItf
 
-{-# LINE 117 "src/ehc/EHC/ASTTypes.chs" #-}
+{-# LINE 115 "src/ehc/EHC/ASTTypes.chs" #-}
 type AST_CoreRun_Sem_Mod	= CoreRunSemMod.Syn_AGItf
 
diff --git a/src/UHC/Light/Compiler/EHC/BuildFunction/Run.hs b/src/UHC/Light/Compiler/EHC/BuildFunction/Run.hs
--- a/src/UHC/Light/Compiler/EHC/BuildFunction/Run.hs
+++ b/src/UHC/Light/Compiler/EHC/BuildFunction/Run.hs
@@ -73,6 +73,7 @@
 
 
 
+
 {-# LINE 140 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Execute a build function, possibly caching/memoizing a result
 bcall :: forall res m . (Typeable res, EHCCompileRunner m) => BFun' m res -> EHCompilePhaseT m res
@@ -749,7 +750,6 @@
                               | otherwise   = ecuImpNmL ecu
                return impNmL
 
-
           ImportExportImpl modSearchKey@(PrevFileSearchKey {_pfsrchKey=FileSearchKey {_fsrchNm=modNm}}) optimScope -> do
                ecu    <- bcall $ EcuOfPrevNameAndPath modSearchKey
                opts   <- bcall $ EHCOptsOf modSearchKey
@@ -770,8 +770,6 @@
                  , mieimplHsName2FldMp      = expNmFldMp
                  }
 
-
-
           FoldHsPMb bglob modSearchKey astpipe -> do
                bLiftASTPipeToASTBuildPlan bglob (return Nothing) (\k p -> bcall $ FoldHsPlMb bglob k p) modSearchKey astpipe
 
@@ -1073,7 +1071,7 @@
     -- undefined result
     undefFor modNm = return $ panic $ "BuildFunction.Run.bcall (" ++ show bfun ++ ") undefined result related to " ++ show modNm
 
-{-# LINE 1356 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1355 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- lens access
 st    = crStateInfo ^* crsiBState
 cstk  = st ^* bstateCallStack
@@ -1110,7 +1108,7 @@
 	bmemo (Identity res)
 	return res
 
-{-# LINE 1398 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1397 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Make a Choice what to build, resolve newer/older choice
 bMkASTPMbChoice :: forall m . (EHCCompileRunner m) => BuildGlobal -> PrevFileSearchKey -> ASTPipe -> TmOfResM m -- EHCompilePhaseT m (Maybe (TmOfRes m))
 bMkASTPMbChoice bglob modSearchKey astpipe = do
@@ -1258,7 +1256,7 @@
           if tm1 `diffClockTimes` mxtm2 > noTimeDiff then a1 t1 else a2 t2
       _ -> adflt
 
-{-# LINE 1567 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1566 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Build a AST result
 bRetAST :: forall m ast1 ast2 . (Typeable ast1, Typeable ast2, EHCCompileRunner m) => PrevFileSearchKey -> ASTPipe -> ast1 -> EHCompilePhaseT m (Maybe (ASTResult m ast2))
 bRetAST modSearchKey astpipe ast1 = do
@@ -1272,7 +1270,7 @@
               ref = BRef_AST modSearchKey (astpType astpipe)
       _ -> return Nothing
 
-{-# LINE 1582 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1581 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Execute a Choice what to build, having resolved newer/older choice
 bExecASTPMbChoice :: (Typeable ast, EHCCompileRunner m) => BuildGlobal -> PrevFileSearchKey -> ASTBuildPlan -> EHCompilePhaseT m (Maybe (ASTResult m ast))
 bExecASTPMbChoice bglob modSearchKey@(PrevFileSearchKey {_pfsrchKey=FileSearchKey {_fsrchNm=modNm}}) astplan@(ASTBuildPlan {_astbplPipe=astpipe, _astbplChoice=choice}) = do
@@ -1376,7 +1374,7 @@
 	 where
 	   dflt = return Nothing
 
-{-# LINE 1720 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1719 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 bLiftASTPipeToASTBuildPlan
   :: (EHCCompileRunner m)
   => BuildGlobal
@@ -1387,7 +1385,7 @@
     maybeM (bcall $ BuildPlanPMb bglob modSearchKey astpipe) dflt $ \astplan ->
       f modSearchKey astplan
 
-{-# LINE 1736 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1735 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Get AST from file, maybe...
 -- Wrapper around bcalls.
 bASTFromFileEither
@@ -1434,7 +1432,7 @@
 bASTFromFileMb modSearchKey chkTimeStamp asttype skey tkey =
   fmap (either (const Nothing) (Just . tup123to12)) $ bASTFromFileEither modSearchKey False chkTimeStamp asttype skey tkey
 
-{-# LINE 1795 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1794 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Get possible Hs semantics
 bGetHsSemPlMb
   :: (EHCCompileRunner m)
@@ -1449,7 +1447,7 @@
      where
        extr (hsSem, _) = hsSem
 
-{-# LINE 1819 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1818 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Dereference an indirection into compilation state, possibly with a result, and a setter
 bderef'' :: forall res m . (Typeable res, EHCCompileRunner m) => BRef m res -> EHCompilePhaseT m (Maybe res, Maybe (res -> EHCompilePhaseT m ()))
 bderef'' bref = do
@@ -1505,11 +1503,11 @@
 bderef bref = do
     fmap (panicJust $ "BuildFunction.Run.bderef " ++ show bref) $ bderef' bref
 
-{-# LINE 1886 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1885 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 type ASTFlowPred  = ASTPipe -> Maybe (ASTPipe,ASTAlreadyFlowIntoCRSIFromToInfo)
 type ASTFlowPred' = Bool -> ASTFlowPred
 
-{-# LINE 1891 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1890 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 -- | Is a particular flow of semantics allowed?
 bIsAllowedFlowPl'' :: ASTBuildPlan -> ASTFlowPred -> Maybe (ASTBuildPlan, (ASTPipe,ASTAlreadyFlowIntoCRSIFromToInfo))
 bIsAllowedFlowPl'' astplan astpred = astplFind astpred astplan
@@ -1544,14 +1542,17 @@
        return $ Just astplanFnd
      else return Nothing
 
-{-# LINE 1927 "src/ehc/EHC/BuildFunction/Run.chs" #-}
-astpMbFromHSToEH, astpMbFromEHToCore, astpMbFromHS, astpMbFromEH :: ASTFlowPred'
+{-# LINE 1926 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+astpMbFromHSToEH, astpMbFromHS, astpMbFromEH :: ASTFlowPred'
 astpMbFromHSToEH top p = case p of {ASTPipe_Derived ASTType_EH p' | astpType p' == ASTType_HS -> Just (if' top p p', (Just ASTType_EH, ASTType_HS)); _ -> Nothing}
-astpMbFromEHToCore top p = case p of {ASTPipe_Derived ASTType_Core p' | astpType p' == ASTType_EH -> Just (if' top p p', (Just ASTType_Core, ASTType_EH)); _ -> Nothing}
 astpMbFromHS top p = case p of {ASTPipe_Derived _ p' | astpType p' == ASTType_HS -> Just (if' top p p', (Nothing, ASTType_HS)); _ -> Nothing}
 astpMbFromEH top p = case p of {ASTPipe_Derived _ p' | astpType p' == ASTType_EH -> Just (if' top p p', (Nothing, ASTType_EH)); _ -> Nothing}
 
-{-# LINE 1940 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1933 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+astpMbFromEHToCore :: ASTFlowPred'
+astpMbFromEHToCore top p = case p of {ASTPipe_Derived ASTType_Core p' | astpType p' == ASTType_EH -> Just (if' top p p', (Just ASTType_Core, ASTType_EH)); _ -> Nothing}
+
+{-# LINE 1943 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 astpMbSrcCore, astpMbCachedCore, astpMbSrcCachedCore :: ASTFlowPred'
 astpMbSrcCore top p = case p of
   ASTPipe_Src ASTFileUse_Src _ ASTType_Core
@@ -1565,7 +1566,7 @@
 
 astpMbSrcCachedCore = astpMbSrcCore <|||> astpMbCachedCore
 
-{-# LINE 1955 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1958 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 astpMbSrcCoreRun, astpMbCachedCoreRun, astpMbSrcCachedCoreRun :: ASTFlowPred'
 astpMbSrcCoreRun top p = case p of
   ASTPipe_Src ASTFileUse_Src _ ASTType_CoreRun
@@ -1579,15 +1580,15 @@
 
 astpMbSrcCachedCoreRun = astpMbSrcCoreRun <|||> astpMbCachedCoreRun
 
-{-# LINE 1970 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1973 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 astpMbFromCoreToCoreRun :: ASTFlowPred'
 astpMbFromCoreToCoreRun top p = case p of {ASTPipe_Derived ASTType_CoreRun p' | astpType p' == ASTType_Core -> Just (if' top p p', (Just ASTType_CoreRun, ASTType_Core)); _ -> Nothing}
 
-{-# LINE 1975 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1978 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 astpMbCheckCoreRunToCoreRun :: ASTFlowPred'
 astpMbCheckCoreRunToCoreRun top p = case p of {ASTPipe_Trf ASTType_CoreRun ASTTrf_Check p' | astpType p' == ASTType_CoreRun -> Just (if' top p p', (Just ASTType_CoreRun, ASTType_CoreRun)); _ -> Nothing}
 
-{-# LINE 1984 "src/ehc/EHC/BuildFunction/Run.chs" #-}
+{-# LINE 1987 "src/ehc/EHC/BuildFunction/Run.chs" #-}
 f1 <||>  f2 = \a   -> f1 a   <|> f2 a
 f1 <|||> f2 = \a b -> f1 a b <|> f2 a b
 
diff --git a/src/UHC/Light/Compiler/EHC/Common.hs b/src/UHC/Light/Compiler/EHC/Common.hs
--- a/src/UHC/Light/Compiler/EHC/Common.hs
+++ b/src/UHC/Light/Compiler/EHC/Common.hs
@@ -51,7 +51,6 @@
 import UHC.Light.Compiler.Opts
 import UHC.Light.Compiler.Error
 import UHC.Light.Compiler.Error.Pretty
-import GHC.Generics
 import UHC.Light.Compiler.EHC.ASTPipeline
 import UHC.Light.Compiler.Gam.Full
 import UHC.Light.Compiler.Opts.CommandLine
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Cleanup.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Cleanup.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Cleanup.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Cleanup.hs
@@ -49,7 +49,7 @@
                            }
                   )
 
-{-# LINE 116 "src/ehc/EHC/CompilePhase/Cleanup.chs" #-}
+{-# LINE 113 "src/ehc/EHC/CompilePhase/Cleanup.chs" #-}
 cpCleanupCU :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpCleanupCU modNm
   = do { cpUpdCU modNm
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
@@ -74,7 +74,7 @@
                  mbCrSemMod = _ecuMbCoreSemMod ecu
                  crSemMod   = panicJust "cpGetCoreModnameAndImports" mbCrSemMod
                  modNm'     = Core2ChkSem.realModuleNm_Syn_CodeAGItf crSemMod
-         ;  cpMsg modNm VerboseDebug $ "cpGetCoreModnameAndImports: " ++ show modNm ++ " -> " ++ show modNm'
+         ;  cpMsg modNm VerboseALot $ "cpGetCoreModnameAndImports: " ++ show modNm ++ " -> " ++ show modNm'
          ;  case mbCrSemMod of
               Just _ -> cpUpdCUWithKey modNm $ \_ ecu ->
                           ( modNm'
diff --git a/src/UHC/Light/Compiler/EHC/CompilePhase/Output.hs b/src/UHC/Light/Compiler/EHC/CompilePhase/Output.hs
--- a/src/UHC/Light/Compiler/EHC/CompilePhase/Output.hs
+++ b/src/UHC/Light/Compiler/EHC/CompilePhase/Output.hs
@@ -38,7 +38,7 @@
 
 
 
-{-# LINE 107 "src/ehc/EHC/CompilePhase/Output.chs" #-}
+{-# LINE 104 "src/ehc/EHC/CompilePhase/Output.chs" #-}
 -- | Abstraction for writing some module to output with variation in suffices
 cpOutputSomeModules
   :: EHCCompileRunner m
@@ -63,7 +63,7 @@
           asthdlrOutputIO astHdlr how opts ecu modNm fpC fnC mod
       return $ if okWrite then Just fpC else Nothing
 
-{-# LINE 133 "src/ehc/EHC/CompilePhase/Output.chs" #-}
+{-# LINE 130 "src/ehc/EHC/CompilePhase/Output.chs" #-}
 -- | Abstraction for writing a module, using cpOutputSomeModules
 cpOutputSomeModule
   :: EHCCompileRunner m
@@ -82,13 +82,13 @@
          ;  fmap head $ cpOutputSomeModules Nothing astHdlr how (\_ nm -> nm) suff modNm [(nmsuff,mod)]
          }
 
-{-# LINE 189 "src/ehc/EHC/CompilePhase/Output.chs" #-}
+{-# LINE 154 "src/ehc/EHC/CompilePhase/Output.chs" #-}
 cpOutputCore :: EHCCompileRunner m => ASTFileContent -> String -> String -> HsName -> EHCompilePhaseT m FPath
 cpOutputCore how nmsuff suff modNm =
-    fmap (panicJust "cpOutputGrin.cpOutputSomeModule") $
+    fmap (panicJust "cpOutputCore.cpOutputSomeModule") $
       cpOutputSomeModule (^. ecuCore) astHandler'_Core how nmsuff suff modNm
 
-{-# LINE 255 "src/ehc/EHC/CompilePhase/Output.chs" #-}
+{-# LINE 220 "src/ehc/EHC/CompilePhase/Output.chs" #-}
 cpOutputHI :: EHCCompileRunner m => String -> HsName -> EHCompilePhaseT m ()
 cpOutputHI suff modNm
   =  do  {  cr <- get
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
@@ -40,7 +40,7 @@
 
 
 
-{-# LINE 83 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 80 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 -- | Generalization of parser invocation
 cpParseWithFPath
   :: ( EHCCompileRunner m
@@ -65,15 +65,15 @@
           _ -> seterrs [strMsg $ "No parser for " ++ _asthdlrName astHdlr]
       }
 
-{-# LINE 132 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 129 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 cpParseHs :: EHCCompileRunner m => Bool -> HsName -> EHCompilePhaseT m ()
 cpParseHs litmode = cpParseWithFPath astHandler'_HS (defaultEHParseOpts {ehpoptsLitMode=litmode}) Nothing
 
-{-# LINE 142 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 139 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 cpParseHsImport :: EHCCompileRunner m => Bool -> HsName -> EHCompilePhaseT m ()
 cpParseHsImport litmode = cpParseWithFPath astHandler'_HS (defaultEHParseOpts {ehpoptsOkToStopAtErr=True, ehpoptsLitMode=litmode, ehpoptsForImport=True}) Nothing
 
-{-# LINE 198 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 195 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 -- | Decode from serialized file and store result in the compileunit for the module modNm
 cpDecode :: (EHCCompileRunner m, Serialize x) => Maybe String -> EcuUpdater x -> HsName -> EHCompilePhaseT m ()
 cpDecode mbSuff store modNm
@@ -85,7 +85,7 @@
        ; cpUpdCU modNm (store x)
        }
 
-{-# LINE 211 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 208 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 -- | Decode from serialized file and store result in the compileunit for the module modNm, return True if decoding could be done
 cpDecode'' :: EHCCompileRunner m => ASTHandler' ast -> ASTSuffixKey -> ASTFileTiming -> HsName -> EHCompilePhaseT m Bool
 cpDecode'' astHdlr skey tkey modNm
@@ -119,7 +119,7 @@
     okDecode <- cpDecode'' astHdlr skey tkey modNm
     unless okDecode $ cpSetLimitErrsWhen 1 ("Decode " ++ _asthdlrName astHdlr) [strMsg $ "No decoder/lens for " ++ _asthdlrName astHdlr ++ " (" ++ show skey ++ "/" ++ show tkey ++ ")"]
 
-{-# LINE 266 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 263 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 cpGetPrevHI :: EHCCompileRunner m => HsName -> EHCompilePhaseT m AST_HI
 cpGetPrevHI modNm
   = do { cpMsg modNm VerboseDebug "cpGetPrevHI"
@@ -135,7 +135,7 @@
        ; bcall $ ASTFromFile (mkPrevFileSearchKeyWithName modNm) (AlwaysEq ASTFileTimeHandleHow_AbsenceIgnore) ASTType_HI (ASTFileContent_Binary, ASTFileUse_Cache) ASTFileTiming_Prev
        }
 
-{-# LINE 283 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 280 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 cpGetPrevCore :: EHCCompileRunner m => HsName -> EHCompilePhaseT m AST_Core
 cpGetPrevCore modNm
   = do { cpMsg modNm VerboseDebug "cpGetPrevCore"
@@ -150,7 +150,7 @@
        ; bcall $ ASTFromFile (mkPrevFileSearchKeyWithName modNm) (AlwaysEq ASTFileTimeHandleHow_AbsenceIgnore) ASTType_Core (ASTFileContent_Binary, ASTFileUse_Cache) ASTFileTiming_Prev
        }
 
-{-# LINE 299 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
+{-# LINE 296 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}
 cpGetPrevCoreRun :: EHCCompileRunner m => HsName -> EHCompilePhaseT m AST_CoreRun
 cpGetPrevCoreRun modNm
   = do { cpMsg modNm VerboseDebug "cpGetPrevCoreRun"
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
@@ -38,7 +38,7 @@
 
 
 
-{-# LINE 101 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 99 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldCore2CoreRun :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpFoldCore2CoreRun modNm
   =  do  {  cr <- get
@@ -60,7 +60,7 @@
                                )
          }
 
-{-# LINE 151 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 149 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldCoreMod :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpFoldCoreMod modNm
   =  do  {  cr <- get
@@ -82,7 +82,7 @@
                                 ))
          }
 
-{-# LINE 174 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 172 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldEH :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpFoldEH modNm
   =  do  {  cr <- get
@@ -103,7 +103,7 @@
                  (cpUpdCU modNm $! ecuStoreEHSem $! ehSem)
          }
 
-{-# LINE 202 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 200 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldHs :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpFoldHs modNm
   =  do  {  cr <- get
@@ -140,7 +140,7 @@
                      })
          }
 
-{-# LINE 252 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 250 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldHsMod :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpFoldHsMod modNm
   =  do  {  cr <- get
@@ -163,7 +163,7 @@
                  )              )
          }
 
-{-# LINE 280 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
+{-# LINE 278 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}
 cpFoldHIInfo :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 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
@@ -743,11 +743,12 @@
   = do { cr <- get
        ; let (_,_,opts,_) = crBaseInfo modNm cr
              earlyMerge = ehcOptOptimizationScope opts >= OptimizationScope_WholeCore
+       ; cpMsg modNm VerboseALot $ "cpEhcCorePerModulePart2"
        ; cpSeq [ when earlyMerge $ cpProcessCoreRest modNm
                ]
        }
 
-{-# LINE 1170 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1171 "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 :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpEhcCoreGrinPerModuleDoneFullProgAnalysis modNm
@@ -757,7 +758,7 @@
              ]
           )
 
-{-# LINE 1181 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1182 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | Make final executable code, either still partly or fully (i.e. also linking)
 cpEhcExecutablePerModule :: EHCCompileRunner m => FinalCompileHow -> [HsName] -> HsName -> EHCompilePhaseT m ()
 cpEhcExecutablePerModule how impModNmL modNm
@@ -767,7 +768,7 @@
               [ cpCompileWithGCC how impModNmL modNm ]
        }
 
-{-# LINE 1207 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1208 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessHs :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessHs modNm = do
     cpFoldHs modNm
@@ -781,7 +782,7 @@
     cpCleanupHS modNm
     return ()
 
-{-# LINE 1226 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1227 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessEH :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessEH modNm
   = do { cr <- get
@@ -813,7 +814,7 @@
        ; cpCleanupEH modNm
        }
 
-{-# LINE 1288 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1289 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- unprocessed core -> folded core
 cpProcessCoreBasic :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessCoreBasic modNm
@@ -832,7 +833,7 @@
                ]
         }
 
-{-# LINE 1312 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1313 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- unfolded core -> folded core
 -- (called on merged core, and on core directly generated from cached grin)
 cpProcessCoreFold :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
@@ -846,7 +847,7 @@
        ; return ()
        }
 
-{-# LINE 1339 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1340 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessCoreModFold :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessCoreModFold modNm
   = cpSeq $
@@ -854,7 +855,7 @@
       , cpFlowCoreModSem modNm
       ]
 
-{-# LINE 1348 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1349 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 cpProcessCoreRunModFold :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessCoreRunModFold modNm
   = cpSeq $
@@ -862,13 +863,16 @@
       -- , cpFlowCoreRunModSem modNm
       ]
 
-{-# LINE 1357 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1358 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- folded core -> grin, jazy, and the rest
 cpProcessCoreRest :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessCoreRest modNm
   = do { cr <- get
        ; let (_,_,opts,_) = crBaseInfo modNm cr
        ; cpSeq (   []
+                ++ (if CoreOpt_DumpAST `elem` ehcOptCoreOpts opts
+                    then [void $ cpOutputCore ASTFileContent_ASTText {-[]-} "" Cfg.suffixDotlessOutputTextualCoreAST modNm]
+                    else [])
                 ++ (if CoreOpt_Dump `elem` ehcOptCoreOpts opts
                     then [void $ cpOutputCore ASTFileContent_Text {-[]-} "" Cfg.suffixDotlessOutputTextualCore modNm]
                     else [])
@@ -881,7 +885,7 @@
        }
 
 
-{-# LINE 1395 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
+{-# LINE 1399 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}
 -- | folded corerun -> ...
 cpProcessCoreRunRest :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpProcessCoreRunRest 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
@@ -29,7 +29,7 @@
 
 
 
-{-# LINE 82 "src/ehc/EHC/CompilePhase/Transformations.chs" #-}
+{-# LINE 78 "src/ehc/EHC/CompilePhase/Transformations.chs" #-}
 cpTransformCore :: EHCCompileRunner m => OptimizationScope -> HsName -> EHCompilePhaseT m ()
 cpTransformCore optimScope modNm
   = do { cr <- get
@@ -47,6 +47,7 @@
                                  , trfcoreNotYetTransformed
                                  						= maybe (trfcoreNotYetTransformed emptyTrfCoreExtra) Core2ChkSem.notYetTransformed_Syn_CodeAGItf $ _ecuMbCoreSemMod ecu
                                  , trfcoreExpNmOffMp    = crsiExpNmOffMpDbg "cpTransformCore" modNm crsi
+								 , trfcoreInhLamMp      = crsi ^. crsiCEnv ^. cenvLamMp
                                  }
                              }
               trfcoreOut = trfCore opts optimScope
@@ -54,7 +55,8 @@
                                    modNm trfcoreIn
 
        -- ; liftIO $ putStrLn $ "cpTransformCore trfcoreNotYetTransformed: " ++ show (trfcoreNotYetTransformed $ trfstExtra trfcoreIn)
-         -- put back result: Core
+       -- ; cpUpdSI $ (crsiCEnv ^* cenvLamMp) ^= (trfcoreGathLamMp $ trfstExtra trfcoreOut)
+       -- put back result: Core
        ; cpUpdCU modNm $! ecuStoreCore (trfstMod trfcoreOut)
 
          -- put back result: unique counter
@@ -73,8 +75,15 @@
 
          -- dump intermediate stages, print errors, if any
        ; let (nms,mcs,errs) = unzip3 $ trfstModStages trfcoreOut
+             (fc,sf) | CoreOpt_DumpAST `elem` ehcOptCoreOpts opts = (ASTFileContent_ASTText, Cfg.suffixDotlessOutputTextualCoreAST)
+                     | otherwise                                  = (ASTFileContent_Text, Cfg.suffixDotlessOutputTextualCore)
        -- ; cpOutputCoreModules CPOutputCoreHow_Text (\n nm -> "-" ++ show optimScope ++ "-" ++ show n ++ "-" ++ nm) Cfg.suffixDotlessOutputTextualCore modNm [ (n,nm) | (n, Just nm) <- zip nms mcs ]
-       ; cpOutputSomeModules (Just $ opts {ehcOptCoreOpts= CoreOpt_Readable : ehcOptCoreOpts opts}) astHandler'_Core ASTFileContent_Text (\n nm -> "-" ++ show optimScope ++ "-" ++ show n ++ "-" ++ nm) Cfg.suffixDotlessOutputTextualCore modNm [ (n,nm) | (n, Just nm) <- zip nms mcs ]
+       ; cpOutputSomeModules
+           (Just $ opts {ehcOptCoreOpts= CoreOpt_Readable : ehcOptCoreOpts opts})
+           astHandler'_Core fc
+           (\n nm -> "-" ++ show optimScope ++ "-" ++ show n ++ "-" ++ nm)
+           sf modNm
+           [ (n,nm) | (n, Just nm) <- zip nms mcs ]
        ; cpSeq $ zipWith (\nm err -> cpSetLimitErrsWhen 5 ("Core errors: " ++ nm) err) nms errs
        }
 
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
@@ -35,7 +35,7 @@
 
 
 
-{-# LINE 115 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
+{-# LINE 105 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
 cpTranslateHs2EH :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpTranslateHs2EH modNm
   =  do  {  cr <- get
@@ -56,7 +56,7 @@
                      })
          }
 
-{-# LINE 137 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
+{-# LINE 127 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
 cpTranslateEH2Output :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 cpTranslateEH2Output modNm
   =  do  {  cr <- get
@@ -84,7 +84,7 @@
                  )
          }
 
-{-# LINE 197 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
+{-# LINE 187 "src/ehc/EHC/CompilePhase/Translations.chs" #-}
 cpTranslateEH2Core :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 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
@@ -52,19 +52,19 @@
 
 
 
-{-# LINE 88 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 85 "src/ehc/EHC/CompileRun.chs" #-}
 newEHCIOInfo :: IO (IORef EHCIOInfo)
 newEHCIOInfo
   = do t <- getEHCTime
        newIORef (EHCIOInfo t t)
 
 
-{-# LINE 120 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 117 "src/ehc/EHC/CompileRun.chs" #-}
 cpUpdOpts :: EHCCompileRunner m => (EHCOpts -> EHCOpts) -> EHCompilePhaseT m ()
 cpUpdOpts upd
   = cpUpdSI $ crsiOpts ^$= upd -- (\crsi -> crsi {crsiOpts = upd $ crsiOpts crsi})
 
-{-# LINE 130 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 127 "src/ehc/EHC/CompileRun.chs" #-}
 cpStopAt :: EHCCompileRunner m => CompilePoint -> EHCompilePhaseT m ()
 cpStopAt atPhase
   = do { cr <- MS.get
@@ -73,7 +73,7 @@
                 cpSetStopAllSeq
        }
 
-{-# LINE 144 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 141 "src/ehc/EHC/CompileRun.chs" #-}
 crPartitionNewerOlderImports :: HsName -> EHCompileRun m -> ([EHCompileUnit],[EHCompileUnit])
 crPartitionNewerOlderImports modNm cr
   = partition isNewer $ map (flip crCU cr) $ ecuImpNmL ecu
@@ -85,12 +85,12 @@
             where t' = panicJust "crPartitionNewerOlderImports2" $ _ecuMbHIInfoTime ecu'
                   mbt = _ecuMbHIInfoTime ecu'
 
-{-# LINE 161 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 158 "src/ehc/EHC/CompileRun.chs" #-}
 -- | Partition modules into main and non main (i.e. imported) module names
 crPartitionMainAndImported :: EHCompileRun m -> [HsName] -> ([HsName], [HsName])
 crPartitionMainAndImported cr modNmL = partition (\n -> ecuHasMain $ crCU n cr) modNmL
 
-{-# LINE 171 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 168 "src/ehc/EHC/CompileRun.chs" #-}
 crModNeedsCompile :: HsName -> EHCompileRun m -> Bool
 crModNeedsCompile modNm cr
   = ecuIsMainMod ecu -- ecuIsTopMod ecu
@@ -102,7 +102,7 @@
         (newer,_) = crPartitionNewerOlderImports modNm cr
         opts = _crStateInfo cr ^. crsiOpts
 
-{-# LINE 203 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 200 "src/ehc/EHC/CompileRun.chs" #-}
 crSetAndCheckMain :: EHCCompileRunner m => HsName -> EHCompilePhaseT m ()
 crSetAndCheckMain modNm
   = do { cr <- MS.get
@@ -115,7 +115,7 @@
                                            -- mkerr 0 []
        }
 
-{-# LINE 221 "src/ehc/EHC/CompileRun.chs" #-}
+{-# LINE 218 "src/ehc/EHC/CompileRun.chs" #-}
 -- | Extract various pieces of meta info (such as timestamps) of files needed further in the compilation process
 cpGetMetaInfo :: EHCCompileRunner m => [GetMeta] -> HsName -> EHCompilePhaseT m ()
 cpGetMetaInfo gm modNm
diff --git a/src/UHC/Light/Compiler/EHC/CompileRun/Base.hs b/src/UHC/Light/Compiler/EHC/CompileRun/Base.hs
--- a/src/UHC/Light/Compiler/EHC/CompileRun/Base.hs
+++ b/src/UHC/Light/Compiler/EHC/CompileRun/Base.hs
@@ -52,8 +52,6 @@
 import qualified Data.Set as Set
 import qualified Data.IntMap as IMap
 import Data.Maybe
-import Data.Typeable
-import GHC.Generics (Generic)
 import qualified UHC.Util.RelMap as Rel
 import UHC.Util.Hashable
 import Control.Exception as CE
@@ -105,6 +103,7 @@
 
 
 
+
 {-# LINE 101 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Global parameterisation for build calls
 data BuildGlobal =
@@ -601,8 +600,8 @@
     (ModnameAndImportsPlMb		a1 b1				, ModnameAndImportsPlMb		a2 b2				) -> lexico [a1 `compare` a2, b1 `compare` b2]
     (HsModnameAndImports		a1 					, HsModnameAndImports		a2 					) ->         a1 `compare` a2
     (FoldHIInfo					a1 					, FoldHIInfo				a2 					) ->         a1 `compare` a2
-    (ImportExportImpl			a1 b1				, ImportExportImpl			a2 b2				) -> lexico [a1 `compare` a2, b1 `compare` b2]
     (ImportNameInfo				a1 b1				, ImportNameInfo			a2 b2				) -> lexico [a1 `compare` a2, b1 `compare` b2]
+    (ImportExportImpl			a1 b1				, ImportExportImpl			a2 b2				) -> lexico [a1 `compare` a2, b1 `compare` b2]
     (FoldHsPMb					a1 b1 c1			, FoldHsPMb					a2 b2 c2			) -> lexico [a1 `compare` a2, b1 `compare` b2, c1 `compare` c2]
     (FoldHsPlMb					a1 b1 c1			, FoldHsPlMb				a2 b2 c2			) -> lexico [a1 `compare` a2, b1 `compare` b2, c1 `compare` c2]
     (FoldEHPMb					a1 b1 c1			, FoldEHPMb					a2 b2 c2			) -> lexico [a1 `compare` a2, b1 `compare` b2, c1 `compare` c2]
@@ -656,8 +655,8 @@
 	ModnameAndImportsPlMb		a b			-> salt `hashWithSalt` (33::Int) `hashWithSalt` a `hashWithSalt` b
 	HsModnameAndImports			a 			-> salt `hashWithSalt` (34::Int) `hashWithSalt` a
 	FoldHIInfo					a 			-> salt `hashWithSalt` (35::Int) `hashWithSalt` a
-	ImportExportImpl			a b			-> salt `hashWithSalt` (36::Int) `hashWithSalt` a `hashWithSalt` b
 	ImportNameInfo				a b			-> salt `hashWithSalt` (37::Int) `hashWithSalt` a `hashWithSalt` b
+	ImportExportImpl			a b			-> salt `hashWithSalt` (36::Int) `hashWithSalt` a `hashWithSalt` b
 	FoldHsPMb					a b c		-> salt `hashWithSalt` (38::Int) `hashWithSalt` a `hashWithSalt` b `hashWithSalt` c
 	FoldHsPlMb					a b c		-> salt `hashWithSalt` (39::Int) `hashWithSalt` a `hashWithSalt` b `hashWithSalt` c
 	FoldEHPMb					a b c		-> salt `hashWithSalt` (40::Int) `hashWithSalt` a `hashWithSalt` b `hashWithSalt` c
@@ -670,7 +669,7 @@
 	ExposedPackages							-> salt `hashWithSalt` (maxBound-2::Int)
 
 
-{-# LINE 747 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 753 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | BFun' used as a dependency of another BFun', for now same as a Dynamic
 data BFun m
   = forall res
@@ -691,7 +690,7 @@
 instance Show (BFun m) where
   show (BFun {bfcdFun=x}) = show x
 
-{-# LINE 769 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 775 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | BFun' + BCachedVal' packaged with required class instances, similar to a Dynamic
 data BFunCacheEntry m
   = forall f res
@@ -701,7 +700,7 @@
            , bfceVal		:: !(f res)
            }
 
-{-# LINE 780 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 786 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Cache for function calls, first indexed on hash
 data BCache m
   = BCache
@@ -713,11 +712,11 @@
 emptyBCache :: BCache m
 emptyBCache = BCache IMap.empty Map.empty Rel.empty
 
-{-# LINE 793 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 799 "src/ehc/EHC/CompileRun/Base.chs" #-}
 bcacheResolveModNm :: BCache m -> HsName -> HsName
 bcacheResolveModNm c n = maybe n (bcacheResolveModNm c) $ Map.lookup n (_bcacheModNmForward c)
 
-{-# LINE 802 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 808 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | GADT for references to global state, interpreted inside the compiler driver monad, the type of the GADT telling what the type of the value should be.
 data BRef (m :: * -> *) val where
   --- | Global state
@@ -755,7 +754,7 @@
 deriving instance Typeable BRef
 deriving instance Show (BRef m val)
 
-{-# LINE 864 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 870 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Result coming out of a build call for constructing/loading an AST
 data ASTResult m ast =
   ASTResult
@@ -766,7 +765,7 @@
     }
   deriving (Typeable, Show)
 
-{-# LINE 878 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 884 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkASTResult'
   :: EHCCompileRunner m
   => ast
@@ -781,11 +780,11 @@
       ASTResult ast ref astpipe
         tm
 
-{-# LINE 902 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 908 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkASTResult :: EHCCompileRunner m => ast -> BRef m ast -> ASTPipe -> EHCompilePhaseT m (ASTResult m ast)
 mkASTResult ast ref astpipe = mkASTResult' ast ref astpipe Nothing
 
-{-# LINE 911 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 917 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Cache for function calls, first indexed on hash
 data BState m
   = BState
@@ -796,17 +795,17 @@
 emptyBState :: BState m
 emptyBState = BState emptyBCache []
 
-{-# LINE 927 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 933 "src/ehc/EHC/CompileRun/Base.chs" #-}
 data EHCIOInfo
   = EHCIOInfo
       { ehcioinfoStartTime			:: EHCTime
       , ehcioinfoLastTime			:: EHCTime
       }
 
-{-# LINE 939 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 945 "src/ehc/EHC/CompileRun/Base.chs" #-}
 type EHCTime = Integer
 
-{-# LINE 947 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 953 "src/ehc/EHC/CompileRun/Base.chs" #-}
 data EHCompileRunCoreRunStateInfo
   = EHCompileRunCoreRunStateInfo
       { _crcrsiReqdModules  	:: [HsName]                             -- ^ (current) required/to-be-loaded modules, the length is used to assign module nr identifications
@@ -820,7 +819,7 @@
       , _crcrsiNm2RefMp			=	CoreRun.emptyNm2RefMp
       }
 
-{-# LINE 966 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 972 "src/ehc/EHC/CompileRun/Base.chs" #-}
 data EHCompileRunStateInfo (m :: * -> *)
   = EHCompileRunStateInfo
       { _crsiOpts       :: !EHCOpts                             -- options
@@ -846,7 +845,7 @@
       }
   deriving (Typeable)
 
-{-# LINE 1001 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1007 "src/ehc/EHC/CompileRun/Base.chs" #-}
 emptyEHCompileRunStateInfo :: EHCompileRunStateInfo m
 emptyEHCompileRunStateInfo
   = EHCompileRunStateInfo
@@ -871,18 +870,18 @@
       , _crsiBState   	=   emptyBState
       }
 
-{-# LINE 1039 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1045 "src/ehc/EHC/CompileRun/Base.chs" #-}
 instance Show (EHCompileRunStateInfo m) where
   show _ = "EHCompileRunStateInfo"
 
 instance PP (EHCompileRunStateInfo m) where
   pp i = "CRSI:" >#< ppModMp (crsiModMp i)
 
-{-# LINE 1047 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1053 "src/ehc/EHC/CompileRun/Base.chs" #-}
 instance CompileRunStateInfo (EHCompileRunStateInfo m) HsName () where
   crsiImportPosOfCUKey n i = ()
 
-{-# LINE 1052 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1058 "src/ehc/EHC/CompileRun/Base.chs" #-}
 class ( MonadIO m
       , MonadFix m
       , Typeable m
@@ -924,13 +923,13 @@
   liftIO = lift . liftIO
 -}
 
-{-# LINE 1095 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1101 "src/ehc/EHC/CompileRun/Base.chs" #-}
 type EHCompileRun m         = CompileRun HsName EHCompileUnit (EHCompileRunStateInfo m) Err
 type EHCompilePhaseAddonT m = StateT (EHCompileRun m) m
 type EHCompilePhaseT      m = CompilePhaseT HsName EHCompileUnit (EHCompileRunStateInfo m) Err (EHCompilePhaseAddonT m)
 type EHCompilePhase         = EHCompilePhaseT IO
 
-{-# LINE 1108 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1114 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Delayed results (too avoid too much file content inspection)
 data TmOfDelayedRes =
   TmOfDelayedRes
@@ -943,7 +942,7 @@
 emptyTmOfDelayedRes :: TmOfDelayedRes
 emptyTmOfDelayedRes = TmOfDelayedRes hsnUnknown False Map.empty
 
-{-# LINE 1122 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1128 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Results coming along with 'bMkASTPMbChoice' determining which choice in the build pipe to take
 data TmOfRes (m :: * -> *) =
   TmOfRes
@@ -961,31 +960,31 @@
                        (panic "emptyTmOfRes.tmofresDelayed") (panic "emptyTmOfRes.tmofresTm")
                        False
 
-{-# LINE 1149 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1155 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''BCache
 
-{-# LINE 1153 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1159 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''BState
 
-{-# LINE 1157 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1163 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''EHCompileRunCoreRunStateInfo
 
-{-# LINE 1161 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1167 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''EHCompileRunStateInfo
 
 
 
-{-# LINE 1174 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1180 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''ASTResult
 
-{-# LINE 1181 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1187 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''TmOfDelayedRes
 
-{-# LINE 1185 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1191 "src/ehc/EHC/CompileRun/Base.chs" #-}
 mkLabel ''TmOfRes
 
 
-{-# LINE 1196 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1202 "src/ehc/EHC/CompileRun/Base.chs" #-}
 crBaseInfo' :: EHCompileRun m -> (EHCompileRunStateInfo m,EHCOpts)
 crBaseInfo' cr
   = (crsi,opts)
@@ -1011,7 +1010,7 @@
     )
   where (mbEcu, crsi, opts, mbFp) = crMbBaseInfo modNm cr
 
-{-# LINE 1231 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1237 "src/ehc/EHC/CompileRun/Base.chs" #-}
 cpStepUID :: EHCCompileRunner m => EHCompilePhaseT m ()
 cpStepUID
   = cpUpdSI (\crsi -> let (n,h) = mkNewLevUID (crsi ^. crsiNextUID)
@@ -1023,7 +1022,7 @@
 cpSetUID u
   = cpUpdSI $ crsiNextUID ^= u -- (\crsi -> crsi {crsiNextUID = u})
 
-{-# LINE 1248 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1254 "src/ehc/EHC/CompileRun/Base.chs" #-}
 type EHCTimeDiff = Integer
 
 getEHCTime :: IO EHCTime
@@ -1041,12 +1040,12 @@
         (days, hrs  ) = r2 `quotRem` 24
         fm n x = strPadLeft '0' n (show x)
 
-{-# LINE 1271 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1277 "src/ehc/EHC/CompileRun/Base.chs" #-}
 cpRegisterFilesToRm :: EHCCompileRunner m => [FPath] -> EHCompilePhaseT m ()
 cpRegisterFilesToRm fpL
   = cpUpdSI (\crsi -> crsi {crsiFilesToRm = fpL ++ crsiFilesToRm crsi})
 
-{-# LINE 1277 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1283 "src/ehc/EHC/CompileRun/Base.chs" #-}
 cpRmFilesToRm :: EHCCompileRunner m => EHCompilePhaseT m ()
 cpRmFilesToRm
   = do { cr <- MS.get
@@ -1058,7 +1057,7 @@
   where rm f = CE.catch (removeFile f)
                         (\(e :: SomeException) -> hPutStrLn stderr (show f ++ ": " ++ show e))
 
-{-# LINE 1294 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1300 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Tracing
 cpTrPP :: EHCCompileRunner m => TraceOn -> [PP_Doc] -> EHCompilePhaseT m ()
 cpTrPP ton ms = do
@@ -1077,12 +1076,12 @@
 cpTr :: EHCCompileRunner m => TraceOn -> [String] -> EHCompilePhaseT m ()
 cpTr ton ms = cpTrPP ton $ map pp ms
 
-{-# LINE 1318 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1324 "src/ehc/EHC/CompileRun/Base.chs" #-}
 cpMemUsage :: EHCCompileRunner m => EHCompilePhaseT m ()
 cpMemUsage
   = return ()
 
-{-# LINE 1337 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1343 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Message
 cpMsg :: EHCCompileRunner m => HsName -> Verbosity -> String -> EHCompilePhaseT m ()
 cpMsg modNm v m
@@ -1111,7 +1110,7 @@
        ; cpMemUsage
        }
 
-{-# LINE 1379 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1385 "src/ehc/EHC/CompileRun/Base.chs" #-}
 cpSystem' :: EHCCompileRunner m => Maybe FilePath -> (FilePath,[String]) -> EHCompilePhaseT m ()
 cpSystem' mbStdOut (cmd,args)
   = do { exitCode <- liftIO $ system $ showShellCmd $ (cmd,args ++ (maybe [] (\o -> [">", o]) mbStdOut))
@@ -1123,7 +1122,7 @@
 cpSystem :: EHCCompileRunner m => (FilePath,[String]) -> EHCompilePhaseT m ()
 cpSystem = cpSystem' Nothing
 
-{-# LINE 1409 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1415 "src/ehc/EHC/CompileRun/Base.chs" #-}
 cpSystemRaw :: EHCCompileRunner m => String -> [String] -> EHCompilePhaseT m ()
 cpSystemRaw cmd args
   = do { exitCode <- liftIO $ rawSystem cmd args
@@ -1132,7 +1131,7 @@
            _           -> cpSetErrs [rngLift emptyRange Err_PP $ pp $ show exitCode] -- cpSetFail
        }
 
-{-# LINE 1423 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1429 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | split module names in those part of a package, and others
 crPartitionIntoPkgAndOthers :: EHCompileRun m -> [HsName] -> ([PkgModulePartition],[HsName])
 crPartitionIntoPkgAndOthers cr modNmL
@@ -1147,7 +1146,7 @@
                   FileLocKind_Pkg p d -> ([((p,d),[m])], [ ])
               where (ecu,_,_,_) = crBaseInfo m cr
 
-{-# LINE 1443 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1449 "src/ehc/EHC/CompileRun/Base.chs" #-}
 crsiExpNmOffMpDbg :: String -> HsName -> EHCompileRunStateInfo m -> 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
@@ -1155,7 +1154,7 @@
 crsiExpNmOffMp :: HsName -> EHCompileRunStateInfo m -> VA.HsName2FldMp
 crsiExpNmOffMp modNm crsi = mmiNmOffMp $ panicJust ("crsiExpNmOffMp: " ++ show modNm) $ Map.lookup modNm $ crsiModMp crsi
 
-{-# LINE 1456 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1462 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Add ast types for which the semantics have been flowed into global state, with additional from/to info
 bUpdAlreadyFlowIntoCRSIWith :: EHCCompileRunner m => HsName -> ASTType -> ASTAlreadyFlowIntoCRSIInfo -> EHCompilePhaseT m ()
 bUpdAlreadyFlowIntoCRSIWith modNm asttype flowstage =
@@ -1166,7 +1165,7 @@
 bUpdAlreadyFlowIntoCRSI :: EHCCompileRunner m => HsName -> ASTType -> ASTSemFlowStage -> EHCompilePhaseT m ()
 bUpdAlreadyFlowIntoCRSI modNm asttype flowstage = bUpdAlreadyFlowIntoCRSIWith modNm asttype (flowstage,Nothing)
 
-{-# LINE 1472 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1478 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- | Lookup compile unit, also giving the actual module name forwarded to
 bLookupECUInCR :: HsName -> EHCompileRun m -> Maybe (HsName, EHCompileUnit)
 bLookupECUInCR n cr = lkn n <|> lkn (bcacheResolveModNm (cr ^. crStateInfo ^. crsiBState ^. bstateCache) n)
@@ -1186,7 +1185,7 @@
     cr <- MS.get
     cpUpdCU (maybe n fst $ bLookupECUInCR n cr) f
 
-{-# LINE 1497 "src/ehc/EHC/CompileRun/Base.chs" #-}
+{-# LINE 1503 "src/ehc/EHC/CompileRun/Base.chs" #-}
 -- type TmOfRes   m = TmRes m -- (EHCompilePhaseT m (Maybe (Map.Map HsName ClockTime)), TmChoice, ClockTime)
 type TmOfResMb m = Maybe (TmOfRes m)
 type TmOfResM  m = EHCompilePhaseT m (TmOfResMb m)
diff --git a/src/UHC/Light/Compiler/EHC/CompileUnit.hs b/src/UHC/Light/Compiler/EHC/CompileUnit.hs
--- a/src/UHC/Light/Compiler/EHC/CompileUnit.hs
+++ b/src/UHC/Light/Compiler/EHC/CompileUnit.hs
@@ -50,7 +50,6 @@
 import qualified Data.Set as Set
 import UHC.Light.Compiler.EHC.Common
 import UHC.Util.Lens
-import Data.Typeable
 import UHC.Light.Compiler.EHC.ASTTypes
 import qualified UHC.Light.Compiler.HI as HI
 import UHC.Light.Compiler.Module.ImportExport
@@ -140,59 +139,59 @@
       }
       deriving Typeable
 
-{-# LINE 203 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 200 "src/ehc/EHC/CompileUnit.chs" #-}
 mkLabel ''EHCompileUnit
 
 
-{-# LINE 214 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 211 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuCore = isoMb "ecuMbCore" ecuMbCore
 
-{-# LINE 224 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 221 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuCoreRun = isoMb "ecuMbCoreRun" ecuMbCoreRun
-{-# LINE 227 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 224 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuCoreSemMod = isoMb "ecuMbCoreSemMod" ecuMbCoreSemMod
-{-# LINE 230 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 227 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuCoreRunSemMod = isoMb "ecuMbCoreRunSemMod" ecuMbCoreRunSemMod
 ecuCoreRunSemChk = isoMb "ecuMbCoreRunSemChk" ecuMbCoreRunSemChk
 
-{-# LINE 235 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 232 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuEH = isoMb "ecuMbEH" ecuMbEH
 ecuEHSem = isoMb "ecuMbEHSem" ecuMbEHSem
 ecuHS = isoMb "ecuMbHS" ecuMbHS
 ecuHSSem = isoMb "ecuMbHSSem" ecuMbHSSem
 
 
-{-# LINE 248 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 245 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuHIInfo = isoMbWithDefault HI.emptyHIInfo ecuMbHIInfo
 ecuPrevHIInfo = isoMb "ecuMbPrevHIInfo" ecuMbPrevHIInfo
 ecuHSSemMod = isoMb "ecuMbHSSemMod" ecuMbHSSemMod
 ecuSrcTime = isoMb "ecuMbSrcTime" ecuMbSrcTime
 ecuHIInfoTime = isoMb "ecuMbHIInfoTime" ecuMbHIInfoTime
 
-{-# LINE 256 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 253 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuPrevSearchInfo = isoMb "ecuMbPrevSearchInfo" ecuMbPrevSearchInfo
 
-{-# LINE 260 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 257 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuCoreTime = isoMb "ecuMbCoreTime" ecuMbCoreTime
 
-{-# LINE 268 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 265 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuCoreRunTime = isoMb "ecuMbCoreRunTime" ecuMbCoreRunTime
 
-{-# LINE 272 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 269 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuSrcDeclImpNmS = iumSrcDeclModules . ecuImportUsedModules
 ecuHIDeclImpNmS = iumHIDeclModules . ecuImportUsedModules
 ecuHIUsedImpNmS = iumHIUsedModules . ecuImportUsedModules
 
-{-# LINE 278 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 275 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuFilePath :: EHCompileUnit -> FPath
 ecuFilePath ecu
   = maybe (ecuSrcFilePath ecu) id (ecuMbCppFilePath ecu)
 
-{-# LINE 288 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 285 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuIsMainMod :: EHCompileUnit -> Bool
 ecuIsMainMod e = _ecuIsTopMod e && ecuHasMain e
 
-{-# LINE 293 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 290 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | give the current value HIInfo, or the previous one
 ecuAnHIInfo :: EHCompileUnit -> AST_HI
 ecuAnHIInfo e
@@ -202,7 +201,7 @@
       _ -> hii
   where hii = e ^. ecuHIInfo
 
-{-# LINE 304 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 301 "src/ehc/EHC/CompileUnit.chs" #-}
 emptyECU :: EHCompileUnit
 emptyECU
   = EHCompileUnit
@@ -251,7 +250,7 @@
       , ecuGenCodeFiles      = []
       }
 
-{-# LINE 407 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 401 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuImpNmS :: EHCompileUnit -> Set.Set HsName
 ecuImpNmS ecu = -- (\v -> tr "XX" (pp $ Set.toList v) v) $
   Set.delete (ecuModNm ecu) $ Set.unions [ ecuSrcDeclImpNmS ecu, ecuHIDeclImpNmS ecu, ecuHIUsedImpNmS ecu ]
@@ -259,7 +258,7 @@
 ecuImpNmL :: EHCompileUnit -> [HsName]
 ecuImpNmL = Set.toList . ecuImpNmS -- ecu = (nub $ ecuHSDeclImpNmL ecu ++ ecuHIDeclImpNmL ecu ++ ecuHIUsedImpNmL ecu) \\ [ecuModNm ecu]
 
-{-# LINE 416 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 410 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | The used modules, for linking, according to .hi info
 ecuTransClosedUsedModMp :: EHCompileUnit -> HI.HIInfoUsedModMp
 ecuTransClosedUsedModMp = HI.hiiTransClosedUsedModMp . ecuAnHIInfo
@@ -268,12 +267,12 @@
 ecuTransClosedOrphanModS :: EHCompileUnit -> Set.Set HsName
 ecuTransClosedOrphanModS = HI.hiiTransClosedOrphanModS . ecuAnHIInfo
 
-{-# LINE 426 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 420 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Is orphan, according to .hi info
 ecuIsOrphan :: EHCompileUnit -> Bool
 ecuIsOrphan = isJust . HI.hiiMbOrphan . ecuAnHIInfo
 
-{-# LINE 436 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 430 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Semantics for an AST already has flowed into global state
 ecuHasAlreadyFlowedWith :: ASTType -> ASTAlreadyFlowIntoCRSIInfo -> EHCompileUnit -> Bool
 ecuHasAlreadyFlowedWith asttype flowstage ecu
@@ -285,18 +284,18 @@
 ecuHasAlreadyFlowed :: ASTType -> ASTSemFlowStage -> EHCompileUnit -> Bool
 ecuHasAlreadyFlowed asttype flowstage ecu = ecuHasAlreadyFlowedWith asttype (flowstage,Nothing) ecu
 
-{-# LINE 455 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 449 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Lookup available AST file, left biased (according to fileSuffMpHs (in the end))
 ecuLookupAvailASTFile :: ASTType -> ASTFileUse -> (ASTSuffixKey -> Bool) -> EHCompileUnit -> Maybe ASTAvailableFile
 ecuLookupAvailASTFile t u isOkCont ecu = find (\a -> _astavailfType a == t && _astavailfUse a == u && isOkCont (_astavailfContent a, u)) (_ecuASTAvailFiles ecu)
 
-{-# LINE 465 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 459 "src/ehc/EHC/CompileUnit.chs" #-}
 instance CompileUnitState FileSuffInitState where
   cusDefault      = (ECUS_Eh EHStart, ASTType_EH, ASTFileContent_Text, ASTFileUse_Src)
   cusUnk          = (ECUS_Unknown, ASTType_Unknown, ASTFileContent_Unknown, ASTFileUse_Unknown)
   cusIsUnk (ECUS_Unknown,_,_,_) = True
   cusIsUnk _                    = False
-{-# LINE 475 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 469 "src/ehc/EHC/CompileUnit.chs" #-}
   cusIsImpKnown (s,_,_,_) = case s of
                       ECUS_Haskell HSOnlyImports  -> True
                       ECUS_Haskell HIOnlyImports  -> True
@@ -308,12 +307,12 @@
                       ECUS_CoreRun CRROnlyImports -> True
                       _                           -> False
 
-{-# LINE 494 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 488 "src/ehc/EHC/CompileUnit.chs" #-}
 instance FileLocatable EHCompileUnit FileLoc where
   fileLocation   = ecuFileLocation
   noFileLocation = emptyFileLoc
 
-{-# LINE 500 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 494 "src/ehc/EHC/CompileUnit.chs" #-}
 instance CompileUnit EHCompileUnit HsName FileLoc FileSuffInitState where
   cuDefault             = emptyECU
   cuFPath               = ecuFilePath
@@ -348,7 +347,7 @@
       ":" >#< ppBracketsCommas (ecuImpNmL ecu) >|<
       "," >#< show (ecuState ecu)
 
-{-# LINE 546 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 540 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | The final state to be reached
 ecuFinalDestinationState :: EHCompileUnit -> EHCompileUnitState
 ecuFinalDestinationState ecu = ecuStateFinalDestination upd $ ecuState ecu
@@ -358,7 +357,7 @@
           | otherwise           = ECUS_Haskell HIAllSem
         upd s                   = s
 
-{-# LINE 563 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 557 "src/ehc/EHC/CompileUnit.chs" #-}
 type EcuUpdater a = a -> EHCompileUnit -> EHCompileUnit
 
 ecuStoreSrcFilePath :: EcuUpdater FPath
@@ -382,27 +381,27 @@
 ecuStoreEHSem :: EcuUpdater AST_EH_Sem_Check
 ecuStoreEHSem x ecu = ecu { _ecuMbEHSem = Just x }
 
-{-# LINE 588 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 582 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCoreSemMod :: EcuUpdater AST_Core_Sem_Check
 ecuStoreCoreSemMod x ecu = ecu { _ecuMbCoreSemMod = Just x }
 
-{-# LINE 598 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 592 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCore :: EcuUpdater AST_Core
 ecuStoreCore x ecu | x `seq` True = ecu { _ecuMbCore = Just x }
 
-{-# LINE 609 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 603 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCoreRun :: EcuUpdater AST_CoreRun
 ecuStoreCoreRun x ecu | x `seq` True = ecu { _ecuMbCoreRun = Just x }
 
-{-# LINE 614 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 608 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCoreRunSemMod :: EcuUpdater AST_CoreRun_Sem_Mod
 ecuStoreCoreRunSemMod x ecu = ecu { _ecuMbCoreRunSemMod = Just x }
 
-{-# LINE 619 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 613 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCore2CoreRunSem :: EcuUpdater AST_Core_Sem_ToCoreRun
 ecuStoreCore2CoreRunSem x ecu = ecu { _ecuMbCore2CoreRunSem = Just x }
 
-{-# LINE 670 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 659 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreSrcTime :: EcuUpdater ClockTime
 ecuStoreSrcTime x ecu = ecu { _ecuMbSrcTime = Just x }
 
@@ -458,19 +457,19 @@
 ecuStoreHIInfo :: EcuUpdater AST_HI
 ecuStoreHIInfo x ecu | x `seq` True = ecu { _ecuMbHIInfo = Just x }
 
-{-# LINE 731 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 720 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCoreTime :: EcuUpdater ClockTime
 ecuStoreCoreTime x ecu = ecu { _ecuMbCoreTime = Just x }
 
-{-# LINE 736 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 725 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreCoreRunTime :: EcuUpdater ClockTime
 ecuStoreCoreRunTime x ecu = ecu { _ecuMbCoreRunTime = Just x }
 
-{-# LINE 746 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 735 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreDirIsWritable :: EcuUpdater Bool
 ecuStoreDirIsWritable x ecu = ecu { _ecuDirIsWritable = x }
 
-{-# LINE 751 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 740 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreOpts :: EcuUpdater EHCOpts
 ecuStoreOpts x ecu = ecu { ecuMbOpts = Just x }
 
@@ -483,25 +482,25 @@
 ecuStoreUsedNames :: EcuUpdater ModEntRelFilterMp
 ecuStoreUsedNames x ecu = ecu { ecuUsedNames = x }
 
-{-# LINE 765 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 754 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreGenCodeFiles :: EcuUpdater [FPath]
 ecuStoreGenCodeFiles x ecu = ecu { ecuGenCodeFiles = x }
 
-{-# LINE 770 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 759 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuStoreSeqNr :: EcuUpdater EHCCompileSeqNr
 ecuStoreSeqNr x ecu = ecu { ecuSeqNr = x }
 
 ecuStoreCppFilePath :: EcuUpdater FPath
 ecuStoreCppFilePath x ecu = ecu { ecuMbCppFilePath = Just x }
 
-{-# LINE 782 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 771 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Has the source file the given extension? Given suffix is stripped from possible prefixed '.'.
 ecuSrcHasSuffix :: String -> EHCompileUnit -> Bool
 ecuSrcHasSuffix suff ecu
   = maybe False (==suff') $ fpathMbSuff $ ecuSrcFilePath ecu
   where suff' = case suff of {('.':s) -> s; _ -> suff}
 
-{-# LINE 790 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 779 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Is HS newer?
 --   If no HS exists False is returned.
 ecuIsHSNewerThanHI :: EHCompileUnit -> Bool
@@ -511,14 +510,14 @@
       (Nothing ,Just thi) -> False
       _                   -> True
 
-{-# LINE 801 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 790 "src/ehc/EHC/CompileUnit.chs" #-}
 ecuIsValidHIInfo :: EHCompileUnit -> Bool
 ecuIsValidHIInfo ecu
   = case _ecuMbPrevHIInfo ecu of
       Just i -> HI.hiiValidity i == HI.HIValidity_Ok
       _      -> False
 
-{-# LINE 809 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 798 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Can HI be used instead of HS?
 --   This is purely based on HI being of the right version and HS not newer.
 --   The need for recompilation considers dependencies on imports as well.
@@ -526,7 +525,7 @@
 ecuCanUseHIInsteadOfHS ecu
   = ecuIsValidHIInfo ecu && not (ecuIsHSNewerThanHI ecu)
 
-{-# LINE 818 "src/ehc/EHC/CompileUnit.chs" #-}
+{-# LINE 807 "src/ehc/EHC/CompileUnit.chs" #-}
 -- | Compilation can actually be done?
 ecuCanCompile :: EHCompileUnit -> Bool
 ecuCanCompile ecu = isJust (_ecuMbSrcTime ecu) && _ecuDirIsWritable ecu
diff --git a/src/UHC/Light/Compiler/Error.hs b/src/UHC/Light/Compiler/Error.hs
--- a/src/UHC/Light/Compiler/Error.hs
+++ b/src/UHC/Light/Compiler/Error.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Error.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Error.ag)
 module UHC.Light.Compiler.Error(Err (..), ErrL
 , ThingAndRange
 , ErrSq
diff --git a/src/UHC/Light/Compiler/Error/Pretty.hs b/src/UHC/Light/Compiler/Error/Pretty.hs
--- a/src/UHC/Light/Compiler/Error/Pretty.hs
+++ b/src/UHC/Light/Compiler/Error/Pretty.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Error/Pretty.a)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Error/Pretty.a)
 module UHC.Light.Compiler.Error.Pretty(ppErr, ppErrs, ppErrL
 , mkPPErr) where
 
diff --git a/src/UHC/Light/Compiler/Foreign.hs b/src/UHC/Light/Compiler/Foreign.hs
--- a/src/UHC/Light/Compiler/Foreign.hs
+++ b/src/UHC/Light/Compiler/Foreign.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Foreign.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Foreign.ag)
 module UHC.Light.Compiler.Foreign(ForeignEnt (..), CCall (..), PlainCall (..), PrimCall (..), JavaScriptCall (..)
 , ForeignExpr (..), ForeignExprs
 , ForeignExprAGItf (..), ForeignAGItf (..)
@@ -119,93 +119,18 @@
 
 
 
-instance Serialize ForeignExpr where
-  sput (ForeignExpr_Ent         ) = sputWord8 0
-  sput (ForeignExpr_EntNm    a  ) = sputWord8 1  >> sput a
-  sput (ForeignExpr_Arg      a  ) = sputWord8 2  >> sput a
-  sput (ForeignExpr_Sel      a b) = sputWord8 3  >> sput a >> sput b
-  sput (ForeignExpr_Inx      a b) = sputWord8 4  >> sput a >> sput b
-  sput (ForeignExpr_Ptr      a  ) = sputWord8 5  >> sput a
-  sput (ForeignExpr_Call     a  ) = sputWord8 6  >> sput a
-  sput (ForeignExpr_CallArgs a b) = sputWord8 7  >> sput a >> sput b
-  sput (ForeignExpr_AllArg      ) = sputWord8 8
-  sput (ForeignExpr_Str      a  ) = sputWord8 9  >> sput a
-  sput (ForeignExpr_ObjData     ) = sputWord8 10
-  sput (ForeignExpr_NewObj   a  ) = sputWord8 11 >> sput a
-  sget = do
-    t <- sgetWord8
-    case t of
-        0  -> return ForeignExpr_Ent
-        1  -> liftM  ForeignExpr_EntNm       sget
-        2  -> liftM  ForeignExpr_Arg         sget
-        3  -> liftM2 ForeignExpr_Sel         sget sget
-        4  -> liftM2 ForeignExpr_Inx         sget sget
-        5  -> liftM  ForeignExpr_Ptr         sget
-        6  -> liftM  ForeignExpr_Call        sget
-        7  -> liftM2 ForeignExpr_CallArgs    sget sget
-        8  -> return ForeignExpr_AllArg
-        9  -> liftM  ForeignExpr_Str         sget
-        10 -> return ForeignExpr_ObjData
-        11 -> liftM  ForeignExpr_NewObj      sget
-
-
-instance Serialize ForeignEnt where
-  sput (ForeignEnt_CCall        	a) = sputWord8 0 >> sput a
-  sput (ForeignEnt_PlainCall    	a) = sputWord8 1 >> sput a
-  sput (ForeignEnt_PrimCall     	a) = sputWord8 2 >> sput a
-  sput (ForeignEnt_JavaScriptCall  	a) = sputWord8 3 >> sput a
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM ForeignEnt_CCall       	sget
-              1 -> liftM ForeignEnt_PlainCall   	sget
-              2 -> liftM ForeignEnt_PrimCall    	sget
-              3 -> liftM ForeignEnt_JavaScriptCall 	sget
-
-instance Serialize CCall where
-  sput (CCall_Id      a b c d) = sputWord8 0 >> sput a >> sput b >> sput c >> sput d
-  sput (CCall_Dynamic        ) = sputWord8 1
-  sput (CCall_Wrapper        ) = sputWord8 2
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM4 CCall_Id      sget sget sget sget
-              1 -> return CCall_Dynamic
-              2 -> return CCall_Wrapper
-
-instance Serialize PlainCall where
-  sput (PlainCall_Id      a) = sputWord8 0 >> sput a
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM  PlainCall_Id sget
-
-instance Serialize PrimCall where
-  sput (PrimCall_Id      a b) = sputWord8 0 >> sput a >> sput b
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM2 PrimCall_Id sget sget
-
-{-
-instance Serialize JavaScriptCall where
-  sput (JavaScriptCall_Id      a b c d) = sputWord8 0 >> sput a >> sput b >> sput c >> sput d
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM4 JavaScriptCall_Id sget sget sget sget
--}
-instance Serialize JavaScriptCall where
-  sput (JavaScriptCall_Id          a b c) = sputWord8 0 >> sput a >> sput b >> sput c
-  sput (JavaScriptCall_Dynamic          ) = sputWord8 1
-  sput (JavaScriptCall_Wrapper          ) = sputWord8 2
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM3 JavaScriptCall_Id sget sget sget
-              1 -> return JavaScriptCall_Dynamic
-              2 -> return JavaScriptCall_Wrapper
-
+instance Serialize ForeignExpr
+instance Serialize ForeignEnt
+instance Serialize CCall
+instance Serialize PlainCall
+instance Serialize PrimCall
+instance Serialize JavaScriptCall
 
 -- CCall -------------------------------------------------------
 data CCall = CCall_Id {isStatic_CCall_Id :: !(Bool),mbInclude_CCall_Id :: !((Maybe String)),asPointer_CCall_Id :: !(Bool),nm_CCall_Id :: !(String)}
            | CCall_Dynamic {}
            | CCall_Wrapper {}
-           deriving ( Eq,Show,Typeable)
+           deriving ( Eq,Generic,Show,Typeable)
 -- ForeignAGItf ------------------------------------------------
 data ForeignAGItf = ForeignAGItf_AGItf {ent_ForeignAGItf_AGItf :: !(ForeignEnt)}
 -- ForeignEnt --------------------------------------------------
@@ -213,7 +138,7 @@
                 | ForeignEnt_PlainCall {ent_ForeignEnt_PlainCall :: !(PlainCall)}
                 | ForeignEnt_PrimCall {ent_ForeignEnt_PrimCall :: !(PrimCall)}
                 | ForeignEnt_JavaScriptCall {ent_ForeignEnt_JavaScriptCall :: !(JavaScriptCall)}
-                deriving ( Eq,Show,Typeable)
+                deriving ( Eq,Generic,Show,Typeable)
 -- ForeignExpr -------------------------------------------------
 data ForeignExpr = ForeignExpr_Call {expr_ForeignExpr_Call :: !(ForeignExpr)}
                  | ForeignExpr_CallArgs {expr_ForeignExpr_CallArgs :: !(ForeignExpr),args_ForeignExpr_CallArgs :: !(ForeignExprs)}
@@ -228,7 +153,7 @@
                  | ForeignExpr_Str {str_ForeignExpr_Str :: !(String)}
                  | ForeignExpr_ObjData {}
                  | ForeignExpr_NewObj {expr_ForeignExpr_NewObj :: !(ForeignExpr)}
-                 deriving ( Eq,Show,Typeable)
+                 deriving ( Eq,Generic,Show,Typeable)
 -- ForeignExprAGItf --------------------------------------------
 data ForeignExprAGItf = ForeignExprAGItf_AGItf {expr_ForeignExprAGItf_AGItf :: !(ForeignExpr)}
 -- ForeignExprs ------------------------------------------------
@@ -237,10 +162,10 @@
 data JavaScriptCall = JavaScriptCall_Id {nm_JavaScriptCall_Id :: !(String),mbInclude_JavaScriptCall_Id :: !((Maybe String)),mbForeignExpr_JavaScriptCall_Id :: !((Maybe ForeignExpr))}
                     | JavaScriptCall_Dynamic {}
                     | JavaScriptCall_Wrapper {}
-                    deriving ( Eq,Show,Typeable)
+                    deriving ( Eq,Generic,Show,Typeable)
 -- PlainCall ---------------------------------------------------
 data PlainCall = PlainCall_Id {nm_PlainCall_Id :: !(String)}
-               deriving ( Eq,Show,Typeable)
+               deriving ( Eq,Generic,Show,Typeable)
 -- PrimCall ----------------------------------------------------
 data PrimCall = PrimCall_Id {nm_PrimCall_Id :: !(String),mbKnownPrim_PrimCall_Id :: !((Maybe KnownPrim))}
-              deriving ( Eq,Show,Typeable)
+              deriving ( Eq,Generic,Show,Typeable)
diff --git a/src/UHC/Light/Compiler/Foreign/Boxing.hs b/src/UHC/Light/Compiler/Foreign/Boxing.hs
--- a/src/UHC/Light/Compiler/Foreign/Boxing.hs
+++ b/src/UHC/Light/Compiler/Foreign/Boxing.hs
@@ -77,7 +77,7 @@
       }
   | Boxing_Enum			-- encoding for Enum				-- ?? necessary
   | Boxing_Opaque		-- don't know anything, leave as is
-  deriving Eq
+  deriving (Eq, Generic)
 
 {-# LINE 107 "src/ehc/Foreign/Boxing.chs" #-}
 instance Show Boxing where
@@ -165,18 +165,9 @@
 
 deriving instance Typeable Boxing
 
-{-# LINE 210 "src/ehc/Foreign/Boxing.chs" #-}
-instance Serialize Boxing where
-  sput (Boxing_UnboxedTy          a) = sputWord8 0 >> sput a
-  sput (Boxing_Enum            	   ) = sputWord8 1
-  sput (Boxing_Opaque              ) = sputWord8 2
-  sget = do
-    t <- sgetWord8
-    case t of
-      0 -> liftM  Boxing_UnboxedTy 			sget
-      1 -> return Boxing_Enum
-      2 -> return Boxing_Opaque
+instance Serialize Boxing
 
+{-# LINE 225 "src/ehc/Foreign/Boxing.chs" #-}
 instance Serialize UnboxedTy where
   sput = sputEnum8
   sget = sgetEnum8
diff --git a/src/UHC/Light/Compiler/Foreign/Extract.hs b/src/UHC/Light/Compiler/Foreign/Extract.hs
--- a/src/UHC/Light/Compiler/Foreign/Extract.hs
+++ b/src/UHC/Light/Compiler/Foreign/Extract.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Foreign/Extrac)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Foreign/Extrac)
 module UHC.Light.Compiler.Foreign.Extract(ForeignExtraction (..), forextractMbEnt
 , foreignEntExtract) where
 
diff --git a/src/UHC/Light/Compiler/Foreign/Pretty.hs b/src/UHC/Light/Compiler/Foreign/Pretty.hs
--- a/src/UHC/Light/Compiler/Foreign/Pretty.hs
+++ b/src/UHC/Light/Compiler/Foreign/Pretty.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Foreign/Pretty)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Foreign/Pretty)
 module UHC.Light.Compiler.Foreign.Pretty(ppForeignEnt
 , ppForeignExpr) where
 
diff --git a/src/UHC/Light/Compiler/Gam.hs b/src/UHC/Light/Compiler/Gam.hs
--- a/src/UHC/Light/Compiler/Gam.hs
+++ b/src/UHC/Light/Compiler/Gam.hs
@@ -48,7 +48,7 @@
 
 
 
-{-# LINE 95 "src/ehc/Gam.chs" #-}
+{-# LINE 89 "src/ehc/Gam.chs" #-}
 -- Do something with each Ty in a Gam.
 -- The global VarMp is kept separately so a new tyvar binding can be computed, which is threaded separatedly and also returned.
 -- This allows the retainment of the original tyvar in the Gam, which is required when used twice with different VarMp's.
@@ -85,7 +85,7 @@
                )
                (thr,emptyVarMp) gam
 
-{-# LINE 145 "src/ehc/Gam.chs" #-}
+{-# LINE 139 "src/ehc/Gam.chs" #-}
 data SoGamInfo
   = SoGamInfo
       { sgiSo :: Ty }
@@ -93,34 +93,34 @@
 
 type SoGam = Gam HsName SoGamInfo
 
-{-# LINE 158 "src/ehc/Gam.chs" #-}
+{-# LINE 152 "src/ehc/Gam.chs" #-}
 type IdDefOccGam = Gam    IdOcc  IdDefOcc
 type IdDefOccAsc = AssocL IdOcc [IdDefOcc]
 
-{-# LINE 163 "src/ehc/Gam.chs" #-}
+{-# LINE 157 "src/ehc/Gam.chs" #-}
 -- | Union gam, but tailored to maintaining duplicate definition info
 idDefOccGamUnion :: IdDefOccGam -> IdDefOccGam -> IdDefOccGam
 idDefOccGamUnion = gamUnionWith idDefOccLCmb
 {-# INLINE idDefOccGamUnion #-}
 
-{-# LINE 174 "src/ehc/Gam.chs" #-}
+{-# LINE 168 "src/ehc/Gam.chs" #-}
 idDefOccGamPartitionByKind :: [IdOccKind] -> IdDefOccGam -> (IdDefOccAsc,IdDefOccAsc)
 idDefOccGamPartitionByKind ks
   = partition (\(IdOcc n k',_) -> k' `elem` ks) . gamToAssocDupL
 
-{-# LINE 180 "src/ehc/Gam.chs" #-}
+{-# LINE 174 "src/ehc/Gam.chs" #-}
 idDefOccGamByKind :: IdOccKind -> IdDefOccGam -> AssocL HsName IdDefOcc
 idDefOccGamByKind k g = [ (n,head i) | (IdOcc n _,i) <- fst (idDefOccGamPartitionByKind [k] g) ]
 
-{-# LINE 185 "src/ehc/Gam.chs" #-}
+{-# LINE 179 "src/ehc/Gam.chs" #-}
 -- | Strip references to original source file location
 idDefOccGamStrip :: IdDefOccGam -> IdDefOccGam
 idDefOccGamStrip g = gamMap (\(k,v) -> (k,doccStrip v)) g
 
-{-# LINE 206 "src/ehc/Gam.chs" #-}
+{-# LINE 200 "src/ehc/Gam.chs" #-}
 type IdQualGam = Gam IdOcc HsName
 
-{-# LINE 210 "src/ehc/Gam.chs" #-}
+{-# LINE 204 "src/ehc/Gam.chs" #-}
 idGam2QualGam :: IdDefOccGam -> IdQualGam
 idGam2QualGam = gamMap (\(iocc,docc) -> (iocc {ioccNm = hsnQualified $ ioccNm iocc},ioccNm $ doccOcc $ docc))
 
@@ -128,7 +128,7 @@
 idQualGamReplacement g k n = maybe n id $ gamLookup (IdOcc n k) g
 {-# INLINE idQualGamReplacement #-}
 
-{-# LINE 237 "src/ehc/Gam.chs" #-}
+{-# LINE 231 "src/ehc/Gam.chs" #-}
 instance (Ord tk, Ord (SubstVarKey subst), VarUpdatable vv subst) => VarUpdatable (SGam tk vv) subst where
   s `varUpd`  g    =   gamMapElts (s `varUpd`) g
   s `varUpdCyc` g    =   (g',varmpUnions $ gamElts gm)
@@ -139,19 +139,19 @@
 instance (Ord tk, Ord (ExtrValVarKey vv), VarExtractable vv) => VarExtractable (SGam tk vv) where
   varFreeSet g    =   Set.unions $ map varFreeSet $ gamElts g
 
-{-# LINE 255 "src/ehc/Gam.chs" #-}
+{-# LINE 249 "src/ehc/Gam.chs" #-}
 ppGam :: (Ord k, PP k, PP v) => Gam k v -> PP_Doc
 ppGam g = ppAssocL (gamToAssocL g)
 
-{-# LINE 260 "src/ehc/Gam.chs" #-}
+{-# LINE 254 "src/ehc/Gam.chs" #-}
 ppGamDup :: (Ord k,PP k, PP v) => Gam k v -> PP_Doc
 ppGamDup g = ppAssocL $ map (\(k,v) -> (k,ppBracketsCommas v)) $ gamToAssocDupL $ g
 
-{-# LINE 270 "src/ehc/Gam.chs" #-}
+{-# LINE 264 "src/ehc/Gam.chs" #-}
 instance (Ord k, PP k, PP v) => PP (SGam k v) where
   pp g = ppGam g
 
-{-# LINE 279 "src/ehc/Gam.chs" #-}
+{-# LINE 273 "src/ehc/Gam.chs" #-}
 initSoGam :: SoGam
 initSoGam
   = assocLToGam
diff --git a/src/UHC/Light/Compiler/Gam/ClGam.hs b/src/UHC/Light/Compiler/Gam/ClGam.hs
--- a/src/UHC/Light/Compiler/Gam/ClGam.hs
+++ b/src/UHC/Light/Compiler/Gam/ClGam.hs
@@ -29,7 +29,7 @@
        , clgiDictTag            :: !CTag                -- tag of dictionary
        , clgiGenerDerivableL    :: [(HsName,HsName)]    -- list of fields with default value which can be derived using generic deriving
        }
-       deriving Show
+       deriving (Show, Generic)
 
 type ClGam     = Gam HsName ClGamInfo
 
@@ -57,7 +57,5 @@
       ]
 
 {-# LINE 101 "src/ehc/Gam/ClGam.chs" #-}
-instance Serialize ClGamInfo where
-  sput (ClGamInfo a b c d e f) = sput a >> sput b >> sput c >> sput d >> sput e >> sput f
-  sget = liftM6 ClGamInfo sget sget sget sget sget sget
+instance Serialize ClGamInfo
 
diff --git a/src/UHC/Light/Compiler/Gam/DataGam.hs b/src/UHC/Light/Compiler/Gam/DataGam.hs
--- a/src/UHC/Light/Compiler/Gam/DataGam.hs
+++ b/src/UHC/Light/Compiler/Gam/DataGam.hs
@@ -49,7 +49,10 @@
 
 
 
-{-# LINE 52 "src/ehc/Gam/DataGam.chs" #-}
+
+
+
+{-# LINE 55 "src/ehc/Gam/DataGam.chs" #-}
 -- | per named field info
 -- If this changes, also change {%{EH}ConfigInternalVersions}
 data DataFldInfo
@@ -69,7 +72,7 @@
   = DataFldInfo
       noFld
 
-{-# LINE 81 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 84 "src/ehc/Gam/DataGam.chs" #-}
 -- | per positional constructor field annotation like info
 -- If this changes, also change {%{EH}ConfigInternalVersions}
 data DataConFldAnnInfo
@@ -83,7 +86,7 @@
   = DataConFldAnnInfo
       Strictness_NonStrict
 
-{-# LINE 100 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 103 "src/ehc/Gam/DataGam.chs" #-}
 -- If this changes, also change {%{EH}ConfigInternalVersions}
 data DataTagInfo
   = DataTagInfo
@@ -96,6 +99,7 @@
       , dtiFldRefL			:: ![Fld]					-- list of offset/references positionally consistent with (e.g.) dtiFldTyL
       , dtiMbFixityPrio 	:: !(Maybe (Int,Fixity))	-- if defined as infix, with priority
       }
+    deriving Generic
 
 instance Show DataTagInfo where
   show _ = "DataTagInfo"
@@ -116,7 +120,7 @@
       emptyCTag []
       Nothing
 
-{-# LINE 144 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 148 "src/ehc/Gam/DataGam.chs" #-}
 -- | Ensure presence of field labels
 fldTyLEnsureLabels :: FldTyL -> FldTyL
 fldTyLEnsureLabels = zipWith (\pn (ml,t) -> (ml <|> Just pn, t)) positionalFldNames
@@ -128,11 +132,11 @@
         fldRefL = refGen 0 1 [ n | (Just n, _) <- fldTyL' ]
         fldMp   = Map.fromList $ catMaybes $ zipWith (\(_,r) (ml,_) -> fmap (\l -> (l,emptyDataFldInfo {dfiOffset = r})) ml) fldRefL fldTyL
 
-{-# LINE 164 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 168 "src/ehc/Gam/DataGam.chs" #-}
 dtiOffsetOfFld :: HsName -> DataTagInfo -> Fld
 dtiOffsetOfFld fldNm dti = dfiOffset $ panicJust "dtiOffsetOfFld" $ Map.lookup fldNm $ dtiFldMp dti
 
-{-# LINE 169 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 173 "src/ehc/Gam/DataGam.chs" #-}
 -- If this changes, also change {%{EH}ConfigInternalVersions}
 data DataFldInConstr
   = DataFldInConstr
@@ -141,7 +145,7 @@
 
 type DataFldInConstrMp = Map.Map HsName DataFldInConstr
 
-{-# LINE 179 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 183 "src/ehc/Gam/DataGam.chs" #-}
 -- | specific info about what a DataGamInfo encodes
 -- If this changes, also change {%{EH}ConfigInternalVersions}
 data DataGamInfoVariant
@@ -149,11 +153,11 @@
   | DataGamInfoVariant_Newtype		-- newtype variation
       Ty							-- the type lambda corresponding to a newtype
   | DataGamInfoVariant_Rec			-- tuple, record
-  deriving Eq
-
-{-# LINE 192 "src/ehc/Gam/DataGam.chs" #-}
+  deriving (Eq, Generic)
 
+{-# LINE 196 "src/ehc/Gam/DataGam.chs" #-}
 -- If this changes, also change {%{EH}ConfigInternalVersions}
+-- | Implementation details for datatype, type/kind of a datatype are (also) stored in separate environments (TyGam, TyKiGam)
 data DataGamInfo
   = DataGamInfo
       { dgiTyNm      		:: !HsName				-- type name (duplicate of key of gamma leading to this info)
@@ -166,6 +170,7 @@
       , dgiMaxConstrArity   :: !Int
       , dgiMbGenerInfo		:: !(Maybe Int)			-- max kind arity for generic behavior, currently \in {0,1}
       }
+    deriving Generic
 
 instance Show DataGamInfo where
   show _ = "DataGamInfo"
@@ -178,7 +183,7 @@
 		>-< "constrmp=" >#< vlist (Map.toList $ dgiConstrTagMp i)
 		)
 
-{-# LINE 234 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 245 "src/ehc/Gam/DataGam.chs" #-}
 dgiMbNewtype :: DataGamInfo -> Maybe Ty
 dgiMbNewtype (DataGamInfo {dgiVariant = DataGamInfoVariant_Newtype t}) = Just t
 dgiMbNewtype _                                                         = Nothing
@@ -186,14 +191,14 @@
 dgiIsNewtype :: DataGamInfo -> Bool
 dgiIsNewtype = isJust . dgiMbNewtype
 
-{-# LINE 243 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 254 "src/ehc/Gam/DataGam.chs" #-}
 dgiIsRec :: DataGamInfo -> Bool
 dgiIsRec dgi = dgiVariant dgi == DataGamInfoVariant_Rec
 
-{-# LINE 248 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 259 "src/ehc/Gam/DataGam.chs" #-}
 type DataGam = Gam HsName DataGamInfo
 
-{-# LINE 252 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 263 "src/ehc/Gam/DataGam.chs" #-}
 mkDGI
   :: HsName
      -> Ty -> Ty -> [HsName] -> DataConstrTagMp -> DataGamInfoVariant
@@ -217,7 +222,7 @@
                )
         m' = Map.map (\dti -> dti {dtiCTag = patchTyInfoCTag tyNm mx $ dtiCTag dti}) m
 
-{-# LINE 293 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 304 "src/ehc/Gam/DataGam.chs" #-}
 mkDGIPlain :: HsName -> Ty -> Ty -> [HsName] -> DataConstrTagMp -> DataGamInfo
 mkDGIPlain tyNm dty dki cNmL m
   = mkDGI tyNm dty dki cNmL m
@@ -225,26 +230,26 @@
           Nothing
 
 
-{-# LINE 308 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 319 "src/ehc/Gam/DataGam.chs" #-}
 -- | Construct a datatype info as extracted from (e.g.) Core intended only for codegen (i.e. no type system stuff).
 mkDGIForCodegenOnly :: HsName -> DataConstrTagMp -> DataGamInfo
 mkDGIForCodegenOnly tyNm m
   = mkDGIPlain tyNm Ty_Any Ty_Any (Map.keys m) m
 
-{-# LINE 315 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 326 "src/ehc/Gam/DataGam.chs" #-}
 emptyDataGamInfo, emptyDGI :: DataGamInfo
 emptyDataGamInfo = mkDGIPlain hsnUnknown (appDbg "emptyDataGamInfo") (appDbg "mkDGIPlain")  [] Map.empty
 emptyDGI = emptyDataGamInfo
 
-{-# LINE 321 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 332 "src/ehc/Gam/DataGam.chs" #-}
 dgiConstrTagAssocL :: DataGamInfo -> AssocL HsName DataTagInfo
 dgiConstrTagAssocL dgi = [ (cn,panicJust "dgiConstrTagAssocL" $ Map.lookup cn $ dgiConstrTagMp dgi) | cn <- dgiConstrNmL dgi ]
 
-{-# LINE 326 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 337 "src/ehc/Gam/DataGam.chs" #-}
 dgiDtiOfCon :: HsName -> DataGamInfo -> DataTagInfo
 dgiDtiOfCon conNm dgi = panicJust "dgiDtiOfCon" $ Map.lookup conNm $ dgiConstrTagMp dgi
 
-{-# LINE 331 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 342 "src/ehc/Gam/DataGam.chs" #-}
 dataGamLookup :: HsName -> DataGam -> Maybe DataGamInfo
 dataGamLookup nm g
   =  case gamLookup nm g of
@@ -260,11 +265,11 @@
       Nothing  -> (emptyDGI,[rngLift emptyRange mkErr_NamesNotIntrod "data" [n]])
       Just tgi -> (tgi,[])
 
-{-# LINE 348 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 359 "src/ehc/Gam/DataGam.chs" #-}
 dataGamDgiOfTy :: Ty -> DataGam -> Maybe DataGamInfo
 dataGamDgiOfTy conTy dg = dataGamLookup (tyAppFunConNm conTy) dg
 
-{-# LINE 353 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 364 "src/ehc/Gam/DataGam.chs" #-}
 dataGamDTIsOfTyNm :: HsName -> DataGam -> Maybe [DataTagInfo]
 dataGamDTIsOfTyNm tn g
   = fmap
@@ -276,7 +281,7 @@
 dataGamDTIsOfTy = dataGamDTIsOfTyNm . tyDataTyNm
 {-# INLINE dataGamDTIsOfTy #-}
 
-{-# LINE 370 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 381 "src/ehc/Gam/DataGam.chs" #-}
 dataGamTagsOf :: (t -> DataGam -> Maybe [DataTagInfo]) -> t -> DataGam -> Maybe [CTag]
 dataGamTagsOf lkup t g = fmap (map dtiCTag) (lkup t g)
 {-# INLINE dataGamTagsOf #-}
@@ -287,14 +292,14 @@
 dataGamTagsOfTyNm :: HsName -> DataGam -> Maybe [CTag]
 dataGamTagsOfTyNm = dataGamTagsOf dataGamDTIsOfTyNm
 
-{-# LINE 382 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 393 "src/ehc/Gam/DataGam.chs" #-}
 dataGamLookupTag :: HsName -> HsName -> DataGam -> Maybe CTag
 dataGamLookupTag t c g
   = do dgi <- dataGamLookup t g
        dti <- Map.lookup c $ dgiConstrTagMp dgi
        return $ dtiCTag dti
 
-{-# LINE 390 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 401 "src/ehc/Gam/DataGam.chs" #-}
 dataGamTagLookup :: TagLike t => t -> DataGam -> Maybe (DataGamInfo,DataTagInfo)
 dataGamTagLookup tag g
   | tagIsData tag
@@ -304,11 +309,11 @@
   | otherwise
       = Nothing
 
-{-# LINE 403 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 414 "src/ehc/Gam/DataGam.chs" #-}
 dgiIsEnumable :: DataGamInfo -> Bool
 dgiIsEnumable dgi = dgiMaxConstrArity dgi == 0
 
-{-# LINE 412 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 423 "src/ehc/Gam/DataGam.chs" #-}
 deriving instance Typeable DataFldInfo
 
 deriving instance Typeable DataConFldAnnInfo
@@ -317,24 +322,16 @@
 
 deriving instance Typeable DataFldInConstr
 
+{-# LINE 433 "src/ehc/Gam/DataGam.chs" #-}
 deriving instance Typeable DataGamInfo
 
-{-# LINE 424 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 437 "src/ehc/Gam/DataGam.chs" #-}
 deriving instance Typeable DataGamInfoVariant
 
-{-# LINE 428 "src/ehc/Gam/DataGam.chs" #-}
-instance Serialize DataGamInfoVariant where
-  sput (DataGamInfoVariant_Plain    ) = sputWord8 0
-  sput (DataGamInfoVariant_Newtype a) = sputWord8 1 >> sput a
-  sput (DataGamInfoVariant_Rec      ) = sputWord8 2
-  sget = do
-    t <- sgetWord8
-    case t of
-      0 -> return DataGamInfoVariant_Plain
-      1 -> liftM  DataGamInfoVariant_Newtype sget
-      2 -> return DataGamInfoVariant_Rec
+{-# LINE 441 "src/ehc/Gam/DataGam.chs" #-}
+instance Serialize DataGamInfoVariant
 
-{-# LINE 445 "src/ehc/Gam/DataGam.chs" #-}
+{-# LINE 462 "src/ehc/Gam/DataGam.chs" #-}
 instance Serialize DataFldInfo where
   sput (DataFldInfo a) = sput a
   sget = liftM DataFldInfo sget
@@ -343,14 +340,11 @@
   sput (DataConFldAnnInfo a) = sput a
   sget = liftM DataConFldAnnInfo sget
 
-instance Serialize DataTagInfo where
-  sput (DataTagInfo a b c d e f g h) = sput a >> sput b >> sput c >> sput d >> sput e >> sput f >> sput g >> sput h
-  sget = liftM8 DataTagInfo sget sget sget sget sget sget sget sget
-
 instance Serialize DataFldInConstr where
   sput (DataFldInConstr a) = sput a
   sget = liftM DataFldInConstr sget
 
-instance Serialize DataGamInfo where
-  sput (DataGamInfo a b c d e f g h i) = sput a >> sput b >> sput c >> sput d >> sput e >> sput f >> sput g >> sput h >> sput i
-  sget = liftM9 DataGamInfo sget sget sget sget sget sget sget sget sget
+{-# LINE 476 "src/ehc/Gam/DataGam.chs" #-}
+instance Serialize DataTagInfo
+instance Serialize DataGamInfo
+
diff --git a/src/UHC/Light/Compiler/Gam/Utils.hs b/src/UHC/Light/Compiler/Gam/Utils.hs
--- a/src/UHC/Light/Compiler/Gam/Utils.hs
+++ b/src/UHC/Light/Compiler/Gam/Utils.hs
@@ -18,7 +18,7 @@
 import UHC.Light.Compiler.Gam.ValGam
 
 
-{-# LINE 66 "src/ehc/Gam/Utils.chs" #-}
+{-# LINE 63 "src/ehc/Gam/Utils.chs" #-}
 -- | Lookup indirectly used identifiers, type constants from types of value bindings.
 mentrelFilterMpExtendViaValGam :: HsName -> ValGam -> ModEntRelFilterMp -> ModEntRelFilterMp
 mentrelFilterMpExtendViaValGam moduleNm valGam mentrelFilterMp
diff --git a/src/UHC/Light/Compiler/Generics.hs b/src/UHC/Light/Compiler/Generics.hs
--- a/src/UHC/Light/Compiler/Generics.hs
+++ b/src/UHC/Light/Compiler/Generics.hs
@@ -114,7 +114,7 @@
 
 {-# LINE 136 "src/ehc/Generics.chs" #-}
 -- | builtin var of constructor
-projBuiltinVar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Proj -> e
+projBuiltinVar :: (AbstractCore e b bound boundmeta bcat t p pr pf a) => EHCOpts -> Proj -> e
 projBuiltinVar opts proj
   = acoreVar $ projBuiltinNm opts proj
 
@@ -125,9 +125,9 @@
 {-# LINE 152 "src/ehc/Generics.chs" #-}
 -- | from function, starting with a top level proj
 projFrom
-  :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Eq bcat)
+  :: (AbstractCore e b bound boundmeta bcat t p pr pf a, Eq bcat)
      => EHCOpts
-     -> RCEEnv' e m b ba t
+     -> RCEEnv' e b ba t
      -> Proj        	-- projection descriptor
      -> e       		-- resulting function
 projFrom
@@ -177,9 +177,9 @@
 {-# LINE 205 "src/ehc/Generics.chs" #-}
 -- | from function, starting with a top level proj
 projTo
-  :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Eq bcat)
+  :: (AbstractCore e b bound boundmeta bcat t p pr pf a, Eq bcat)
      => EHCOpts
-     -> RCEEnv' e m b ba t
+     -> RCEEnv' e b ba t
      -> Proj        	-- projection descriptor
      -> e		       	-- resulting function
 projTo
diff --git a/src/UHC/Light/Compiler/HI.hs b/src/UHC/Light/Compiler/HI.hs
--- a/src/UHC/Light/Compiler/HI.hs
+++ b/src/UHC/Light/Compiler/HI.hs
@@ -48,7 +48,7 @@
 
 
 
-{-# LINE 74 "src/ehc/HI.chs" #-}
+{-# LINE 72 "src/ehc/HI.chs" #-}
 data Visible
   = VisibleNo | VisibleYes
   deriving Eq
@@ -57,7 +57,7 @@
   show VisibleNo  = "visibleno"
   show VisibleYes = "visibleyes"
 
-{-# LINE 88 "src/ehc/HI.chs" #-}
+{-# LINE 86 "src/ehc/HI.chs" #-}
 type HIInfoUsedModMp = (Map.Map HsName (Set.Set HsName))
 
 -- | Encoding of info in .hi file, when changed also change {%{EH}ConfigInternalVersions}
@@ -87,11 +87,11 @@
       , hiiTransClosedUsedModMp :: !HIInfoUsedModMp       					-- used modules with their imports, required to be linked together, transitively closed/cached over imported modules
       , hiiTransClosedOrphanModS:: !(Set.Set HsName)                        -- orphan modules, required to read its .hi file, transitively closed/cached over imported modules
       , hiiMbOrphan             :: !(Maybe (Set.Set HsName))                -- is orphan module, carrying the module names required
+      , hiiDataGam              :: !DataGam                                 -- datatype info env
       , hiiValGam               :: !ValGam                                  -- value identifier environment
       , hiiTyGam                :: !TyGam                                   -- type identifier env
       , hiiTyKiGam              :: !TyKiGam                                 -- type/tyvar kind env
       , hiiPolGam               :: !PolGam                                  -- polarity env
-      , hiiDataGam              :: !DataGam                                 -- datatype info env
       , hiiClGam                :: !Pr.ClGam                                -- class env
       , hiiClDfGam              :: !ClassDefaultGam                         -- class defaults env
       , hiiCHRStore             :: !CHRStore                         -- rule database
@@ -111,20 +111,21 @@
            Set.empty Set.empty
            Map.empty Set.empty
            Nothing
-           emptyGam emptyGam emptyGam emptyGam emptyGam emptyGam emptyGam emptyCHRStore
+           emptyGam
+           emptyGam emptyGam emptyGam emptyGam emptyGam emptyGam emptyCHRStore
            Map.empty
            Map.empty
 
-{-# LINE 172 "src/ehc/HI.chs" #-}
+{-# LINE 175 "src/ehc/HI.chs" #-}
 -- | not empty if ok
 hiiIsEmpty :: HIInfo -> Bool
 hiiIsEmpty hii = hiiValidity hii /= HIValidity_Ok
 
-{-# LINE 178 "src/ehc/HI.chs" #-}
+{-# LINE 181 "src/ehc/HI.chs" #-}
 hiiIdDefOccGam :: HIInfo -> IdDefOccGam
 hiiIdDefOccGam hii = hiiIdDefOccGamFromHIIdGam $ mentrelToIdDefOccGam (hiiModuleNm hii) (hiiExps hii)
 
-{-# LINE 188 "src/ehc/HI.chs" #-}
+{-# LINE 191 "src/ehc/HI.chs" #-}
 instance Show HIInfo where
   show _ = "HIInfo"
 
@@ -142,11 +143,11 @@
                       -- >-< "Cached =" >#< ppAssocLV  (assocLMapElt pp $ Map.toList $ hiiImpHIMp    i)
                       )
 
-{-# LINE 229 "src/ehc/HI.chs" #-}
+{-# LINE 232 "src/ehc/HI.chs" #-}
 type ImpHIMp = Map.Map HsName HIInfo
 
 
-{-# LINE 234 "src/ehc/HI.chs" #-}
+{-# LINE 237 "src/ehc/HI.chs" #-}
 -- | combine HI info for a single module, as extracted from the cached hiiImpHIMp of the module importing these combined modules
 hiiUnion :: HIInfo -> HIInfo -> HIInfo
 hiiUnion m1 m2
@@ -156,14 +157,14 @@
        , hiiTyGam               = hiiTyGam          m1 `gamUnion`       hiiTyGam        m2
        , hiiTyKiGam             = hiiTyKiGam        m1 `gamUnion`       hiiTyKiGam      m2
        , hiiPolGam              = hiiPolGam         m1 `gamUnion`       hiiPolGam       m2
-       , hiiDataGam             = hiiDataGam        m1 `gamUnion`       hiiDataGam      m2
        , hiiClGam               = hiiClGam          m1 `gamUnion`       hiiClGam        m2
        , hiiClDfGam             = hiiClDfGam        m1 `gamUnion`       hiiClDfGam      m2
        , hiiCHRStore            = hiiCHRStore       m1 `chrStoreUnion`  hiiCHRStore     m2
+       , hiiDataGam             = hiiDataGam        m1 `gamUnion`       hiiDataGam      m2
        , hiiLamMp               = hiiLamMp          m1 `Map.union`      hiiLamMp        m2
        }
 
-{-# LINE 259 "src/ehc/HI.chs" #-}
+{-# LINE 264 "src/ehc/HI.chs" #-}
 -- | restrict envs to the ones being in the filter map, so only those visible relative to that map remain
 hiiRestrictToFilterMp :: ModEntRelFilterMp -> HIInfo -> HIInfo
 hiiRestrictToFilterMp mfm hii
@@ -175,9 +176,9 @@
       , hiiTyGam                = fg expT  $ hiiTyGam           hii
       , hiiTyKiGam              = fg expT' $ hiiTyKiGam         hii
       , hiiPolGam               = fg expT  $ hiiPolGam          hii
-      , hiiDataGam              = fg expT  $ hiiDataGam         hii
       , hiiClGam                = fg expC  $ hiiClGam           hii
       , hiiClDfGam              = fg expC  $ hiiClDfGam         hii
+      , hiiDataGam              = fg expT  $ hiiDataGam         hii
       , hiiLamMp                = fm expV  $ hiiLamMp           hii
       }
   where exp k  = (`Set.member` Map.findWithDefault Set.empty k mfm)
@@ -189,12 +190,12 @@
         fg p   = fst . gamPartition (\k _ -> p k)
         fm p   = Map.filterWithKey (\k _ -> p k)
 
-{-# LINE 295 "src/ehc/HI.chs" #-}
+{-# LINE 302 "src/ehc/HI.chs" #-}
 -- | restrict envs to the ones being exported, so only the visible part remains
 hiiRestrictToExported :: HIInfo -> HIInfo
 hiiRestrictToExported hii = hiiRestrictToFilterMp (mentrelToFilterMp [] (hiiExps hii) `mentrelFilterMpUnion` mentrelToFilterMp [] (hiiHiddenExps hii)) hii
 
-{-# LINE 301 "src/ehc/HI.chs" #-}
+{-# LINE 308 "src/ehc/HI.chs" #-}
 -- | include the imported HIInfos in this one, restricted to their exports, to be done just before saving
 hiiIncludeCacheOfImport :: (HsName -> HIInfo) -> ModEntRelFilterMp -> HIInfo -> HIInfo
 hiiIncludeCacheOfImport imp mfm hii
@@ -223,7 +224,7 @@
                         , hiiSrcVersionSvn          = ""
                         }
 
-{-# LINE 337 "src/ehc/HI.chs" #-}
+{-# LINE 344 "src/ehc/HI.chs" #-}
 mentrelToIdDefOccGam :: HsName -> ModEntRel -> Gam IdOcc IdOcc -- IdDefOccGam
 mentrelToIdDefOccGam modNm r
   = gamFromAssocL
@@ -236,20 +237,20 @@
             n' = hsnSetQual modNm n
       ]
 
-{-# LINE 355 "src/ehc/HI.chs" #-}
+{-# LINE 362 "src/ehc/HI.chs" #-}
 hiiIdDefOccGamToHIIdGam :: IdDefOccGam -> Gam IdOcc IdOcc
 hiiIdDefOccGamToHIIdGam = gamMap (\(k,v) -> (k,doccOcc v))
 
 hiiIdDefOccGamFromHIIdGam :: Gam IdOcc IdOcc -> IdDefOccGam
 hiiIdDefOccGamFromHIIdGam = gamMap (\(k,v) -> (k,mkIdDefOcc v IdAsp_Any nmLevOutside emptyRange))
 
-{-# LINE 367 "src/ehc/HI.chs" #-}
+{-# LINE 374 "src/ehc/HI.chs" #-}
 data HIOrigin
   = HIOrigin_FromFile                               -- from .hi file
   | HIOrigin_FromImportedBy HsNameS                 -- reconstructed from modules which imported this hi
   deriving (Eq,Show,Typeable)
 
-{-# LINE 374 "src/ehc/HI.chs" #-}
+{-# LINE 381 "src/ehc/HI.chs" #-}
 data HIValidity
   = HIValidity_Ok               -- ok
   | HIValidity_WrongMagic       -- wrong magic number
@@ -257,16 +258,16 @@
   | HIValidity_Absent           -- not available
   deriving (Eq,Enum,Show,Typeable)
 
-{-# LINE 387 "src/ehc/HI.chs" #-}
+{-# LINE 394 "src/ehc/HI.chs" #-}
 gamFlatten :: Ord k => Gam k v -> Gam k v
 gamFlatten = id -- gamFromAssocL . gamToAssocL
 
-{-# LINE 396 "src/ehc/HI.chs" #-}
+{-# LINE 403 "src/ehc/HI.chs" #-}
 instance Serialize HIValidity where
   sput = sputEnum8
   sget = sgetEnum8
 
-{-# LINE 402 "src/ehc/HI.chs" #-}
+{-# LINE 409 "src/ehc/HI.chs" #-}
 sgetHIInfo :: EHCOpts -> SGet HIInfo
 sgetHIInfo opts = do
   { hi_magic <- sequence $ replicate (length Cfg.magicNumberHI) sgetWord8
@@ -300,11 +301,11 @@
                       ; tclused   <- sget
                       ; tclorph   <- sget
                       ; isorph    <- sget
+                      ; dg        <- sget
                       ; vg        <- sget
                       ; tg        <- sget
                       ; tkg       <- sget
                       ; pg        <- sget
-                      ; dg        <- sget
                       ; cg        <- sget
                       ; cdg       <- sget
                       ; cs        <- sget
@@ -334,11 +335,11 @@
                             , hiiTransClosedUsedModMp = tclused
                             , hiiTransClosedOrphanModS= tclorph
                             , hiiMbOrphan             = isorph
+                            , hiiDataGam              = dg
                             , hiiValGam               = vg
                             , hiiTyGam                = tg
                             , hiiTyKiGam              = tkg
                             , hiiPolGam               = pg
-                            , hiiDataGam              = dg
                             , hiiClGam                = cg
                             , hiiClDfGam              = cdg
                             , hiiCHRStore             = cs
@@ -364,7 +365,7 @@
              }
   }
 
-{-# LINE 525 "src/ehc/HI.chs" #-}
+{-# LINE 536 "src/ehc/HI.chs" #-}
 instance Serialize HIInfo where
   sput       (HIInfo
                   { hiiSrcSig               = hi_sig
@@ -388,11 +389,11 @@
                   , hiiTransClosedUsedModMp = tclused
                   , hiiTransClosedOrphanModS= tclorph
                   , hiiMbOrphan             = isorph
+                  , hiiDataGam              = dg
                   , hiiValGam               = vg
                   , hiiTyGam                = tg
                   , hiiTyKiGam              = tkg
                   , hiiPolGam               = pg
-                  , hiiDataGam              = dg
                   , hiiClGam                = cg
                   , hiiClDfGam              = cdg
                   , hiiCHRStore             = cs
@@ -421,11 +422,11 @@
                 >> sput tclused
                 >> sput tclorph
                 >> sput isorph
+                >> sput (gamFlatten dg)
                 >> sput (gamFlatten vg)
                 >> sput (gamFlatten tg)
                 >> sput (gamFlatten tkg)
                 >> sput (gamFlatten pg)
-                >> sput (gamFlatten dg)
                 >> sput (gamFlatten cg)
                 >> sput (gamFlatten cdg)
                 >> sput cs
diff --git a/src/UHC/Light/Compiler/HS.hs b/src/UHC/Light/Compiler/HS.hs
--- a/src/UHC/Light/Compiler/HS.hs
+++ b/src/UHC/Light/Compiler/HS.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/HS.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/HS.ag)
 module UHC.Light.Compiler.HS(module UU.Scanner.Position
 , AGItf (..), Module (..), Body (..), Declaration (..), Declarations, MaybeDeclarations, Type (..), Types, MaybeType, Expression (..), Expressions, MaybeExpression, FunctionBinding (..), FunctionBindings, LeftHandSide (..), RightHandSide (..), Pattern (..), Patterns, Literal (..), Name, Names, MaybeName, MaybeNames, Strings, Range (..), Fixity (..)
 , TypeAnnotation (..), ExpressionAnnotation (..), PatternAnnotation (..)
diff --git a/src/UHC/Light/Compiler/HS/MainAG.hs b/src/UHC/Light/Compiler/HS/MainAG.hs
--- a/src/UHC/Light/Compiler/HS/MainAG.hs
+++ b/src/UHC/Light/Compiler/HS/MainAG.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/HS/MainAG.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/HS/MainAG.ag)
 module UHC.Light.Compiler.HS.MainAG(Inh_AGItf (..), Syn_AGItf (..), sem_AGItf, wrap_AGItf
 , tyGam2IdDefOccGam, kiGam2IdDefOccGam
 , clGam2IdDefOccGam) where
diff --git a/src/UHC/Light/Compiler/HS/ModImpExp.hs b/src/UHC/Light/Compiler/HS/ModImpExp.hs
--- a/src/UHC/Light/Compiler/HS/ModImpExp.hs
+++ b/src/UHC/Light/Compiler/HS/ModImpExp.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.a)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.a)
 module UHC.Light.Compiler.HS.ModImpExp(Inh_AGItf (..), Syn_AGItf (..), sem_AGItf, wrap_AGItf) where
 
 import UHC.Light.Compiler.Base.HsName.Builtin
diff --git a/src/UHC/Light/Compiler/LamInfo.hs b/src/UHC/Light/Compiler/LamInfo.hs
--- a/src/UHC/Light/Compiler/LamInfo.hs
+++ b/src/UHC/Light/Compiler/LamInfo.hs
@@ -32,7 +32,7 @@
   | StackTraceInfo_HasStackTraceEquiv	HsName		-- has a stack traced equivalent
   | StackTraceInfo_IsStackTraceEquiv	HsName		-- is a stack traced equivalent
   deriving ( Show
-           , Typeable
+           , Typeable, Generic
            )
 
 {-# LINE 80 "src/ehc/LamInfo.chs" #-}
@@ -43,14 +43,15 @@
   | FusionRole_BuildRight	-- role of h in 'convert g,h'
   deriving ( Enum, Show
            , Typeable
+           , Generic
            )
 
-{-# LINE 91 "src/ehc/LamInfo.chs" #-}
+{-# LINE 92 "src/ehc/LamInfo.chs" #-}
 instance PP FusionRole where
   pp r = pp $ drop l $ show r
        where l = length "FusionRole_"
 
-{-# LINE 97 "src/ehc/LamInfo.chs" #-}
+{-# LINE 98 "src/ehc/LamInfo.chs" #-}
 -- | per aspect info
 data LamInfoBindAsp
   = LamInfoBindAsp_Ty								-- plain good old type
@@ -64,18 +65,18 @@
       { libindaspFusionRole 	:: !FusionRole
       }
   deriving ( Show
-           , Typeable
+           , Typeable, Generic
            )
 
 type LamInfoBindAspMp = Map.Map ACoreBindAspectKeyS LamInfoBindAsp
 
-{-# LINE 131 "src/ehc/LamInfo.chs" #-}
+{-# LINE 132 "src/ehc/LamInfo.chs" #-}
 instance PP LamInfoBindAsp where
   pp (LamInfoBindAsp_Ty      	t) = "Ty"   >#< ppTy t
   pp (LamInfoBindAsp_Core    ml	c) = pp "Core" -- >#< pp c -- Core.Pretty uses LamInfo, so module cycle...
   pp (LamInfoBindAsp_FusionRole	r) = "Fuse" >#< pp r
 
-{-# LINE 143 "src/ehc/LamInfo.chs" #-}
+{-# LINE 144 "src/ehc/LamInfo.chs" #-}
 -- | per lambda implementation info
 data LamInfo
   = LamInfo
@@ -84,7 +85,7 @@
       , laminfoBindAspMp			:: !LamInfoBindAspMp			-- info organized per/keyed on aspect
       }
   deriving ( Show
-           , Typeable
+           , Typeable, Generic
            )
 
 emptyLamInfo' :: LamInfo
@@ -97,22 +98,22 @@
   = LamInfo 0 StackTraceInfo_None
             Map.empty
 
-{-# LINE 177 "src/ehc/LamInfo.chs" #-}
+{-# LINE 178 "src/ehc/LamInfo.chs" #-}
 instance PP LamInfo where
   pp (LamInfo {laminfoBindAspMp=m}) = ppAssocL $ assocLMapKey ppACBaspKeyS $ Map.toList m
 
-{-# LINE 182 "src/ehc/LamInfo.chs" #-}
+{-# LINE 183 "src/ehc/LamInfo.chs" #-}
 laminfo1stArgIsStackTrace :: LamInfo -> Bool
 laminfo1stArgIsStackTrace (LamInfo {laminfoStackTrace=StackTraceInfo_IsStackTraceEquiv _}) = True
 laminfo1stArgIsStackTrace _                                                                = False
 
-{-# LINE 194 "src/ehc/LamInfo.chs" #-}
+{-# LINE 195 "src/ehc/LamInfo.chs" #-}
 type LamMp    = Map.Map HsName LamInfo
 
 emptyLamMp :: LamMp
 emptyLamMp = Map.empty
 
-{-# LINE 201 "src/ehc/LamInfo.chs" #-}
+{-# LINE 202 "src/ehc/LamInfo.chs" #-}
 -- union, including the aspect map, but arbitrary for the info itself
 lamMpUnionBindAspMp :: LamMp -> LamMp -> LamMp
 lamMpUnionBindAspMp = Map.unionWith (\i1 i2 -> i1 {laminfoBindAspMp = laminfoBindAspMp i1 `Map.union` laminfoBindAspMp i2})
@@ -120,9 +121,14 @@
 lamMpUnionsBindAspMp :: [LamMp] -> LamMp
 lamMpUnionsBindAspMp = foldr lamMpUnionBindAspMp Map.empty
 
-{-# LINE 210 "src/ehc/LamInfo.chs" #-}
+{-# LINE 211 "src/ehc/LamInfo.chs" #-}
 -- propagate from new (left) to prev (right), adding new entries if necessary, combining with mergeL2RInfo, finally combining/choosing maps with mergeL2RMp
-lamMpMergeInto :: (LamInfo -> LamInfo -> LamInfo) -> (LamMp -> LamMp -> LamMp) -> LamMp -> LamMp -> LamMp
+lamMpMergeInto
+  :: (LamInfo -> LamInfo -> LamInfo)		-- ^ 'mergeL2RInfo', merge info
+  -> (LamMp -> LamMp -> LamMp)				-- ^ 'mergeL2RMp', merge map
+  -> LamMp									-- ^ new map
+  -> LamMp									-- ^ prev map
+  -> LamMp
 lamMpMergeInto mergeL2RInfo mergeL2RMp newMp prevMp
   = mergeL2RMp newMpMerge prevMp
   where newMpMerge
@@ -130,7 +136,7 @@
               (\n i -> maybe i (mergeL2RInfo i) $ Map.lookup n prevMp
               ) newMp
 
-{-# LINE 232 "src/ehc/LamInfo.chs" #-}
+{-# LINE 238 "src/ehc/LamInfo.chs" #-}
 lamMpLookupAsp :: HsName -> ACoreBindAspectKeyS -> LamMp -> Maybe LamInfoBindAsp
 lamMpLookupAsp n a m
   = fmap snd $ mapLookup2' laminfoBindAspMp n a m
@@ -152,14 +158,14 @@
         -> Just a
       _ -> Nothing
 
-{-# LINE 255 "src/ehc/LamInfo.chs" #-}
+{-# LINE 261 "src/ehc/LamInfo.chs" #-}
 lamMpFilterLam :: LamMp -> LamMp
 lamMpFilterLam = Map.filter ((>0) . laminfoArity)
 
 lamMpFilterCaf :: LamMp -> LamMp
 lamMpFilterCaf = Map.filter ((==0) . laminfoArity)
 
-{-# LINE 263 "src/ehc/LamInfo.chs" #-}
+{-# LINE 269 "src/ehc/LamInfo.chs" #-}
 -- | merge info from arbitrary map m into LamMp holding LamInfo's
 lamMpMergeFrom
   :: (LamInfo -> Maybe x)					-- extract relevant info from a LamInfo
@@ -175,39 +181,17 @@
         upd z Nothing  = set (Just (merge z         emptyExtra           )) empty
         emptyExtra = panicJust "lamMpMergeFrom" $ get $ empty
 
-{-# LINE 320 "src/ehc/LamInfo.chs" #-}
+{-# LINE 326 "src/ehc/LamInfo.chs" #-}
 initLamMp :: LamMp
 initLamMp = emptyLamMp
 
-{-# LINE 349 "src/ehc/LamInfo.chs" #-}
+{-# LINE 355 "src/ehc/LamInfo.chs" #-}
 instance Serialize FusionRole where
   sput = sputEnum8
   sget = sgetEnum8
 
-{-# LINE 355 "src/ehc/LamInfo.chs" #-}
-instance Serialize LamInfoBindAsp where
-  sput (LamInfoBindAsp_Ty 			a) = sputWord8 1 >> sput a
-  sput (LamInfoBindAsp_Core 	  a b) = sputWord8 2 >> sput a >> sput b
-  sput (LamInfoBindAsp_FusionRole 	a) = sputWord8 3 >> sput a
-  sget = do
-    t <- sgetWord8
-    case t of
-      1 -> liftM  LamInfoBindAsp_Ty 		sget
-      2 -> liftM2 LamInfoBindAsp_Core 		sget sget
-      3 -> liftM  LamInfoBindAsp_FusionRole sget
-
-instance Serialize LamInfo where
-  sput (LamInfo a b c) = sput a >> sput b >> sput c
-  sget = liftM3 LamInfo  sget sget sget
-
-instance Serialize StackTraceInfo where
-  sput (StackTraceInfo_None                ) = sputWord8 0
-  sput (StackTraceInfo_HasStackTraceEquiv a) = sputWord8 1 >> sput a
-  sput (StackTraceInfo_IsStackTraceEquiv  a) = sputWord8 2 >> sput a
-  sget
-    = do t <- sgetWord8
-         case t of
-           0 -> return StackTraceInfo_None
-           1 -> liftM  StackTraceInfo_HasStackTraceEquiv sget
-           2 -> liftM  StackTraceInfo_IsStackTraceEquiv  sget
+{-# LINE 361 "src/ehc/LamInfo.chs" #-}
+instance Serialize LamInfoBindAsp
+instance Serialize LamInfo
+instance Serialize StackTraceInfo
 
diff --git a/src/UHC/Light/Compiler/Opts.hs b/src/UHC/Light/Compiler/Opts.hs
--- a/src/UHC/Light/Compiler/Opts.hs
+++ b/src/UHC/Light/Compiler/Opts.hs
@@ -118,6 +118,7 @@
   show CoreOpt_Dump             	= "dump"
   show CoreOpt_DumpBinary	      	= "dump-binary"
   show CoreOpt_DumpAlsoNonParseable	= "whendump-alsononparseable"
+  show CoreOpt_DumpAST             	= "dump-ast"
   show CoreOpt_Run            	    = "run"
   show CoreOpt_LoadOnly            	= "loadonly"
   show CoreOpt_RunDump            	= "dump-run"
@@ -130,14 +131,14 @@
 coreOptMp :: Map.Map String CoreOpt
 coreOptMp = str2stMpWithOmit [CoreOpt_NONE]
 
-{-# LINE 164 "src/ehc/Opts.chs" #-}
+{-# LINE 165 "src/ehc/Opts.chs" #-}
 instance Show CoreRunOpt where
   show = strToLower . showUnprefixed 1
 
 coreRunOptMp :: Map.Map String CoreRunOpt
 coreRunOptMp = str2stMp
 
-{-# LINE 205 "src/ehc/Opts.chs" #-}
+{-# LINE 189 "src/ehc/Opts.chs" #-}
 instance Show PgmExec where
   show PgmExec_CPP      = "P"
   show PgmExec_C        = "c"
@@ -146,30 +147,30 @@
 pgmExecMp :: Map.Map String PgmExec
 pgmExecMp = str2stMp
 
-{-# LINE 221 "src/ehc/Opts.chs" #-}
+{-# LINE 205 "src/ehc/Opts.chs" #-}
 -- do something with whole program
 ehcOptWholeProgOptimizationScope :: EHCOpts -> Bool
 ehcOptWholeProgOptimizationScope opts
   = ehcOptOptimizationScope opts > OptimizationScope_PerModule
 
-{-# LINE 228 "src/ehc/Opts.chs" #-}
+{-# LINE 212 "src/ehc/Opts.chs" #-}
 -- compatibility option
 ehcOptEarlyModMerge :: EHCOpts -> Bool
 ehcOptEarlyModMerge opts
   = ehcOptOptimizationScope opts >= OptimizationScope_WholeCore
 
-{-# LINE 235 "src/ehc/Opts.chs" #-}
+{-# LINE 219 "src/ehc/Opts.chs" #-}
 -- do whole program analysis, with HPT
 ehcOptWholeProgHPTAnalysis :: EHCOpts -> Bool
 ehcOptWholeProgHPTAnalysis opts
   = False
 
-{-# LINE 301 "src/ehc/Opts.chs" #-}
+{-# LINE 274 "src/ehc/Opts.chs" #-}
 -- | optimizes a particular option
 ehcOptOptimizes :: Optimize -> EHCOpts -> Bool
 ehcOptOptimizes o opts = o `Set.member` ehcOptOptimizations opts
 
-{-# LINE 311 "src/ehc/Opts.chs" #-}
+{-# LINE 284 "src/ehc/Opts.chs" #-}
 -- | The default EHC options.
 defaultEHCOpts
   = emptyEHCOpts
@@ -178,7 +179,7 @@
       	  ]
       }
 
-{-# LINE 327 "src/ehc/Opts.chs" #-}
+{-# LINE 300 "src/ehc/Opts.chs" #-}
 -- | Commandline opts for ehc/uhc (EHC)
 ehcCmdLineOpts :: GetOptCmdLineOpts
 ehcCmdLineOpts = sortOptions $
@@ -236,7 +237,7 @@
      ,  Option ""   ["pgmP"]                (ReqArg (oPgmExec PgmExec_CPP)          "alternate program for cmd")
                                                                                     "pgm: alternate executable used by compiler, currently only P (preprocessing)"
      ]
-{-# LINE 487 "src/ehc/Opts.chs" #-}
+{-# LINE 450 "src/ehc/Opts.chs" #-}
   where  oPretty     ms  o =  case ms of
                                 Just "-"     -> o { ehcOptShowEH       = False     }
                                 Just "no"    -> o { ehcOptShowEH       = False     }
@@ -278,8 +279,6 @@
                                 Just "-"     -> o -- { ehcOptEmitCore         = False  }
                                 Just "core"  -> o { ehcOptMbTarget         = JustOk Target_None_Core_AsIs
                                                   }
-                                Just "tycore"-> o { ehcOptMbTarget         = JustOk Target_None_TyCore_None
-                                                  }
                                 _            -> o
 
          oOptimization ms o
@@ -385,12 +384,12 @@
                                                                               nub $ ehcOptCmdLineOpts o ++ fst (parseCmdLineOpts cmd s) }
          oPgmExec     cmd     s o   = o { ehcOptPgmExecMp                   = Map.insert cmd s $ ehcOptPgmExecMp o }
 
-{-# LINE 774 "src/ehc/Opts.chs" #-}
+{-# LINE 722 "src/ehc/Opts.chs" #-}
 -- | Sort options according to long descr field
 sortOptions :: GetOptCmdLineOpts -> GetOptCmdLineOpts
 sortOptions = sortOn (\(Option _ d _ _) -> d)
 
-{-# LINE 784 "src/ehc/Opts.chs" #-}
+{-# LINE 732 "src/ehc/Opts.chs" #-}
 -- | Commandline opts for ehcr/uhcr (EHCRun)
 ehcrunCmdLineOpts :: GetOptCmdLineOpts
 ehcrunCmdLineOpts = sortOptions $
@@ -402,7 +401,7 @@
           where upd | b         = (CoreOpt_RunTrace :)
                     | otherwise = (\\ [CoreOpt_RunTrace])
 
-{-# LINE 805 "src/ehc/Opts.chs" #-}
+{-# LINE 753 "src/ehc/Opts.chs" #-}
 -- | The description for GetOpt
 type GetOptCmdLineOpts = [OptDescr (EHCOpts -> EHCOpts)]
 
@@ -425,7 +424,7 @@
      ,  Option ""   ["corerunopt"]          (ReqArg oOptCoreRun "opt[,...]")        ("opts (specific) for CoreRun: " ++ showStr2stMp coreRunOptMp)
      ]
 
-{-# LINE 847 "src/ehc/Opts.chs" #-}
+{-# LINE 795 "src/ehc/Opts.chs" #-}
 -- | Help
 oHelp           o =  o { ehcOptImmQuit       = Just ImmediateQuitOption_Help    }
 
@@ -442,24 +441,24 @@
                        Nothing     -> o { ehcOptVerbosity     = succ (ehcOptVerbosity o)}
                        _           -> o
 
-{-# LINE 865 "src/ehc/Opts.chs" #-}
+{-# LINE 813 "src/ehc/Opts.chs" #-}
 oOptEh      s   o =  o { ehcOptEhOpts   = optOpts ehOptMp s ++ ehcOptEhOpts o}
 
-{-# LINE 869 "src/ehc/Opts.chs" #-}
+{-# LINE 817 "src/ehc/Opts.chs" #-}
 oOptCore    s   o =  o { ehcOptCoreOpts = optOpts coreOptMp s ++ ehcOptCoreOpts o}
 
-{-# LINE 873 "src/ehc/Opts.chs" #-}
+{-# LINE 821 "src/ehc/Opts.chs" #-}
 oOptCoreRun s   o =  o { ehcOptCoreRunOpts = Set.fromList (optOpts coreRunOptMp s) `Set.union` ehcOptCoreRunOpts o}
 
-{-# LINE 877 "src/ehc/Opts.chs" #-}
+{-# LINE 825 "src/ehc/Opts.chs" #-}
 oNumVersion            o   = o { ehcOptImmQuit                     = Just ImmediateQuitOption_VersionDotted }
 oVersionAsNumber       o   = o { ehcOptImmQuit                     = Just ImmediateQuitOption_VersionAsNumber }
 
-{-# LINE 882 "src/ehc/Opts.chs" #-}
+{-# LINE 830 "src/ehc/Opts.chs" #-}
 oAltDriver             o   = o { ehcOptAltDriver                   = not $ ehcOptAltDriver o }
 oTraceOn               s o = o { ehcOptTraceOn = Set.fromList (optOpts allTraceOnMp s) `Set.union` ehcOptTraceOn o }
 
-{-# LINE 891 "src/ehc/Opts.chs" #-}
+{-# LINE 839 "src/ehc/Opts.chs" #-}
 -- | Int option
 intArg  tr = ReqArg (optInt tr) "<nr>"
 
@@ -468,7 +467,7 @@
 optInt tr s o
  = tr o $ read s
 
-{-# LINE 901 "src/ehc/Opts.chs" #-}
+{-# LINE 849 "src/ehc/Opts.chs" #-}
 -- | What kind of optional args are allowed
 data OptArgAllow
   = OptArgAllow_Bool
@@ -478,13 +477,13 @@
 optArgAllAllow :: [OptArgAllow]
 optArgAllAllow = [minBound .. maxBound]
 
-{-# LINE 912 "src/ehc/Opts.chs" #-}
+{-# LINE 860 "src/ehc/Opts.chs" #-}
 -- | An optional arg, universal type for all occurring variants
 data OptArg
   = OptArg_Bool     Bool
   | OptArg_Int      Int
 
-{-# LINE 919 "src/ehc/Opts.chs" #-}
+{-# LINE 867 "src/ehc/Opts.chs" #-}
 optArgTake :: [OptArgAllow] -> String -> Maybe (OptArg,String)
 optArgTake allow s
   = case s of
@@ -505,7 +504,7 @@
   where yesInt = OptArgAllow_Int `elem` allow
         noInt  = not yesInt
 
-{-# LINE 941 "src/ehc/Opts.chs" #-}
+{-# LINE 889 "src/ehc/Opts.chs" #-}
 optBooleanTake :: String -> Maybe (Bool,String)
 optBooleanTake s
   = case optArgTake [OptArgAllow_Bool] s of
@@ -521,27 +520,27 @@
 boolArgStr = "Bool"
 boolArg tr = OptArg (optBoolean tr) boolArgStr
 
-{-# LINE 962 "src/ehc/Opts.chs" #-}
+{-# LINE 910 "src/ehc/Opts.chs" #-}
 oPriv                o b = o { ehcOptPriv           = b }
 
-{-# LINE 966 "src/ehc/Opts.chs" #-}
+{-# LINE 914 "src/ehc/Opts.chs" #-}
 oUnderDev          s   o = o { ehcOptUnderDev = {- Set.fromList (optOpts allUnderDevMp s) `Set.union` ehcOptUnderDev o -- -}
                                  foldr (\ud o -> if Set.member ud o then Set.delete ud o else Set.insert ud o) (ehcOptUnderDev o) (optOpts allUnderDevMp s)
                              }
 
-{-# LINE 972 "src/ehc/Opts.chs" #-}
+{-# LINE 920 "src/ehc/Opts.chs" #-}
 optDumpCoreStages    o b = o { ehcOptDumpCoreStages = b }
 
-{-# LINE 980 "src/ehc/Opts.chs" #-}
+{-# LINE 928 "src/ehc/Opts.chs" #-}
 oSetGenTrampoline	 o b = o { ehcOptGenTrampoline_ = b }
 
-{-# LINE 1000 "src/ehc/Opts.chs" #-}
+{-# LINE 948 "src/ehc/Opts.chs" #-}
 oStopAtCoreError     o b = o { ehcDebugStopAtCoreError     = b }
 
-{-# LINE 1004 "src/ehc/Opts.chs" #-}
+{-# LINE 952 "src/ehc/Opts.chs" #-}
 oStopAtHIError       o b = o { ehcDebugStopAtHIError       = b }
 
-{-# LINE 1012 "src/ehc/Opts.chs" #-}
+{-# LINE 960 "src/ehc/Opts.chs" #-}
 -- | Apply the cmdline opts description to a EHCOpts, returning Nothing when there were no options
 cmdlineOptsApply :: [OptDescr (EHCOpts -> EHCOpts)] -> [EHCOpts -> EHCOpts] -> [String] -> EHCOpts -> (Maybe EHCOpts, [String], [String])
 cmdlineOptsApply cmdlopts postopts args opts
@@ -557,7 +556,7 @@
 ehcrunCmdLineOptsApply :: [String] -> EHCOpts -> (Maybe EHCOpts, [String], [String])
 ehcrunCmdLineOptsApply = cmdlineOptsApply ehcrunCmdLineOpts []
 
-{-# LINE 1033 "src/ehc/Opts.chs" #-}
+{-# LINE 981 "src/ehc/Opts.chs" #-}
 optsDiscrRecompileRepr :: EHCOpts -> String
 optsDiscrRecompileRepr opts
   = concat
@@ -571,12 +570,12 @@
       ]
   where o m v = if v then m else ""
 
-{-# LINE 1054 "src/ehc/Opts.chs" #-}
+{-# LINE 1002 "src/ehc/Opts.chs" #-}
 data FIOBind
   = FIOBindYes | FIOBindNoBut TyVarIdS
   deriving (Show)
 
-{-# LINE 1060 "src/ehc/Opts.chs" #-}
+{-# LINE 1008 "src/ehc/Opts.chs" #-}
 data FIOpts =  FIOpts   {  fioLeaveRInst     ::  !Bool                ,  fioBindRFirst           ::  !Bool
                         ,  fioBindLFirst     ::  !Bool                ,  fioBindLBeforeR         ::  !Bool
                         ,  fioMode           ::  !FIMode              ,  fioUniq                 ::  !UID
@@ -589,7 +588,7 @@
                         ,  fiMbMkErrClash    ::  Maybe (Ty -> Ty -> Err) -- alternate error construction for type clash
                         }
 
-{-# LINE 1094 "src/ehc/Opts.chs" #-}
+{-# LINE 1042 "src/ehc/Opts.chs" #-}
 fioBindNoSet :: FIOBind -> TyVarIdS
 fioBindNoSet (FIOBindNoBut s) = s
 fioBindNoSet _                = Set.empty
@@ -598,7 +597,7 @@
 fioBindIsYes FIOBindYes = True
 fioBindIsYes _          = False
 
-{-# LINE 1104 "src/ehc/Opts.chs" #-}
+{-# LINE 1052 "src/ehc/Opts.chs" #-}
 strongFIOpts :: FIOpts
 strongFIOpts =  FIOpts  {  fioLeaveRInst     =   False               ,  fioBindRFirst           =   True
                         ,  fioBindLFirst     =   True                ,  fioBindLBeforeR         =   True
@@ -612,11 +611,11 @@
                         ,  fiMbMkErrClash    =   Nothing
                         }
 
-{-# LINE 1134 "src/ehc/Opts.chs" #-}
+{-# LINE 1082 "src/ehc/Opts.chs" #-}
 instance Show FIOpts where
   show o =  "FIOpts"
 
-{-# LINE 1139 "src/ehc/Opts.chs" #-}
+{-# LINE 1087 "src/ehc/Opts.chs" #-}
 instance PP FIOpts where
   pp   o =  "FIOpts{"
             >#< "leaveRInst=" >|< pp (fioLeaveRInst o)
@@ -627,33 +626,33 @@
             >#< "allowRPredElim=" >|< pp (fioAllowRPredElim o)
             >#< "}"
 
-{-# LINE 1155 "src/ehc/Opts.chs" #-}
+{-# LINE 1103 "src/ehc/Opts.chs" #-}
 instLFIOpts :: FIOpts
 instLFIOpts = strongFIOpts {fioBindRFirst = False}
 
-{-# LINE 1160 "src/ehc/Opts.chs" #-}
+{-# LINE 1108 "src/ehc/Opts.chs" #-}
 instLRFIOpts :: FIOpts
 instLRFIOpts = strongFIOpts {fioBindRFirst = False, fioBindLFirst = False}
 
-{-# LINE 1165 "src/ehc/Opts.chs" #-}
+{-# LINE 1113 "src/ehc/Opts.chs" #-}
 unifyFIOpts :: FIOpts
 unifyFIOpts = strongFIOpts {fioMode = FitUnify}
 
 instFIOpts :: FIOpts
 instFIOpts = instLFIOpts {fioLeaveRInst = True, fioBindLFirst = False}
 
-{-# LINE 1184 "src/ehc/Opts.chs" #-}
+{-# LINE 1121 "src/ehc/Opts.chs" #-}
 weakFIOpts :: FIOpts
 weakFIOpts = fioMkWeak strongFIOpts
 
-{-# LINE 1189 "src/ehc/Opts.chs" #-}
+{-# LINE 1126 "src/ehc/Opts.chs" #-}
 predFIOpts :: FIOpts
 predFIOpts = strongFIOpts {fioPredAsTy = True, fioLeaveRInst = True}
 
 implFIOpts  :: FIOpts
 implFIOpts = strongFIOpts {fioAllowRPredElim = False}
 
-{-# LINE 1197 "src/ehc/Opts.chs" #-}
+{-# LINE 1134 "src/ehc/Opts.chs" #-}
 fioSwapOpts :: FIOpts -> FIOpts
 fioSwapOpts fio
   = fio
@@ -667,24 +666,24 @@
 fioSwapPolarity :: Polarity -> FIOpts -> FIOpts
 fioSwapPolarity pol fio = fio {fioMode = fimSwapPol pol (fioMode fio)}
 
-{-# LINE 1214 "src/ehc/Opts.chs" #-}
+{-# LINE 1151 "src/ehc/Opts.chs" #-}
 fioMkStrong :: FIOpts -> FIOpts
 fioMkStrong fi = fi {fioLeaveRInst = False, fioBindRFirst = True, fioBindLFirst = True}
 
-{-# LINE 1219 "src/ehc/Opts.chs" #-}
+{-# LINE 1156 "src/ehc/Opts.chs" #-}
 fioMkWeak :: FIOpts -> FIOpts
 fioMkWeak fi = fi {fioLeaveRInst = True, fioBindRFirst = False}
 
-{-# LINE 1224 "src/ehc/Opts.chs" #-}
+{-# LINE 1161 "src/ehc/Opts.chs" #-}
 -- | Adapt options for extracting final ty
 fioMkFinal :: FIOpts -> FIOpts
 fioMkFinal fi = fi {fioBindLFirst = False, fioBindRFirst = False, fioExpandEqTyVar = True}
 
-{-# LINE 1230 "src/ehc/Opts.chs" #-}
+{-# LINE 1167 "src/ehc/Opts.chs" #-}
 fioMkUnify :: FIOpts -> FIOpts
 fioMkUnify fi = fi {fioMode = FitUnify}
 
-{-# LINE 1239 "src/ehc/Opts.chs" #-}
+{-# LINE 1176 "src/ehc/Opts.chs" #-}
 fioIsSubsume :: FIOpts -> Bool
 fioIsSubsume fio =  case fioMode fio of {FitSubLR -> True ; _ -> False}
 
diff --git a/src/UHC/Light/Compiler/Opts/Base.hs b/src/UHC/Light/Compiler/Opts/Base.hs
--- a/src/UHC/Light/Compiler/Opts/Base.hs
+++ b/src/UHC/Light/Compiler/Opts/Base.hs
@@ -27,13 +27,11 @@
 where
 import UHC.Light.Compiler.Base.Common
 import UHC.Util.Utils
-import Data.Typeable
 import Data.Maybe
 import qualified Data.Map as Map
 import UHC.Light.Compiler.Base.UnderDev
 import UHC.Util.Pretty
 import qualified Data.Set as Set
-import GHC.Generics (Generic)
 import Data.List
 import Data.Char
 import UHC.Light.Compiler.Base.HsName.Builtin
@@ -52,7 +50,7 @@
 
 
 
-{-# LINE 72 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 75 "src/ehc/Opts/Base.chs" #-}
 data ImmediateQuitOption
   = ImmediateQuitOption_Help                                -- print help
   | ImmediateQuitOption_Version                             -- print version info
@@ -67,13 +65,13 @@
   -- -| ImmediateQuitOption_Meta_ExportEnv (Maybe String)       -- export (write) environmental info of installation
   -- -| ImmediateQuitOption_Meta_DirEnv                         -- print dir of environmental info of installation
 
-{-# LINE 96 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 99 "src/ehc/Opts/Base.chs" #-}
 data InOrOutputFor
   = OutputFor_Module
   | OutputFor_Pkg
   | InputFrom_Loc FileLoc
 
-{-# LINE 109 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 112 "src/ehc/Opts/Base.chs" #-}
 -- | Build pkg options, all (except obligatory name) wrapped in Maybe/[] because of possible absence.
 -- 20140829 AD: will be used to construct config file
 data PkgOption
@@ -86,7 +84,7 @@
 emptyPkgOption :: PkgOption
 emptyPkgOption = PkgOption emptyPkgName [] []
 
-{-# LINE 127 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 130 "src/ehc/Opts/Base.chs" #-}
 -- | EH specific options
 data EhOpt
   = EhOpt_NONE				-- no-op option
@@ -94,13 +92,14 @@
   | EhOpt_DumpAST 			-- dump textual EH output, as annotated AST
   deriving (Eq, Ord, Enum, Bounded)
 
-{-# LINE 136 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 139 "src/ehc/Opts/Base.chs" #-}
 -- | Core specific options
 data CoreOpt
   = CoreOpt_NONE				-- no-op option
 --  | CoreOpt_PPParseable			-- pretty print parseable, negation means just make it readable
   | CoreOpt_Readable			-- when there is a choice, make it more readable
   | CoreOpt_Dump
+  | CoreOpt_DumpAST
   | CoreOpt_DumpBinary
   | CoreOpt_DumpAlsoNonParseable-- dump also the parts which are not parseable
   | CoreOpt_Run					-- run after compilation
@@ -113,7 +112,7 @@
   | CoreOpt_RunPPVerbose		-- when dump CoreRun print more verbose info in comment
   deriving (Eq,Enum,Bounded)
 
-{-# LINE 166 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 170 "src/ehc/Opts/Base.chs" #-}
 -- | Core specific options
 data CoreRunOpt
   = CoreRunOpt_PrintResult				-- Print run result
@@ -121,7 +120,7 @@
 
 instance DataAndConName CoreRunOpt
 
-{-# LINE 208 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 203 "src/ehc/Opts/Base.chs" #-}
 -- | Pgm (internal program used) options, in particular alternate internal shell commands
 data PgmExec
   = PgmExec_CPP				-- alternate CPP
@@ -129,7 +128,7 @@
   | PgmExec_Linker			-- alternate linker
   deriving (Eq,Ord,Enum,Bounded)
 
-{-# LINE 217 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 212 "src/ehc/Opts/Base.chs" #-}
 -- | Wrapper around options, adding semantics for adapting cmd specific behavior
 data ExecOpt
   = ExecOpt_Plain String						-- ^ plain option
@@ -138,7 +137,7 @@
 execOptsPlain :: [ExecOpt] -> [String]
 execOptsPlain o = [ s | ExecOpt_Plain s <- o ]
 
-{-# LINE 233 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 228 "src/ehc/Opts/Base.chs" #-}
 -- | The options to use.
 data EHCOpts
   = EHCOpts
@@ -228,7 +227,7 @@
       }
       deriving Typeable
 
-{-# LINE 415 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 401 "src/ehc/Opts/Base.chs" #-}
 emptyEHCOpts
   = EHCOpts
       {  ehcOptTrace            =   \_ x -> x
@@ -309,7 +308,7 @@
       ,  ehcOptExecOptsMp		=   Map.empty
       }
 
-{-# LINE 602 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 579 "src/ehc/Opts/Base.chs" #-}
 -- | PP EH AST, with annotations
 ehcOptEhAstPP :: EHCOpts -> Bool
 ehcOptEhAstPP opts =
@@ -319,19 +318,19 @@
 ehcOptEhAstPPExtensive :: EHCOpts -> Bool
 ehcOptEhAstPPExtensive opts = (ehcOptEhAstPP opts && ehcOptDebug opts) || EhOpt_DumpAST `elem` ehcOptEhOpts opts
 
-{-# LINE 617 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 594 "src/ehc/Opts/Base.chs" #-}
 -- | Do some plain PP on EH
 ehcOptEhPP :: EHCOpts -> Bool
 ehcOptEhPP opts = ehcOptShowEH opts || ehcOptEmitEH opts || EhOpt_Dump `elem` ehcOptEhOpts opts
 
-{-# LINE 623 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 600 "src/ehc/Opts/Base.chs" #-}
 ehcOptTarget :: EHCOpts -> Target
 ehcOptTarget = maybeOk (\s -> panic ("ehcOptTarget: " ++ s)) id  . ehcOptMbTarget
 
 ehcOptTargetFlavor :: EHCOpts -> TargetFlavor
 ehcOptTargetFlavor = maybeOk (\s -> panic ("ehcOptTargetFlavor: " ++ s)) id . ehcOptMbTargetFlavor
 
-{-# LINE 631 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 608 "src/ehc/Opts/Base.chs" #-}
 -- | Generate system F (20120421 AD: very much under construction)
 ehcOptCoreSysF :: EHCOpts -> Bool
 ehcOptCoreSysF _    = False
@@ -348,7 +347,7 @@
 ehcOptCoreSysFCheckOnlyVal :: EHCOpts -> Bool
 ehcOptCoreSysFCheckOnlyVal opts = ehcOptCoreSysFCheck opts
 
-{-# LINE 665 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 642 "src/ehc/Opts/Base.chs" #-}
 -- generate bytecode
 ehcOptEmitExecBytecode :: EHCOpts -> Bool
 ehcOptEmitExecBytecode _ = False
@@ -356,12 +355,12 @@
 ehcOptEmitBytecode :: EHCOpts -> Bool
 ehcOptEmitBytecode _ = False
 
-{-# LINE 722 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 699 "src/ehc/Opts/Base.chs" #-}
 -- | Check Cmm
 ehcOptCmmCheck :: EHCOpts -> Bool
 ehcOptCmmCheck _    = False
 
-{-# LINE 732 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 709 "src/ehc/Opts/Base.chs" #-}
 -- | Via Core -> Grin -> CMM -> JS ?
 ehcOptIsViaGrinCmmJavaScript :: EHCOpts -> Bool
 ehcOptIsViaGrinCmmJavaScript opts
@@ -373,36 +372,36 @@
   = targetIsViaCoreJavaScript t
   where t = ehcOptTarget opts
 
-{-# LINE 753 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 730 "src/ehc/Opts/Base.chs" #-}
 ehcOptIsViaCmm :: EHCOpts -> Bool
 ehcOptIsViaCmm opts = ehcOptIsViaGrinCmmJavaScript opts
 {-# INLINE ehcOptIsViaCmm #-}
 
-{-# LINE 759 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 736 "src/ehc/Opts/Base.chs" #-}
 ehcOptIsViaGrin :: EHCOpts -> Bool
 ehcOptIsViaGrin opts = ehcOptIsViaGrinCmmJavaScript opts || targetIsGrinBytecode t || targetDoesHPTAnalysis t
   where t = ehcOptTarget opts
 
-{-# LINE 769 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 746 "src/ehc/Opts/Base.chs" #-}
 ehcOptBuiltin :: EHCOpts -> (EHBuiltinNames -> x) -> x
 ehcOptBuiltin o f = f $ ehcOptBuiltinNames o
 
 ehcOptBuiltin2 :: EHCOpts -> (EHBuiltinNames -> Int -> HsName) -> Int -> HsName
 ehcOptBuiltin2 o f i = f (ehcOptBuiltinNames o) i
 
-{-# LINE 781 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 758 "src/ehc/Opts/Base.chs" #-}
 -- | Either fromJust with a possible panic, or with a default value (when debugging)
 ehcOptFromJust :: EHCOpts -> String -> a -> Maybe a -> a
 ehcOptFromJust opts panicMsg n m
   | ehcOptDebug opts = maybe n id m
   | otherwise        = panicJust panicMsg m
 
-{-# LINE 793 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 770 "src/ehc/Opts/Base.chs" #-}
 -- | Do linking into executable?
 ehcOptDoExecLinking :: EHCOpts -> Bool
 ehcOptDoExecLinking opts = ehcOptLinkingStyle opts == LinkingStyle_Exec
 
-{-# LINE 803 "src/ehc/Opts/Base.chs" #-}
+{-# LINE 780 "src/ehc/Opts/Base.chs" #-}
 -- | Is something under development turned on?
 ehcOptIsUnderDev :: UnderDev -> EHCOpts -> Bool
 ehcOptIsUnderDev ud opts = ud `Set.member` ehcOptUnderDev opts
diff --git a/src/UHC/Light/Compiler/Opts/CommandLine.hs b/src/UHC/Light/Compiler/Opts/CommandLine.hs
--- a/src/UHC/Light/Compiler/Opts/CommandLine.hs
+++ b/src/UHC/Light/Compiler/Opts/CommandLine.hs
@@ -7,7 +7,6 @@
 where
 import Data.List
 import Data.Typeable (Typeable)
-import Data.Generics (Data)
 import UHC.Util.Binary
 import UHC.Util.Serialize
 import Control.Monad
diff --git a/src/UHC/Light/Compiler/Pred/EvidenceToCore.hs b/src/UHC/Light/Compiler/Pred/EvidenceToCore.hs
--- a/src/UHC/Light/Compiler/Pred/EvidenceToCore.hs
+++ b/src/UHC/Light/Compiler/Pred/EvidenceToCore.hs
@@ -159,10 +159,9 @@
         mknm = acoreVar
         ann (RedHow_Assumption   vun sc) _     = ( mknm $ vunmNm vun, sc )
         ann (RedHow_ByInstance   n _   sc) ctxt= ( acoreApp (mknm n) (map (\c -> (tcrCExpr c)) ctxt), maximumBy pscpCmpByLen $ sc : map tcrScope ctxt )
-        ann (RedHow_BySuperClass n o t ) [sub] = let res = acoreSatSelsCaseMetaTy
+        ann (RedHow_BySuperClass n o t ) [sub] = let res = acoreSatSelsCaseTy
                                                              (emptyRCEEnv $ feEHCOpts $ fiEnv env)
                                                              (Just (hsnUniqifyEval n,acoreTyErr "evidMpToCore2.ann.RedHow_BySuperClass"))
-                                                             acoreMetavalDfltDict
                                                              (tcrCExpr sub)
                                                              t
                                                              [(n,acoreTyErr $ "evidMpToCore2.ann.RedHow_BySuperClass.sub: " ++ show n,{-n,-}o)]
@@ -192,7 +191,7 @@
         -- | ehc options
         opts = feEHCOpts $ fiEnv env
 
-{-# LINE 244 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 243 "src/ehc/Pred/EvidenceToCore.chs" #-}
 -- | Translate evidence to actual core, taking into account the need to share (i.e. do CSE, by state accumulating maps).
 --   Cleanup dd 20120209, rewrite to State version, plus abstraction over Core variant
 {-
@@ -307,10 +306,9 @@
         mknm = acoreVar
         ann (RedHow_Assumption   vun sc) _     = ( mknm $ vunmNm vun, sc )
         ann (RedHow_ByInstance   n _   sc) ctxt= ( acoreApp (mknm n) (map (\c -> (tcrCExpr c)) ctxt), maximumBy pscpCmpByLen $ sc : map tcrScope ctxt )
-        ann (RedHow_BySuperClass n o t ) [sub] = let res = acoreSatSelsCaseMetaTy
+        ann (RedHow_BySuperClass n o t ) [sub] = let res = acoreSatSelsCaseTy
                                                              (emptyRCEEnv $ feEHCOpts $ fiEnv env)
                                                              (Just (hsnUniqifyEval n,Ty_Any))
-                                                             acoreMetavalDfltDict
                                                              (tcrCExpr sub)
                                                              t
                                                              [(n,{-n,-}o)]
@@ -338,7 +336,7 @@
         splitOverlaps es                               = let (es',as) = unzip $ map splitOverlap es in (es',concat as)
 -}
 
-{-# LINE 406 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 404 "src/ehc/Pred/EvidenceToCore.chs" #-}
 -- | State maintained during evid -> core
 data ToCoreState' p info e t
   = ToCoreState
@@ -365,7 +363,7 @@
 instance (PP e, PP t) => PP (ToCoreRes e t) where
   pp r = "TCR" >#< tcrCExpr r >#< "::" >#< tcrTy r
 
-{-# LINE 434 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 432 "src/ehc/Pred/EvidenceToCore.chs" #-}
 -- | Sub evidence encodes the evidence needed to construct other evidence, as in Eq Int required for Eq [Int].
 --   The subevidence is identified/introduced by a UID and defined in scope.
 --   Subevidence can be an assumption (encoded below) or an already known instance (dealt with otherwise, but must be here too. 20090416)
@@ -379,7 +377,7 @@
 instance PP SubEvid where
   pp (SubEvid_Assume i s) = "SubEvd" >#< i >#< s
 
-{-# LINE 451 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 449 "src/ehc/Pred/EvidenceToCore.chs" #-}
 -- | Translate evidence to actual core, taking into account the need to share (i.e. do CSE)
 evidMpToCore :: FIIn' gm -> InfoToEvidenceMap -> (EvidKeyToCExprMap,[OverlapEvid])
 evidMpToCore = evidMpToCore2
@@ -443,10 +441,9 @@
                                         _      -> c'
         ann (RedHow_Assumption   vun sc) _     = ( mknm $ vunmNm vun, sc )
         ann (RedHow_ByInstance   n _   sc) ctxt= ( acoreApp (mknm n) (map (\c -> (tcrCExpr c)) ctxt), maximumBy pscpCmpByLen $ sc : map tcrScope ctxt )
-        ann (RedHow_BySuperClass n o t ) [sub] = let res = acoreSatSelsCaseMetaTy
+        ann (RedHow_BySuperClass n o t ) [sub] = let res = acoreSatSelsCaseTy
                                                              (emptyRCEEnv $ feEHCOpts $ fiEnv env)
                                                              (Just (hsnUniqifyEval n,Ty_Any))
-                                                             CMetaVal_Dict
                                                              (tcrCExpr sub)
                                                              t
                                                              [(n,{-n,-}o)]
@@ -472,7 +469,7 @@
         dbg m = id -- Debug.tr m empty
 -}
 
-{-# LINE 559 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 556 "src/ehc/Pred/EvidenceToCore.chs" #-}
 evidKeyCoreMpToBinds :: FIIn' gm -> EvidKeyToCExprMap -> (EvidKeyToCBindMap,PredScopeToCBindMap)
 evidKeyCoreMpToBinds env m
   = dbg "evidKeyCoreMpToBinds.res"
@@ -483,12 +480,12 @@
                -> let deepestScope = subevdId . maximumBy (\evd1 evd2 -> subevdScope evd1 `pscpCmpByLen` subevdScope evd2) . Set.toList
                   in  Map.singleton (deepestScope uses) [b]
             )
-      $ [ (acoreBind1MetaTy (mkHNm i) CMetaVal_Dict (SysF.ty2TyCforFFI opts $ tcrTy r) (tcrCExpr r),tcrUsed r)
+      $ [ (acoreBind1Ty (mkHNm i) (SysF.ty2TyCforFFI opts $ tcrTy r) (tcrCExpr r),tcrUsed r)
         | (i,r) <- dbg "evidKeyCoreMpToBinds.dependentOnAssumes"   $! Map.toList dependentOnAssumes
         ]
     , dbg "evidKeyCoreMpToBinds.res2"
       $! Map.fromListWith (++)
-      $ [ (tcrScope r,[acoreBind1MetaTy (mkHNm i) CMetaVal_Dict (SysF.ty2TyCforFFI opts $ tcrTy r) (tcrCExpr r)])
+      $ [ (tcrScope r,[acoreBind1Ty (mkHNm i) (SysF.ty2TyCforFFI opts $ tcrTy r) (tcrCExpr r)])
         | (i,r) <- dbg "evidKeyCoreMpToBinds.independentOfAssumes" $! Map.toList independentOfAssumes
         ]
     )
@@ -500,7 +497,7 @@
         dbg m = id -- Debug.tr m (pp m)
         opts = feEHCOpts $ fiEnv env
 
-{-# LINE 602 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 599 "src/ehc/Pred/EvidenceToCore.chs" #-}
 type EvidCBindL = [CBind]
 
 evidKeyCoreMpToBinds2 :: FIIn' gm -> EvidKeyToCExprMap -> (EvidCBindL,EvidKeyToCBindMap,PredScopeToCBindMap)
@@ -521,12 +518,12 @@
           = Map.partition (\r -> Set.null $ tcrUsed r) m
         (dependentOn1Assume, dependentOnNAssumes)
           = Map.partition (\r -> Set.size (tcrUsed r) == 1) m
-        -- mkd i e t         = acoreBind1MetaTy (mkHNm i) CMetaVal_Dict t e
-        mkd i r = acoreBind1MetaTy (mkHNm i) CMetaVal_Dict (SysF.ty2TyCforFFI opts $ tcrTy r) (tcrCExpr r)
+        -- mkd i e t         = acoreBind1Ty (mkHNm i) t e
+        mkd i r = acoreBind1Ty (mkHNm i) (SysF.ty2TyCforFFI opts $ tcrTy r) (tcrCExpr r)
         deepestScope sc u = maximumBy pscpCmpByLen $ sc : (map subevdScope $ Set.toList u)
         opts = feEHCOpts $ fiEnv env
 
-{-# LINE 630 "src/ehc/Pred/EvidenceToCore.chs" #-}
+{-# LINE 627 "src/ehc/Pred/EvidenceToCore.chs" #-}
 evidKeyBindMpToCSubst :: EvidKeyToCBindMap -> CSubst
 evidKeyBindMpToCSubst
   = acoreCSubstFromUidBindLL . Map.toList
diff --git a/src/UHC/Light/Compiler/Pred/ToCHR.hs b/src/UHC/Light/Compiler/Pred/ToCHR.hs
--- a/src/UHC/Light/Compiler/Pred/ToCHR.hs
+++ b/src/UHC/Light/Compiler/Pred/ToCHR.hs
@@ -135,7 +135,7 @@
 mkClassSimplChrs env rules (context, head, infos)
   = simps
   where simps        = chrStoreFromElems $ mapTrans (Set.fromList [head1]) [] head1 (zip infos (map (\p -> Red_Pred $ mkCHRPredOcc p sc1) context))
-        (superClassesWork, superClassesDone, _ :: SolveTrace FIIn Constraint Guard VarMp)
+        (superClassesWork, superClassesDone, _ :: SolveTrace FIIn Constraint Guard Prio VarMp)
                      = chrSolve' env rules (map (\p -> toSolverConstraint $ mkAssume $ mkCHRPredOcc p sc1) context)
         superClasses = superClassesWork ++ superClassesDone
         graph        = mkRedGraphFromReductions $ filterMb fromSolverConstraint superClasses
@@ -197,9 +197,9 @@
         body = map (\p -> mkCHRPredOcc p sc1) context
 
 {-# LINE 282 "src/ehc/Pred/ToCHR.chs" #-}
-data SimplifyResult'' p i g s
+data SimplifyResult'' p i g pr s
   = SimplifyResult
-      { simpresSolveState		:: SolveState FIIn (Constraint' p i) g s
+      { simpresSolveState		:: SolveState FIIn (Constraint' p i) g pr s
       , simpresRedGraph			:: RedGraph' p i
 
       -- for debugging only:
@@ -209,7 +209,7 @@
       , simpresRemPredL         :: [p]							-- remaining pred occurrences, which cannot be proven, as a list
       }
 
-type SimplifyResult' g s = SimplifyResult'' CHRPredOcc RedHowAnnotation g s
+type SimplifyResult' g s = SimplifyResult'' CHRPredOcc RedHowAnnotation g Prio s
 
 type SimplifyResult = SimplifyResult' Guard VarMp
 
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
@@ -204,27 +204,7 @@
         ,   scoDollarIdent      =   True
         }
 
-{-# LINE 324 "src/ehc/Scanner/Common.chs" #-}
-tycoreScanOpts :: ScanOpts
-tycoreScanOpts
-  =  defaultScanOpts
-        {   scoKeywordsTxt      =   (Set.fromList $
-                                        [ "let", "in", "case", "of", "rec", "foreign", "uniq"
-                                        , "Int", "Char", "String", "Tag", "Rec"
-                                        , "module", "default"
-                                        , "BINDPLAIN", "BINDFUNCTION0", "BINDFUNCTION1", "BINDAPPLY0"
-                                        , "VAL"
-                                        , "DICT", "DICTCLASS", "DICTINSTANCE", "DICTOVERLOADED"
-                                        , "Integer"
-                                        , "foreignexport"
-                                        ])
-        ,   scoKeywordsOps      =   Set.fromList [ "->", "=", ":", "::", "|", "\\" ]
-        ,   scoSpecChars        =   Set.fromList "();{},[]"
-        ,   scoOpChars          =   Set.fromList "|\\:=-<>"
-        ,   scoDollarIdent      =   True
-        }
-
-{-# LINE 355 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 322 "src/ehc/Scanner/Common.chs" #-}
 grinScanOpts :: ScanOpts
 grinScanOpts
   =  defaultScanOpts
@@ -249,14 +229,14 @@
         ,   scoDollarIdent      =   True
         }
 
-{-# LINE 387 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 354 "src/ehc/Scanner/Common.chs" #-}
 tyScanOpts :: ScanOpts
 tyScanOpts
   =  defaultScanOpts
         {   scoKeywordsTxt      =   Set.fromList [ "uid" ]
         }
 
-{-# LINE 395 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 362 "src/ehc/Scanner/Common.chs" #-}
 hsnScanOpts :: ScanOpts
 hsnScanOpts
   =  defaultScanOpts
@@ -291,7 +271,7 @@
         }
   where hsScanOpts' = hsScanOpts emptyEHCOpts
 
-{-# LINE 444 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 411 "src/ehc/Scanner/Common.chs" #-}
 foreignEntScanOpts :: FFIWay -> ScanOpts
 foreignEntScanOpts way
   =  o {   scoKeywordsTxt      =   Set.fromList [ "dynamic", "wrapper", "h", "static", "new", "js" ]
@@ -307,7 +287,7 @@
               _                 -> ("" , "" )
 
 
-{-# LINE 483 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 450 "src/ehc/Scanner/Common.chs" #-}
 splitTokensOnModuleTrigger :: ScanOpts -> [Token] -> Maybe ([Token],[Token])
 splitTokensOnModuleTrigger scanOpts ts
   = case break ismod ts of
@@ -316,7 +296,7 @@
   where ismod (Reserved s _) | s == scoOffsideModule scanOpts = True
         ismod _                                               = False
 
-{-# LINE 493 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 460 "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
@@ -332,7 +312,7 @@
           triggers  =  [ (Trigger_IndentGT,reserved x noPos) | x <- scoOffsideTrigs   scanOpts ]
                     ++ [ (Trigger_IndentGE,reserved x noPos) | x <- scoOffsideTrigsGE scanOpts ]
 
-{-# LINE 518 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 485 "src/ehc/Scanner/Common.chs" #-}
 floatDenot2NomDenom :: String -> (Integer,Integer)
 floatDenot2NomDenom denot
   = (numerator f,denominator f)
@@ -351,7 +331,7 @@
 intDenot2Integer :: Int -> String -> Integer
 intDenot2Integer b s = getBaseNumber (toInteger b) s
 
-{-# LINE 543 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 510 "src/ehc/Scanner/Common.chs" #-}
 pKeyTk, pKeyTk'         ::  IsParser p Token
                               => String -> p Token
 pKeyTk  key             =   pCostReserved' 9 key
@@ -360,18 +340,18 @@
 pKeyw                   ::  (IsParser p Token,Show k) => k -> p Token
 pKeyw k                 =   pKeyTk (show k)
 
-{-# LINE 553 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 520 "src/ehc/Scanner/Common.chs" #-}
 pKeywHsNname            ::  (IsParser p Token,Show k) => k -> p HsName
 pKeywHsNname k          =   tokMkQName <$> pKeyw k
 
 
-{-# LINE 559 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 526 "src/ehc/Scanner/Common.chs" #-}
 pStringTk, pCharTk,
   pInteger8Tk, pInteger10Tk, pInteger16Tk, pFractionTk,
-{-# LINE 567 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 534 "src/ehc/Scanner/Common.chs" #-}
   pQVaridTk, pQConidTk,
   pQVarsymTk, pQConsymTk,
-{-# LINE 571 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 538 "src/ehc/Scanner/Common.chs" #-}
   pVaridTk , pConidTk ,
   pVaridTk', pConidTk',
   pTextnmTk, pTextlnTk, pIntegerTk, pVarsymTk, pConsymTk
@@ -392,13 +372,13 @@
 pTextnmTk     =   pHsCostValToken' 7 TkTextnm    "<name>"
 pTextlnTk     =   pHsCostValToken' 7 TkTextln    "<line>"
 pIntegerTk    =   pInteger10Tk
-{-# LINE 599 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 566 "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 610 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 577 "src/ehc/Scanner/Common.chs" #-}
 pCONID, pCONID', pCONSYM, pVARID, pVARID', pVARSYM :: IsParser p Token => p Token
 
 pCONID           = pConidTk
@@ -408,7 +388,7 @@
 pVARID'          = pVaridTk'
 pVARSYM          = pVarsymTk
 
-{-# LINE 630 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 597 "src/ehc/Scanner/Common.chs" #-}
 pQCONID, pQCONSYM, pQVARID, pQVARSYM :: IsParser p Token => p Token
 
 pQCONID          = pQConidTk
@@ -416,7 +396,7 @@
 pQVARID          = pQVaridTk
 pQVARSYM         = pQVarsymTk
 
-{-# LINE 643 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 610 "src/ehc/Scanner/Common.chs" #-}
 tokGetVal :: Token -> String
 tokGetVal x
   = tokenVal x
@@ -427,14 +407,14 @@
 pHNm :: (IsParser p Token) => p Token -> p HsName
 pHNm p = (hsnFromString . tokGetVal) <$> p
 
-{-# LINE 665 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 632 "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 677 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 644 "src/ehc/Scanner/Common.chs" #-}
 pMODULE        ,
     pWHERE     ,
     pSEMI      ,
@@ -468,7 +448,7 @@
     pIN
   :: IsParser p Token => p Token
 
-{-# LINE 712 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 679 "src/ehc/Scanner/Common.chs" #-}
 pMODULE          = pKeyTk "module"
 pWHERE           = pKeyTk "where"
 pSEMI            = pKeyTk ";"
@@ -506,29 +486,29 @@
 tokOpStrsEH1   = [ "=", "\\", show hsnArrow, "::", "@" ]
 tokOpStrsHS1   = [ "-", "*", "!", "_", "%", "." ]
 
-{-# LINE 751 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 718 "src/ehc/Scanner/Common.chs" #-}
 pTDOT    	,
     pQDOT
   :: IsParser p Token => p Token
 
-{-# LINE 757 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 724 "src/ehc/Scanner/Common.chs" #-}
 pTDOT            = pKeyTk "..."
 pQDOT            = pKeyTk "...."
 
 tokOpStrsEH2   = [ "...", "...." ]
 tokOpStrsHS2   = [  ]
 
-{-# LINE 765 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 732 "src/ehc/Scanner/Common.chs" #-}
 tokOpStrsEH3   = [ "%" ]
 tokOpStrsHS3   = [  ]
 
-{-# LINE 770 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 737 "src/ehc/Scanner/Common.chs" #-}
 pFORALL       ,
     pEXISTS   ,
     pTILDE
   :: IsParser p Token => p Token
 
-{-# LINE 777 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 744 "src/ehc/Scanner/Common.chs" #-}
 pFORALL          = pKeyTk "forall"
 pEXISTS          = pKeyTk "exists"
 pTILDE           = pKeyTk (show hsnEqTilde)
@@ -538,7 +518,7 @@
 tokOpStrsEH4   = [ ".", show hsnEqTilde ]
 tokOpStrsHS4   = [  ]
 
-{-# LINE 788 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 755 "src/ehc/Scanner/Common.chs" #-}
 pLARROW        ,
     pVBAR      ,
     pDATA      ,
@@ -551,7 +531,7 @@
     pDOTDOT
   :: IsParser p Token => p Token
 
-{-# LINE 802 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 769 "src/ehc/Scanner/Common.chs" #-}
 pLARROW          = pKeyTk "<-"
 pVBAR            = pKeyTk "|"
 pDATA            = pKeyTk "data"
@@ -568,12 +548,12 @@
 tokOpStrsEH5   = [ "|" ]
 tokOpStrsHS5   = [ "<-", "..", ":" ]
 
-{-# LINE 820 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 787 "src/ehc/Scanner/Common.chs" #-}
 pFFORALL      ,
     pEEXISTS
   :: IsParser p Token => p Token
 
-{-# LINE 826 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 793 "src/ehc/Scanner/Common.chs" #-}
 pFFORALL         = pKeyTk "Forall"
 pEEXISTS         = pKeyTk "Exists"
 
@@ -583,7 +563,7 @@
 tokOpStrsEH6   = [ "*" ]
 tokOpStrsHS6   = [  ]
 
-{-# LINE 837 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 804 "src/ehc/Scanner/Common.chs" #-}
 pOROWREC        ,
     pCROWREC    ,
     pOROWROW    ,
@@ -594,7 +574,7 @@
     pHASH
   :: IsParser p Token => p Token
 
-{-# LINE 849 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 816 "src/ehc/Scanner/Common.chs" #-}
 pOROWREC         = pKeyTk (show hsnORec)
 pCROWREC         = pKeyTk (show hsnCRec)
 pOROWROW         = pKeyTk (show hsnORow)
@@ -604,11 +584,11 @@
 pCOLEQUAL        = pKeyTk ":="
 pHASH            = pKeyTk "#"
 
-{-# LINE 860 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 827 "src/ehc/Scanner/Common.chs" #-}
 tokOpStrsEH7   = [ ":=", "#" ]
 tokOpStrsHS7   = [  ]
 
-{-# LINE 865 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 832 "src/ehc/Scanner/Common.chs" #-}
 pLABEL          ,
     pLETSTRICT  ,
     pSAFE       ,
@@ -618,7 +598,7 @@
     pEXPORT
   :: IsParser p Token => p Token
 
-{-# LINE 876 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 843 "src/ehc/Scanner/Common.chs" #-}
 pLABEL           = pKeyTk "label"
 pLETSTRICT       = pKeyTk "letstrict"
 pSAFE            = pKeyTk "safe"
@@ -632,13 +612,13 @@
   ++ map show allFFIWays
 tokKeywStrsHS8 = [ "default", "export", "label", "safe" ]
 
-{-# LINE 893 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 860 "src/ehc/Scanner/Common.chs" #-}
 pFFIWay :: IsParser p Token => p (FFIWay,Token)
 pFFIWay
   =   pAnyKey (\way -> (,) way <$> pKeyTk (show way)) allFFIWays
   <?> "pFFIWay"
 
-{-# LINE 903 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 870 "src/ehc/Scanner/Common.chs" #-}
 pDARROW         ,
     pLTCOLON    ,
     pOIMPL      ,
@@ -648,7 +628,7 @@
     pDO
   :: IsParser p Token => p Token
 
-{-# LINE 914 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 881 "src/ehc/Scanner/Common.chs" #-}
 pDARROW          = pKeyTk (show hsnPrArrow)
 pLTCOLON         = pKeyTk "<:"
 pOIMPL           = pKeyTk (show hsnOImpl)
@@ -663,31 +643,31 @@
                = [ show hsnPrArrow ] ++ if ehcOptIsUnderDev UnderDev_NamedInst opts then [] else [ "<:" ]
 tokOpStrsHS9   = [  ]
 
-{-# LINE 930 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 897 "src/ehc/Scanner/Common.chs" #-}
 tokOpStrsEH10  = [] -- [ show hsnDynVar ]
 tokOpStrsHS10  = [  ]
 
-{-# LINE 938 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 905 "src/ehc/Scanner/Common.chs" #-}
 pTYPE
   :: IsParser p Token => p Token
 
-{-# LINE 943 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 910 "src/ehc/Scanner/Common.chs" #-}
 pTYPE            = pKeyTk "type"
 
-{-# LINE 947 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 914 "src/ehc/Scanner/Common.chs" #-}
 tokKeywStrsEH11 = [ "type" ]
 tokKeywStrsHS11 = [  ]
 tokOpStrsEH11   = [  ]
 tokOpStrsHS11   = [  ]
 
-{-# LINE 954 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 921 "src/ehc/Scanner/Common.chs" #-}
 pQUALIFIED      ,
     pQUESTQUEST ,
     pAS         ,
     pHIDING
   :: IsParser p Token => p Token
 
-{-# LINE 962 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 929 "src/ehc/Scanner/Common.chs" #-}
 pQUALIFIED       = pKeyTk "qualified"
 pAS              = pKeyTk "as"
 pHIDING          = pKeyTk "hiding"
@@ -696,7 +676,7 @@
 tokKeywStrsEH12 = [  ]
 tokKeywStrsHS12 = [ "qualified", "as", "hiding" ]
 
-{-# LINE 972 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 939 "src/ehc/Scanner/Common.chs" #-}
 pDERIVING
   :: IsParser p Token => p Token
 
@@ -704,7 +684,7 @@
 
 tokKeywStrsEH91 = [ "deriving" ]
 
-{-# LINE 981 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 948 "src/ehc/Scanner/Common.chs" #-}
 pUNSAFE     ,
     pTHREADSAFE ,
     pDYNAMIC    ,
@@ -729,7 +709,7 @@
 tokKeywStrsEH90  = [  ]
 tokKeywStrsHS90  = [ "unsafe", "threadsafe", "dynamic" ]
 
-{-# LINE 1007 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 974 "src/ehc/Scanner/Common.chs" #-}
 pFUSE         ,
     -- pWITH     ,
     pCONVERT
@@ -742,7 +722,7 @@
 tokKeywStrsEH93  = [  ]
 tokKeywStrsHS93  = [ "fuse", "convert" ]
 
-{-# LINE 1021 "src/ehc/Scanner/Common.chs" #-}
+{-# LINE 988 "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 = "9f39e6a4d4199ffa68b1f4aeff600ee1"
-timestamp = "20151027 +0100 143712"
+sig = "86ccf3db3cbbee52faa87090ccfe50bc"
+timestamp = "20160219 +0100 201122"
diff --git a/src/UHC/Light/Compiler/Ty.hs b/src/UHC/Light/Compiler/Ty.hs
--- a/src/UHC/Light/Compiler/Ty.hs
+++ b/src/UHC/Light/Compiler/Ty.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty.ag)
 module UHC.Light.Compiler.Ty(TyAGItf (..), Ty (..), TyAnn (..), TyL, tyInt, tyChar
 , tyLHdAndTl, tyProdArgs
 , tyUnAnn
@@ -134,7 +134,7 @@
 import qualified Data.Set as Set
 import qualified Data.Map as Map
 import Data.List
-import qualified UHC.Util.RLList as RLL
+import qualified UHC.Util.RLList.LexScope as LexScope
 import UHC.Util.Pretty
 import UHC.Util.Utils
 import Control.Monad
@@ -376,12 +376,12 @@
 
 
 data PredScope
-  = PredScope_Lev !(RLL.RLList Int)
+  = PredScope_Lev !LexScope.LexScope
   | PredScope_Var !TyVarId
   deriving (Eq,Ord)
 
 initPredScope :: PredScope
-initPredScope = PredScope_Lev RLL.empty
+initPredScope = PredScope_Lev LexScope.empty
 
 
 
@@ -402,10 +402,10 @@
 
 
 pscpEnter :: Int -> PredScope -> (Int,PredScope)
-pscpEnter x (PredScope_Lev s) = (x+1,PredScope_Lev (s `RLL.concat` RLL.singleton x))
+pscpEnter x (PredScope_Lev s) = (x+1,PredScope_Lev (x `LexScope.enter` s))
 
 pscpLeave :: PredScope -> PredScope
-pscpLeave (PredScope_Lev s) = PredScope_Lev $ fst $ fromJust $ RLL.initLast s
+pscpLeave (PredScope_Lev s) = PredScope_Lev $ fromJust $ LexScope.leave s
 
 
 
@@ -436,27 +436,18 @@
 
 
 pscpIsVisibleIn :: PredScope -> PredScope -> Bool
-pscpIsVisibleIn (PredScope_Lev sOuter) (PredScope_Lev sInner) = sOuter `RLL.isPrefixOf` sInner
+pscpIsVisibleIn (PredScope_Lev sOuter) (PredScope_Lev sInner) = sOuter `LexScope.isVisibleIn` sInner
 pscpIsVisibleIn _                      _                      = False
 
 pscpCommon :: PredScope -> PredScope -> Maybe PredScope
-pscpCommon (PredScope_Lev s1) (PredScope_Lev s2)
-  = Just $ PredScope_Lev $ commonPrefix s1 s2
-  where commonPrefix xxs     yys     | isJust ht1 && isJust ht2 && x == y     = RLL.singleton x `RLL.concat` commonPrefix xs ys
-                                     | otherwise                              = RLL.empty
-                                     where ht1 = RLL.headTail xxs
-                                           ht2 = RLL.headTail yys
-                                           (x,xs) = fromJust ht1
-                                           (y,ys) = fromJust ht2
-        -- commonPrefix _       _                    = RLL.empty
-pscpCommon _                  _
-  = Nothing
+pscpCommon (PredScope_Lev s1) (PredScope_Lev s2) = Just $ PredScope_Lev $ LexScope.common s1 s2
+pscpCommon _                  _                  = Nothing
 
 
 
 pscpParents :: PredScope -> [PredScope]
-pscpParents (PredScope_Lev s) | not (RLL.null s) = map PredScope_Lev $ RLL.inits $ RLL.init s
-pscpParents _                                   = []
+pscpParents (PredScope_Lev s) = map PredScope_Lev $ LexScope.parents s
+pscpParents _                 = []
 
 
 
@@ -465,7 +456,7 @@
 pscpCmp _                 _                 = Nothing
 
 pscpCmpByLen :: PredScope -> PredScope -> Ordering
-pscpCmpByLen (PredScope_Lev s) (PredScope_Lev t) = (RLL.length s) `compare` (RLL.length t)
+pscpCmpByLen (PredScope_Lev s) (PredScope_Lev t) = s `LexScope.compareByLength` t
 
 
 
@@ -512,7 +503,7 @@
       { cpocxScope			:: !PredScope			-- default, only allowed value for occurring preds
       --											-- others for solving and CHR's only
       }
-  deriving (Show,Eq,Ord)
+  deriving (Show,Eq,Ord,Generic)
 
 
 
@@ -528,7 +519,7 @@
        , cpoCxt              :: !CHRPredOccCxt
        , cpoRange            :: !Range
        }
-  deriving (Show,Eq,Ord)
+  deriving (Show,Eq,Ord,Generic)
 
 type CHRPredOcc = CHRPredOcc' Pred
 
@@ -1468,7 +1459,7 @@
 data TyKiKey
   = TyKiKey_Name    !HsName
   | TyKiKey_TyVar   !TyVarId
-  deriving (Eq,Ord)
+  deriving (Eq,Ord,Generic)
 
 instance Show TyKiKey where
   show (TyKiKey_Name  n) = show n
@@ -1599,13 +1590,7 @@
 
 
 
-instance Serialize TyKiKey where
-  sput (TyKiKey_Name  a) = sputWord8 0 >> sput a
-  sput (TyKiKey_TyVar a) = sputWord8 1 >> sput a
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM TyKiKey_Name  sget
-              1 -> liftM TyKiKey_TyVar sget
+instance Serialize TyKiKey
 
 
 
@@ -1668,42 +1653,16 @@
 
 
 
-instance Serialize Ty where
-  sput (Ty_Con   a      ) = sputWord8 0  >> sput a
-  sput (Ty_App   a b    ) = sputWord8 1  >> sput a >> sput b
-  sput (Ty_Ann   a b    ) = sputWord8 2  >> sput a >> sput b
-  sput (Ty_Var   a b    ) = sputWord8 3  >> sput a >> sput b
-  sput (Ty_Any          ) = sputWord8 4
-  sput (Ty_TBind a b c d) = sputWord8 5  >> sput a >> sput b >> sput c >> sput d
-  sput (Ty_Ext   a b c  ) = sputWord8 6  >> sput a >> sput b >> sput c
-  sput (Ty_Pred  a      ) = sputWord8 7  >> sput a
-  sput (Ty_Lam   a b    ) = sputWord8 8  >> sput a >> sput b
-  sput (Ty_Impls a      ) = sputWord8 9  >> sput a
-  sput (Ty_Dbg   a      ) = sputWord8 10 >> sput a
-  sget = do tag <- sgetWord8
-            case tag of
-              0  -> liftM  Ty_Con   sget
-              1  -> liftM2 Ty_App   sget sget
-              2  -> liftM2 Ty_Ann   sget sget
-              3  -> liftM2 Ty_Var   sget sget
-              4  -> return Ty_Any
-              5  -> liftM4 Ty_TBind sget sget sget sget
-              6  -> liftM3 Ty_Ext   sget sget sget
-              7  -> liftM  Ty_Pred  sget
-              8  -> liftM2 Ty_Lam   sget sget
-              9  -> liftM  Ty_Impls sget
-              10 -> liftM  Ty_Dbg   sget
+instance Serialize Ty
+instance Serialize TyAnn
+instance Serialize Pred
+instance Serialize Label
+instance Serialize PredSeq
+instance Serialize Impls
+instance Serialize CHRPredOcc
 
-instance Serialize TyAnn where
-  sput (TyAnn_Empty       ) = sputWord8 0
-  sput (TyAnn_Mono        ) = sputWord8 1
-  sput (TyAnn_Strictness a) = sputWord8 2  >> sput a
-  sget = do tag <- sgetWord8
-            case tag of
-              0 -> return TyAnn_Empty
-              1 -> return TyAnn_Mono
-              2 -> liftM  TyAnn_Strictness sget
 
+
 instance Binary TyVarCateg where
   put = putEnum8
   get = getEnum8
@@ -1712,78 +1671,18 @@
   sput = sputPlain
   sget = sgetPlain
 
-instance Serialize Pred where
-  sput (Pred_Class  a  ) = sputWord8 0 >> sput a
-  sput (Pred_Pred   a  ) = sputWord8 1 >> sput a
-  sput (Pred_Lacks  a b) = sputWord8 2 >> sput a >> sput b
-  sput (Pred_Arrow  a b) = sputWord8 3 >> sput a >> sput b
-  sput (Pred_Eq     a b) = sputWord8 4 >> sput a >> sput b
-  sput (Pred_Var    a  ) = sputWord8 5 >> sput a
-  sput (Pred_Preds  a  ) = sputWord8 6 >> sput a
-  sget = do tag <- sgetWord8
-            case tag of
-              0 -> liftM  Pred_Class   sget
-              1 -> liftM  Pred_Pred    sget
-              2 -> liftM2 Pred_Lacks   sget sget
-              3 -> liftM2 Pred_Arrow   sget sget
-              4 -> liftM2 Pred_Eq      sget sget
-              5 -> liftM  Pred_Var     sget
-              6 -> liftM  Pred_Preds   sget
-
-instance Serialize Label where
-  sput (Label_Lab  a) = sputWord8 0 >> sput a
-  sput (Label_Var  a) = sputWord8 1 >> sput a
-  sget = do tag <- sgetWord8
-            case tag of
-              0 -> liftM  Label_Lab   sget
-              1 -> liftM  Label_Var   sget
-
-instance Serialize PredSeq where
-  sput (PredSeq_Nil          ) = sputWord8 0
-  sput (PredSeq_Cons  a b    ) = sputWord8 1  >> sput a >> sput b
-  sput (PredSeq_Var   a      ) = sputWord8 2  >> sput a
-  sget = do tag <- sgetWord8
-            case tag of
-              0  -> return PredSeq_Nil
-              1  -> liftM2 PredSeq_Cons  sget sget
-              2  -> liftM  PredSeq_Var   sget
-
-{-
-instance Binary PredSeq where
-  put = putList (PredSeq_Nil ==) (\(PredSeq_Cons a b) -> (a,b))
-  get = getList PredSeq_Nil PredSeq_Cons
--}
-
-instance Serialize CHRPredOcc where
-  -- Range info is stripped on the fly
-  sput (CHRPredOcc a b _) = sput a >> sput b
-  -- Range info is stripped on the fly
-  sget = liftM2 (\a b -> CHRPredOcc a b emptyRange) sget sget
-
-instance Serialize Impls where
-  sput (Impls_Nil             ) = sputWord8 0
-  sput (Impls_Tail a b        ) = sputWord8 1  >> sput a >> sput b
-  sput (Impls_Cons a b c d e f) = sputWord8 2  >> sput a >> sput b >> sput c >> sput d >> sput e >> sput f
-  sget = do tag <- sgetWord8
-            case tag of
-              0  -> return Impls_Nil
-              1  -> liftM2 Impls_Tail  sget sget
-              2  ->
-                    liftM6 Impls_Cons  sget sget sget sget sget sget
-
-
 -- Impls -------------------------------------------------------
 data Impls = Impls_Tail {iv_Impls_Tail :: !(ImplsVarId),proveOccs_Impls_Tail :: !(([ImplsProveOcc]))}
            | Impls_Cons {iv_Impls_Cons :: !(ImplsVarId),pr_Impls_Cons :: !(Pred),pv_Impls_Cons :: !(PredOccId),prange_Impls_Cons :: !(Range),proveOccs_Impls_Cons :: !(([ImplsProveOcc])),tl_Impls_Cons :: !(Impls)}
            | Impls_Nil {}
-           deriving ( Eq,Ord,Show,Typeable)
+           deriving ( Eq,Generic,Ord,Show,Typeable)
 -- Label -------------------------------------------------------
 data Label = Label_Lab {nm_Label_Lab :: !(HsName)}
            | Label_Var {lv_Label_Var :: !(LabelVarId)}
-           deriving ( Eq,Ord,Show,Typeable)
+           deriving ( Eq,Generic,Ord,Show,Typeable)
 -- LabelAGItf --------------------------------------------------
 data LabelAGItf = LabelAGItf_AGItf {lab_LabelAGItf_AGItf :: !(Label)}
-                deriving ( Eq,Ord,Show,Typeable)
+                deriving ( Eq,Generic,Ord,Show,Typeable)
 -- Pred --------------------------------------------------------
 data Pred = Pred_Class {ty_Pred_Class :: !(Ty)}
           | Pred_Pred {ty_Pred_Pred :: !(Ty)}
@@ -1792,12 +1691,12 @@
           | Pred_Eq {tyL_Pred_Eq :: !(Ty),tyR_Pred_Eq :: !(Ty)}
           | Pred_Var {pv_Pred_Var :: !(TyVarId)}
           | Pred_Preds {seq_Pred_Preds :: !(PredSeq)}
-          deriving ( Eq,Ord,Show,Typeable)
+          deriving ( Eq,Generic,Ord,Show,Typeable)
 -- PredSeq -----------------------------------------------------
 data PredSeq = PredSeq_Cons {hd_PredSeq_Cons :: !(Pred),tl_PredSeq_Cons :: !(PredSeq)}
              | PredSeq_Nil {}
              | PredSeq_Var {av_PredSeq_Var :: !(TyVarId)}
-             deriving ( Eq,Ord,Show,Typeable)
+             deriving ( Eq,Generic,Ord,Show,Typeable)
 -- Ty ----------------------------------------------------------
 data Ty = Ty_Con {nm_Ty_Con :: !(HsName)}
         | Ty_App {func_Ty_App :: !(Ty),arg_Ty_App :: !(Ty)}
@@ -1810,22 +1709,22 @@
         | Ty_Pred {pr_Ty_Pred :: !(Pred)}
         | Ty_Lam {tv_Ty_Lam :: !(TyVarId),ty_Ty_Lam :: !(Ty)}
         | Ty_Impls {impls_Ty_Impls :: !(Impls)}
-        deriving ( Eq,Ord,Show,Typeable)
+        deriving ( Eq,Generic,Ord,Show,Typeable)
 -- TyAGItf -----------------------------------------------------
 data TyAGItf = TyAGItf_AGItf {ty_TyAGItf_AGItf :: !(Ty)}
-             deriving ( Eq,Ord,Show,Typeable)
+             deriving ( Eq,Generic,Ord,Show,Typeable)
 -- TyAnn -------------------------------------------------------
 data TyAnn = TyAnn_Empty {}
            | TyAnn_Strictness {s_TyAnn_Strictness :: !(Strictness)}
            | TyAnn_Mono {}
-           deriving ( Eq,Ord,Show,Typeable)
+           deriving ( Eq,Generic,Ord,Show,Typeable)
 -- TyQu --------------------------------------------------------
 data TyQu = TyQu_Forall {mlev_TyQu_Forall :: !(MetaLev)}
           | TyQu_Exists {mlev_TyQu_Exists :: !(MetaLev)}
           | TyQu_Plain {mlev_TyQu_Plain :: !(MetaLev)}
-          deriving ( Eq,Ord,Show,Typeable)
+          deriving ( Eq,Generic,Ord,Show,Typeable)
 -- TyVarCateg --------------------------------------------------
 data TyVarCateg = TyVarCateg_Plain {}
                 | TyVarCateg_Fixed {}
                 | TyVarCateg_Meta {}
-                deriving ( Enum,Eq,Ord,Show,Typeable)
+                deriving ( Enum,Eq,Generic,Ord,Show,Typeable)
diff --git a/src/UHC/Light/Compiler/Ty/AppSpineGam.hs b/src/UHC/Light/Compiler/Ty/AppSpineGam.hs
--- a/src/UHC/Light/Compiler/Ty/AppSpineGam.hs
+++ b/src/UHC/Light/Compiler/Ty/AppSpineGam.hs
@@ -18,7 +18,7 @@
 import UHC.Light.Compiler.Core.Subst
 
 
-{-# LINE 48 "src/ehc/Ty/AppSpineGam.chs" #-}
+{-# LINE 46 "src/ehc/Ty/AppSpineGam.chs" #-}
 arrowAppSpineVertebraeInfoL :: FIEnv -> [AppSpineVertebraeInfo]
 arrowAppSpineVertebraeInfoL env
   = [ AppSpineVertebraeInfo polContravariant fioMkStrong
@@ -43,22 +43,22 @@
     $ AppSpineVertebraeInfo polCovariant id asFODflt
           (Just dfltFOUpdCoe)
 
-{-# LINE 98 "src/ehc/Ty/AppSpineGam.chs" #-}
+{-# LINE 86 "src/ehc/Ty/AppSpineGam.chs" #-}
 dfltFOUpdCoe :: AppSpineFOUpdCoe
 dfltFOUpdCoe _ x = last' (panic "Ty.AppSpineGam.dfltFOUpdCoe") x
 
 asFOUpdCoe :: AppSpineVertebraeInfo -> AppSpineFOUpdCoe
 asFOUpdCoe = maybe dfltFOUpdCoe id . asMbFOUpdCoe
 
-{-# LINE 106 "src/ehc/Ty/AppSpineGam.chs" #-}
+{-# LINE 94 "src/ehc/Ty/AppSpineGam.chs" #-}
 asFODflt :: FIOut -> FIOut -> FIOut
 asFODflt _ afo = afo
 
-{-# LINE 111 "src/ehc/Ty/AppSpineGam.chs" #-}
+{-# LINE 99 "src/ehc/Ty/AppSpineGam.chs" #-}
 asFOArrow :: FIOut -> FIOut -> FIOut
 asFOArrow _ afo = afo {foLInstToL = InstTo_Plain : foLInstToL afo, foRInstToL = InstTo_Plain : foRInstToL afo}
 
-{-# LINE 120 "src/ehc/Ty/AppSpineGam.chs" #-}
+{-# LINE 108 "src/ehc/Ty/AppSpineGam.chs" #-}
 asGamLookup :: HsName -> AppSpineGam -> Maybe AppSpineInfo
 asGamLookup nm g
   = case gamLookup nm g of
@@ -69,7 +69,7 @@
       _ -> Nothing
 
 
-{-# LINE 137 "src/ehc/Ty/AppSpineGam.chs" #-}
+{-# LINE 125 "src/ehc/Ty/AppSpineGam.chs" #-}
 mkAppSpineGam ::  FIEnv -> AppSpineGam
 mkAppSpineGam env
   = assocLToGam
diff --git a/src/UHC/Light/Compiler/Ty/FIEnv.hs b/src/UHC/Light/Compiler/Ty/FIEnv.hs
--- a/src/UHC/Light/Compiler/Ty/FIEnv.hs
+++ b/src/UHC/Light/Compiler/Ty/FIEnv.hs
@@ -24,7 +24,7 @@
 
 
 
-{-# LINE 60 "src/ehc/Ty/FIEnv.chs" #-}
+{-# LINE 58 "src/ehc/Ty/FIEnv.chs" #-}
 data FIEnv
   =   FIEnv
         {   feAppSpineGam   :: !AppSpineGam			-- ty app spine info
@@ -37,7 +37,7 @@
         ,   feRange         :: !Range				-- position of source code from where subsumption is invoked
         }
 
-{-# LINE 89 "src/ehc/Ty/FIEnv.chs" #-}
+{-# LINE 84 "src/ehc/Ty/FIEnv.chs" #-}
 emptyFE
   =   FIEnv
         {   feAppSpineGam   =   emptyGam
@@ -50,11 +50,11 @@
         ,   feRange         =   emptyRange
         }
 
-{-# LINE 118 "src/ehc/Ty/FIEnv.chs" #-}
+{-# LINE 110 "src/ehc/Ty/FIEnv.chs" #-}
 instance Show FIEnv where
   show _ = "FIEnv"
 
-{-# LINE 123 "src/ehc/Ty/FIEnv.chs" #-}
+{-# LINE 115 "src/ehc/Ty/FIEnv.chs" #-}
 instance PP FIEnv where
   pp e = "FIEnv"
          >#< (empty
diff --git a/src/UHC/Light/Compiler/Ty/FIEnv2.hs b/src/UHC/Light/Compiler/Ty/FIEnv2.hs
--- a/src/UHC/Light/Compiler/Ty/FIEnv2.hs
+++ b/src/UHC/Light/Compiler/Ty/FIEnv2.hs
@@ -6,7 +6,7 @@
 import UHC.Light.Compiler.AbstractCore
 
 
-{-# LINE 25 "src/ehc/Ty/FIEnv2.chs" #-}
+{-# LINE 23 "src/ehc/Ty/FIEnv2.chs" #-}
 defaultFIEnv
   =   emptyFE
         { feAppSpineGam = mkAppSpineGam defaultFIEnv
diff --git a/src/UHC/Light/Compiler/Ty/FitsIn.hs b/src/UHC/Light/Compiler/Ty/FitsIn.hs
--- a/src/UHC/Light/Compiler/Ty/FitsIn.hs
+++ b/src/UHC/Light/Compiler/Ty/FitsIn.hs
@@ -55,22 +55,22 @@
 
 
 
-{-# LINE 89 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 86 "src/ehc/Ty/FitsIn.chs" #-}
 fiAppVarMp :: VarUpdatable Ty gm => FIIn' gm -> Ty -> Ty
 fiAppVarMp fi x = fiVarMpLoc fi `varUpd` (fiVarMp fi `varUpd` x)
 
-{-# LINE 98 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 95 "src/ehc/Ty/FitsIn.chs" #-}
 instance Show (FIIn' gm) where
   show _ = "FIIn"
 
 instance PP (FIIn' gm) where
   pp fi = "FIIn:" >#< pp (fiEnv fi)
 
-{-# LINE 106 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 103 "src/ehc/Ty/FitsIn.chs" #-}
 fiUpdOpts :: (FIOpts -> FIOpts) -> FIIn' gm -> FIIn' gm
 fiUpdOpts upd fi = fi {fiFIOpts = upd (fiFIOpts fi)}
 
-{-# LINE 111 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 108 "src/ehc/Ty/FitsIn.chs" #-}
 fiInhibitVarExpandL :: TyVarId -> FIIn' gm -> FIIn' gm
 fiInhibitVarExpandL v fi = fi {fiExpLTvS = v `Set.insert` fiExpLTvS fi}
 
@@ -83,11 +83,11 @@
 fiVarIsExpandedR :: TyVarId -> FIIn' gm -> Bool
 fiVarIsExpandedR v fi = v `Set.member` fiExpRTvS fi
 
-{-# LINE 125 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 122 "src/ehc/Ty/FitsIn.chs" #-}
 fiSwapCoCo :: FIIn' gm -> FIIn' gm
 fiSwapCoCo fi = fi {fiExpLTvS = fiExpRTvS fi, fiExpRTvS = fiExpLTvS fi}
 
-{-# LINE 140 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 137 "src/ehc/Ty/FitsIn.chs" #-}
 fiAppSpineLookup
   :: forall gm .
      ( VarLookupCmb VarMp gm
@@ -110,7 +110,7 @@
                 (_,u1,u2) = mkNewLevUID2 uidStart
                 fo = fitsIn weakFIOpts emptyFE u1 (emptyVarMp :: VarMp) pol (map mkPolVar (mkNewUIDL (length polargs) u2) `appArr` polCovariant)
 
-{-# LINE 290 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 287 "src/ehc/Ty/FitsIn.chs" #-}
 manyFO :: [FIOut] -> FIOut
 manyFO = foldr1 (\fo1 fo2 -> if foHasErrs fo1 then fo1 else fo2)
 
@@ -138,7 +138,7 @@
         ) :: FIIn' gm
        )
 
-{-# LINE 321 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 318 "src/ehc/Ty/FitsIn.chs" #-}
 fitsInFI
   :: forall gm .
      {- ( VarUpdatable Ty gm
@@ -185,16 +185,16 @@
             -- binding
             occurBind fi isLBind v t=  bind fi isLBind v t
 
-{-# LINE 419 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 412 "src/ehc/Ty/FitsIn.chs" #-}
             -- 20080309, AD: naming of function is not right, type info neither, error yes. Should indicate a double expansion of tyvar, indicating infinite type.
             errInfinite fi v t      =  err fi [rngLift range Err_UnifyOccurs (fiAppVarMp fi ty1) (fiAppVarMp fi ty2) (fioMode (fiFIOpts fi)) v t (fioMode (fiFIOpts fi))]
 
-{-# LINE 424 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 417 "src/ehc/Ty/FitsIn.chs" #-}
             lookupImplsVarCyc fi v  =  fiLookupVar' varmpImplsLookupCyc varmpImplsLookupCyc v (fiVarMpLoc fi) (fiVarMp fi)
-{-# LINE 427 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 420 "src/ehc/Ty/FitsIn.chs" #-}
             lookupLabelCyc    fi v  =  fiLookupVar' varmpLabelLookupLabelCyc varmpLabelLookupLabelCyc v (fiVarMpLoc fi) (fiVarMp fi)
 
-{-# LINE 431 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 424 "src/ehc/Ty/FitsIn.chs" #-}
             bind fi isLBind tv t    =  dtfo "bind" fi tv' t [] (tv `varmpTyUnit` t)
                                        $ res' (fiBindTyVar tv t fi2) tv' t
                                     where tv' = mkTyVar tv
@@ -204,13 +204,13 @@
                                                        fiInhibitBind v fi
                                                   _ -> fi
 
-{-# LINE 450 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 443 "src/ehc/Ty/FitsIn.chs" #-}
             allowImpredTVBindL fi t _
                 = fioBindLFirst (fiFIOpts fi) && fiAllowTyVarBind fi t
             allowImpredTVBindR fi t _
                 = fioBindRFirst (fiFIOpts fi) && fiAllowTyVarBind fi t
 
-{-# LINE 457 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 450 "src/ehc/Ty/FitsIn.chs" #-}
             -- removal of quantifier
             unquant fi t hide howToInst
                 = ( fi { fiUniq = u
@@ -223,7 +223,7 @@
                        back              = if hide  then  \fo -> foSetVarMp (varmpDel rtvs (foVarMp fo)) $ foUpdTy t fo
                                                     else  id
 
-{-# LINE 503 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 496 "src/ehc/Ty/FitsIn.chs" #-}
             foUpdVarMp  c fo = fo {foVarMp = c |+> foVarMp fo}
             fifo       fi fo = fo { foVarMp    = fiVarMpLoc fi, foUniq = fiUniq fi, foTrace = fiTrace fi
                                   , foDontBind = fioDontBind (fiFIOpts fi)
@@ -234,34 +234,35 @@
                                   }
                                where o  = fiFIOpts fi
 
-{-# LINE 519 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 512 "src/ehc/Ty/FitsIn.chs" #-}
             fiInhibitBind v fi = fi {fiFIOpts = o {fioDontBind = v `Set.insert` fioDontBind o}}
                                where o  = fiFIOpts fi
 
-{-# LINE 524 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 517 "src/ehc/Ty/FitsIn.chs" #-}
             foUpdTy  t   fo  = fo {foTy = t}
 
-{-# LINE 528 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 521 "src/ehc/Ty/FitsIn.chs" #-}
             foCmbAppTy   ffo afo  = afo {foTy = Ty_App (foTy ffo) (foTy afo)}
             foCmbVarMp   ffo afo  = afo -- {foVarMp = foVarMp afo `varUpd` foVarMp ffo}
             foCmbCoCon   ffo afo  = afo {foMbAppSpineInfo = fmap asgiShift1SpinePos $ foMbAppSpineInfo ffo}
 
-{-# LINE 534 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 527 "src/ehc/Ty/FitsIn.chs" #-}
             foCmbPrL     ffo afo  = afo {foPredOccL = foPredOccL afo ++ foPredOccL ffo, foGathCnstrMp = foGathCnstrMp afo `cnstrMpUnion` foGathCnstrMp ffo}
-{-# LINE 537 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 530 "src/ehc/Ty/FitsIn.chs" #-}
             foCmbCSubst  ffo afo  = afo {foCSubst = cSubstApp (foCSubst afo) (foCSubst ffo)}
-{-# LINE 544 "src/ehc/Ty/FitsIn.chs" #-}
+
+{-# LINE 534 "src/ehc/Ty/FitsIn.chs" #-}
             foCmbApp     ffo      =
                                     -- foCmbTvKiVarMp ffo .
                                     -- (\afo -> afo {foDontBind = ((\x -> Debug.tr "foCmbApp.ffo" (pp $ show x) x) $ foDontBind ffo) `Set.union` ((\x -> Debug.tr "foCmbApp.afo" (pp $ show x) x) $ foDontBind afo)}) .
                                     foCmbPrfRes ffo .
                                     foCmbCoCon ffo . foCmbVarMp ffo . foCmbAppTy ffo
 
-{-# LINE 562 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 552 "src/ehc/Ty/FitsIn.chs" #-}
             foCmbPrfRes  ffo      = foCmbPrL ffo
                                     . foCmbCSubst ffo
 
-{-# LINE 572 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 559 "src/ehc/Ty/FitsIn.chs" #-}
             fiAddPr n i prTy fi
                 =  let  e                   = fiEnv fi
                         (_,assumePredScope) = pscpEnter 0 $ fePredScope (fiEnv fi)
@@ -282,7 +283,7 @@
                               $ foUpdLRCoe lrcoe
                                 fo
 
-{-# LINE 613 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 591 "src/ehc/Ty/FitsIn.chs" #-}
             deepInstMatchTy fi t
               = case t of
                   _ | not (null as
@@ -294,7 +295,7 @@
               where (u,u1) = mkNewLevUID (fiUniq fi)
                     fi' = fi {fiUniq = u}
 
-{-# LINE 628 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 606 "src/ehc/Ty/FitsIn.chs" #-}
             fPairWise fi tL1 tL2
               =  foldr  (\(t1,t2) (foL,fii)
                            -> let  fo = fVar' fTySyn fii id t1 t2
@@ -302,7 +303,7 @@
                         ([],fi)
                         (zip tL1 tL2)
 
-{-# LINE 643 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 621 "src/ehc/Ty/FitsIn.chs" #-}
             fRow fi tr1 tr2 isRec isSum
                 = foR
                 where  (r1,exts1) = tyRowExtsUnAnn $ tyRowExtsWithLkup (fiLookupTyVarCyc fi) tr1
@@ -363,7 +364,7 @@
                                        $ foUpdRecFldsCoe eKeys foL tr1
                                        $ foUpdTy (foTy fo `recRow` eL) fo
 
-{-# LINE 712 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 690 "src/ehc/Ty/FitsIn.chs" #-}
                        fR fi r1@(Ty_Var _ f1) r2@(Ty_Con n2) [] [] []
                          | tvCatIsFixed f1 && n2 == hsnRowEmpty && isRec
                          = res fi r2
@@ -375,11 +376,11 @@
                               { foLRCoe = emptyLRCoe
                               }
 
-{-# LINE 738 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 713 "src/ehc/Ty/FitsIn.chs" #-}
                        fR fi _ _ _ _ _
                          = errClash fi tr1 tr2
 
-{-# LINE 747 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 722 "src/ehc/Ty/FitsIn.chs" #-}
                        fo         = fR fi2 r1 r2 extsIn1 extsIn12 extsIn2
                        foR        = (if isRec then foUpdRecCoe tr1 r1 r2 extsIn1 extsIn12 extsIn2 else id) fo
                        foUpdRecCoe tr1 r1 r2 e1 e12 e2 fo
@@ -483,7 +484,7 @@
                                              }
                                      where coe = Coe_Map (\e -> acoreLet1Plain rn e (fuMkCExpr globOpts u4 fuUpdL r))
 
-{-# LINE 986 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 879 "src/ehc/Ty/FitsIn.chs" #-}
                        foUpdRecFldsCoe eKeys foL tr1 foR
                          =  let (u',u1) = mkNewLevUID (foUniq foR)
                                 us = mkNewLevUIDL (length foL) u1
@@ -499,10 +500,10 @@
                                     , foCSubst = foldr cSubstApp (foCSubst foR) sL
                                     }
 
-{-# LINE 1024 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 904 "src/ehc/Ty/FitsIn.chs" #-}
             f fi t1 t2
               = fBase fi id t1 t2
-{-# LINE 1032 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 912 "src/ehc/Ty/FitsIn.chs" #-}
             fTySyn fi updTy t1 t2
               = case filter (not . foHasErrs) tries of
                   (fo:_) -> fo
@@ -530,15 +531,15 @@
                                                                     e1 e2 = [f]
                                            | otherwise              =       []
 
-{-# LINE 1065 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 945 "src/ehc/Ty/FitsIn.chs" #-}
             varMayFit isL fi t@(Ty_Var v f)
               = f `elem` fioBindCategs (fiFIOpts fi) && not (v `Set.member` fioDontBind (fiFIOpts fi))
               -- where mbvs = if isL then fioBindLVars (fiFIOpts fi) else fioBindRVars (fiFIOpts fi)
-{-# LINE 1070 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 950 "src/ehc/Ty/FitsIn.chs" #-}
             varMayExpand mbvs fi t@(Ty_Var v f)
               = not ((fioBindIsYes mbvs || v `Set.member` fioBindNoSet mbvs) || v `Set.member` fioDontBind (fiFIOpts fi))
 
-{-# LINE 1075 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 955 "src/ehc/Ty/FitsIn.chs" #-}
             fVar' f fi updTy t1@(Ty_Var v1 f1)     t2@(Ty_Var v2 f2)
                 | v1 == v2 && f1 == f2
                   && not (fioExpandEqTyVar (fiFIOpts fi))
@@ -566,7 +567,7 @@
 
             fVar f fi        t1                    t2                = fVar' f fi id t1 t2
 
-{-# LINE 1149 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1029 "src/ehc/Ty/FitsIn.chs" #-}
             -- | tvar binding part 1: 2 tvars
             varBind1  fi updTy t1@(Ty_Var v1 f1)      t2@(Ty_Var v2 f2)
                 | v1 == v2 && f1 == f2                  = Just $ res  fi       t1
@@ -599,7 +600,7 @@
                                                             _ -> Just $ occurBind fi False v2 t1
             varBind3  _  _     _                      _ = Nothing
 
-{-# LINE 1191 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1071 "src/ehc/Ty/FitsIn.chs" #-}
             fAnn f fi updTy t1@(Ty_Var _ _) t2                = case tyAnnDecomposeMk t2 of
                                                                     (t2@(Ty_Var _ _), (_:_), mk2)
                                                                       -> fVar' f fi2 (updTy . mk2) t1 t2
@@ -612,7 +613,7 @@
                                                                     _ -> f fi updTy t1 t2
             fAnn f fi updTy t1              t2                = f fi updTy t1 t2
 
-{-# LINE 1213 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1093 "src/ehc/Ty/FitsIn.chs" #-}
             fVarPred2 f fi tpr1                             (Ty_Impls (Impls_Tail iv2 _))
                 | isJust mbTl                                 = f fi tpr1 (Ty_Impls tl2)
                 where mbTl@(~(Just tl2)) = lookupImplsVarCyc fi iv2
@@ -627,7 +628,7 @@
             fVarPred1 f fi tpr1
                 = f fi tpr1
 
-{-# LINE 1229 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1109 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1                    t2
                 | fioMode (fiFIOpts fi) == FitSubRL          = fBase  fi' updTy t2 t1
                 where  fi'       = fiSwapCoCo $ fi  {fiFIOpts = fioSwapOpts $ fioSwapPolarity polContravariant $ fiFIOpts fi}
@@ -641,7 +642,7 @@
                 | isJust mbVarBind                           = fromJust mbVarBind
                 where  mbVarBind = varBind1 fi updTy t1 t2
 
-{-# LINE 1244 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1124 "src/ehc/Ty/FitsIn.chs" #-}
             -- get rid of annotation for fitsIn, but preserve as result
             fBase fi updTy t1@(Ty_Ann TyAnn_Mono at1)       t2          = fo
                 where fi2 = fi { fiFIOpts = (fiFIOpts fi) {fioBindLFirst = False} }
@@ -655,7 +656,7 @@
             fBase fi updTy t1                               t2@(Ty_Ann a2 at2)
                                                                         = fVar' fBase fi updTy t1 at2
 
-{-# LINE 1259 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1139 "src/ehc/Ty/FitsIn.chs" #-}
             -- always get rid of empty implicits
             fBase fi updTy t1@(Ty_App (Ty_App (Ty_Con c1) tpr1) tr1)
                            t2
@@ -674,13 +675,13 @@
                             =  Just (fVar' fTySyn fi updTy t1 tr2)
                        fP fi _ =  Nothing
 
-{-# LINE 1279 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1159 "src/ehc/Ty/FitsIn.chs" #-}
             -- here we decide whether to bind impredicatively, anything not to be bounded as such must be dealt with before here
             fBase fi updTy t1                    t2
                 | isJust mbVarBind                           = fromJust mbVarBind
                 where  mbVarBind = varBind2 fi updTy t1 t2
 
-{-# LINE 1286 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1166 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1@(Ty_Pred pr1) t2@(Ty_Pred pr2)
                 | fioPredAsTy (fiFIOpts fi) && isJust mbfp
                 = let (fo,pr) = fromJust mbfp in foUpdTy (Ty_Pred pr) fo
@@ -691,25 +692,25 @@
                        fP (Pred_Pred prt1)          (Pred_Pred prt2)
                             = Just (fo,Pred_Pred (foTy fo))
                             where fo = fVar' fTySyn fi id prt1 prt2
-{-# LINE 1298 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1178 "src/ehc/Ty/FitsIn.chs" #-}
                        fP (Pred_Lacks lt1 l1)       (Pred_Lacks lt2 l2)
                             | l1' == l2'
                             = Just (fo,Pred_Lacks (foTy fo) l1')
                             where fo = fVar' fTySyn fi id lt1 lt2
                                   l1' = maybe l1 id $ lookupLabelCyc fi l1
                                   l2' = maybe l2 id $ lookupLabelCyc fi l2
-{-# LINE 1306 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1186 "src/ehc/Ty/FitsIn.chs" #-}
                        fP _                         _
                             = Nothing
 
-{-# LINE 1311 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1191 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1@(Ty_TBind q1 _ _ _) t2@(Ty_TBind q2 _ _ _)
                 | fioMode (fiFIOpts fi) == FitUnify && q1 == q2
                                                     = fVar' fTySyn fi2 id uqt1 uqt2
                 where  (fi1,uqt1,_,_) = unquant fi   t1 False instCoConst
                        (fi2,uqt2,_,_) = unquant fi1  t2 False instCoConst
 
-{-# LINE 1323 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1203 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1                     t2@(Ty_TBind _ _ _ _)
                 | fioIsSubsume (fiFIOpts fi) && fioLeaveRInst (fiFIOpts fi)
                                                     = back2 (fo { foRInstToL = instto2 ++ foRInstToL fo
@@ -723,14 +724,14 @@
                 where (fi2,uqt2,back2,instto2) = unquant fi t2 False instContra
                       fo = fVar' fTySyn fi2 id t1 uqt2
 
-{-# LINE 1346 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1226 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1@(Ty_TBind _ _ _ _)  t2
                 | fioIsSubsume (fiFIOpts fi)        = fo { foLInstToL = instto1 ++ foLInstToL fo
                                                          }
                 where (fi1,uqt1,back1,instto1) = unquant fi t1 False instCoConst
                       fo = fVar' fTySyn fi1 id uqt1 t2
 
-{-# LINE 1358 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1238 "src/ehc/Ty/FitsIn.chs" #-}
             -- tpr1 => tr1 `fit` tpr2 => tr2
             fBase fi updTy t1@(Ty_App (Ty_App (Ty_Con c1) tpr1) tr1)
                            t2@(Ty_App (Ty_App (Ty_Con c2) tpr2) tr2)
@@ -753,7 +754,7 @@
                             =  if foHasErrs pfo
                                then Nothing
                                else Just  ( foUpdTy (updTy $ [foTy pfo] `appArr` foTy fo)
-                                          $ foUpdLRCoe (mkIdLRCoeWith n CMetaVal_Dict)
+                                          $ foUpdLRCoe (mkIdLRCoeWith n ())
                                           $ fo)
                             where  pfo   = fVar' fBase (fi {fiFIOpts = predFIOpts}) id tpr2 tpr1
                                    n     = uidHNm u2
@@ -762,7 +763,7 @@
                             =  Just (foUpdImplExplCoe iv2
                                                       (Impls_Cons iv2 pr1 (mkPrIdCHR u2) range ipo2 im2)
                                                       tpr1
-                                                      (mkIdLRCoeWith n CMetaVal_Dict)
+                                                      (mkIdLRCoeWith n ())
                                                       fo)
                             where  im2   = Impls_Tail u1 ipo2
                                    n     = uidHNm u2
@@ -771,7 +772,7 @@
                             =  Just (foUpdImplExplCoe iv1
                                                       (Impls_Cons iv1 pr2 (mkPrIdCHR u2) range ipo1 im1)
                                                       tpr2
-                                                      (mkIdLRCoeWith n CMetaVal_Dict)
+                                                      (mkIdLRCoeWith n ())
                                                       fo)
                             where  im1   = Impls_Tail u1 ipo1
                                    n     = uidHNm u2
@@ -801,7 +802,7 @@
                        fP fi _                             _
                             =  Nothing
 
-{-# LINE 1458 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1326 "src/ehc/Ty/FitsIn.chs" #-}
             -- t1 `fit` tpr2 => tr2
             fBase fi updTy t1
                            t2@(Ty_App (Ty_App (Ty_Con c2) tpr2) tr2)
@@ -847,7 +848,7 @@
                                     = fSub fi id (mkPrIdCHR u1) pr2 tr2
                        fP fi _ =  Nothing
 
-{-# LINE 1543 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1393 "src/ehc/Ty/FitsIn.chs" #-}
             -- tpr1 => tr1 `fit` t2
             fBase fi updTy t1@(Ty_App (Ty_App (Ty_Con c1) tpr1) tr1)
                            t2
@@ -895,7 +896,7 @@
                                    , cnstrMp ) = fSub fi updTy (mkPrIdCHR u1) prfPredScope pr1 tr1
                        fP fi _ =  Nothing
 
-{-# LINE 1635 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1467 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1@(Ty_App (Ty_Con n1) tr1)
                            t2@(Ty_App (Ty_Con n2) tr2)
                 | n1 == n2 && (isRec || isSum)
@@ -906,12 +907,12 @@
                        isSum = hsnIsSum n1
                        fo = fRow fi tr1 tr2 isRec isSum
 
-{-# LINE 1660 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1492 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1                    t2
                 | isJust mbVarBind                  = fromJust mbVarBind
                 where  mbVarBind = varBind3 fi updTy t1 t2
 
-{-# LINE 1666 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1498 "src/ehc/Ty/FitsIn.chs" #-}
             -- tf1 ta1 `fit` tf2 ta2
             fBase fi updTy t1@(Ty_App tf1 ta1)
                            t2@(Ty_App tf2 ta2)
@@ -948,11 +949,11 @@
                                                             (foVarMp afo `varUpd` foTy ffo) (foVarMp afo `varUpd` foTy afo)]
                                     hasSubCoerce = not $ lrcoeIsId $ foLRCoe afo
 
-{-# LINE 1735 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1565 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1@(Ty_Ext _ _ _)   t2@(Ty_Ext _ _ _)
                 =  fRow fi t1 t2 False False
 
-{-# LINE 1755 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1585 "src/ehc/Ty/FitsIn.chs" #-}
             -- N.B. hsnInvariant is a unique name which cannot be written by a programmer. In other words,
             -- this pattern match cannot trigger during other type inferences.
             -- Weaken Co/Contravariant polarity to Invariant polarity
@@ -963,18 +964,18 @@
                 | s1 == hsnInvariant && sf2 == hsnPolNegation
                                                     = fVar' fBase fi id t1 ta2
 
-{-# LINE 1767 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1597 "src/ehc/Ty/FitsIn.chs" #-}
             fBase fi updTy t1                     t2          = errClash fi t1 t2
 
-{-# LINE 1771 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1601 "src/ehc/Ty/FitsIn.chs" #-}
             foRes  = fVar' fTySyn fi id ty1 ty2
 
-{-# LINE 1775 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1605 "src/ehc/Ty/FitsIn.chs" #-}
 fitsIn' :: String -> FIOpts -> FIEnv -> UID -> VarMp -> Ty -> Ty -> FIOut
 fitsIn' msg opts env uniq varmp ty1 ty2
   =  fitsIn opts (trPP (msg ++ "-env") env) (trPP (msg ++ "-uniq") uniq) varmp (trPP (msg ++ "-ty1") ty1) (trPP (msg ++ "-ty2") ty2)
 
-{-# LINE 1785 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1615 "src/ehc/Ty/FitsIn.chs" #-}
 fitsInL' :: FIOpts -> FIEnv -> UID -> VarMp -> TyL -> TyL -> ([FIOut],FIOut)
 fitsInL' opts env uniq varmp tyl1 tyl2
   = fitsInLWith (\fo1 fo2 -> fo2 {foVarMp = foVarMp fo1 |+> foVarMp fo2, foErrL = foErrL fo1 ++ foErrL fo2})
@@ -985,13 +986,13 @@
   = (map foTy foL,fo)
   where (foL,fo) = fitsInL' opts env uniq varmp tyl1 tyl2
 
-{-# LINE 1801 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1631 "src/ehc/Ty/FitsIn.chs" #-}
 fitsInFold :: FIOpts -> FIEnv -> UID -> VarMp -> TyL -> FIOut
 fitsInFold opts env uniq varmp tyl
   = foldl (\fo t -> if foHasErrs fo then fo else fitsIn opts env uniq varmp (foTy fo) t)
           emptyFO tyl
 
-{-# LINE 1812 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1642 "src/ehc/Ty/FitsIn.chs" #-}
 fitPredIntoPred
   :: ( VarLookupCmb VarMp gm
      , VarLookup gm TyVarId VarMpInfo
@@ -1063,7 +1064,7 @@
                             (fiEnv fi) (fiUniq fi) (fiVarMp fi)
                             (Ty_Pred pr1) (Ty_Pred pr2)
 
-{-# LINE 1917 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1747 "src/ehc/Ty/FitsIn.chs" #-}
 fitPredToEvid'' :: (ClGamInfo -> Ty) -> UID -> VarMp -> Ty -> Either ClGamInfo ClGam -> FIOut
 fitPredToEvid'' getTy u varmp prTy gg
   =  case prTy of
@@ -1085,7 +1086,7 @@
                              (_,aLr'@(r':aL')) = foldr (\t (u,ar) -> let (u',u1) = mkNewLevUID u in (u',fPr u1 t : ar)) (u,[]) (r : aL)
                         in   manyFO (aLr' ++ [emptyFO {foTy = map foTy aL' `appArr` foTy r'}])
 
-{-# LINE 1940 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1770 "src/ehc/Ty/FitsIn.chs" #-}
 fitPredToEvid' :: UID -> VarMp -> Ty -> Either ClGamInfo ClGam -> FIOut
 fitPredToEvid' = fitPredToEvid'' clgiPrToEvidRecTy
 {-
@@ -1110,11 +1111,11 @@
                         in   manyFO (aLr' ++ [emptyFO {foTy = map foTy aL' `appArr` foTy r'}])
 -}
 
-{-# LINE 1966 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1796 "src/ehc/Ty/FitsIn.chs" #-}
 fitPredToEvid :: UID -> VarMp -> Ty -> ClGam -> FIOut
 fitPredToEvid u varmp prTy g = fitPredToEvid' u varmp prTy (Right g)
 
-{-# LINE 1975 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1805 "src/ehc/Ty/FitsIn.chs" #-}
 mkFitsInWrap' :: FIEnv -> FitsIn'
 mkFitsInWrap' env
   =  \opt u varmp t1 t2
@@ -1127,7 +1128,7 @@
         -> let  fo = fitsIn opt env u varmp t1 t2
            in   (foTy fo, foVarMp fo, foErrL fo)
 
-{-# LINE 1993 "src/ehc/Ty/FitsIn.chs" #-}
+{-# LINE 1823 "src/ehc/Ty/FitsIn.chs" #-}
 -- fitsInForToTyCore :: C.KiFitsIn
 fitsInForToTyCore uniq t1 t2
   = foLInstToL fo
diff --git a/src/UHC/Light/Compiler/Ty/FitsInCommon.hs b/src/UHC/Light/Compiler/Ty/FitsInCommon.hs
--- a/src/UHC/Light/Compiler/Ty/FitsInCommon.hs
+++ b/src/UHC/Light/Compiler/Ty/FitsInCommon.hs
@@ -35,18 +35,18 @@
 
 
 
-{-# LINE 48 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 46 "src/ehc/Ty/FitsInCommon.chs" #-}
 trfit :: String -> String -> PP_Doc -> PP_Doc
 trfit dir msg rest =  dir >|< "." >|< msg >|< ":" >#< rest
 
 trfitIn = trfit ">"
 trfitOu = trfit "<"
 
-{-# LINE 66 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 64 "src/ehc/Ty/FitsInCommon.chs" #-}
 foErrSq :: FIOut -> ErrSq
 foErrSq = Seq.fromList . foErrL
 
-{-# LINE 79 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 77 "src/ehc/Ty/FitsInCommon.chs" #-}
 data FIOut
   =  FIOut
        {  foVarMp           :: !VarMp					-- tvar bindings found during fitsIn
@@ -65,7 +65,7 @@
        ,  foRowCoeL         :: !(AssocL HsName Coe)		-- internal, coercions for row fields
        }
 
-{-# LINE 124 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 115 "src/ehc/Ty/FitsInCommon.chs" #-}
 emptyFO
   =  FIOut
        {  foVarMp           =   emptyVarMp
@@ -84,15 +84,15 @@
        ,  foRowCoeL         =   []
        }
 
-{-# LINE 166 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 150 "src/ehc/Ty/FitsInCommon.chs" #-}
 foHasErrs :: FIOut -> Bool
 foHasErrs = not . null . foErrL
 
-{-# LINE 171 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 155 "src/ehc/Ty/FitsInCommon.chs" #-}
 foAppSpineInfo :: FIOut -> AppSpineInfo
 foAppSpineInfo fo = maybe emptyAppSpineInfo id $ foMbAppSpineInfo fo
 
-{-# LINE 180 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 164 "src/ehc/Ty/FitsInCommon.chs" #-}
 foPlusVarMp :: VarMp -> FIOut -> FIOut
 foPlusVarMp c fo = fo {foVarMp = c |+> foVarMp fo}
 
@@ -102,10 +102,10 @@
 foBindTyVar :: TyVarId -> Ty -> FIOut -> FIOut
 foBindTyVar v t = foPlusVarMp (v `varmpTyUnit` t)
 
-{-# LINE 195 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 179 "src/ehc/Ty/FitsInCommon.chs" #-}
 type AppSpineFOUpdCoe = EHCOpts -> [FIOut] -> FIOut
 
-{-# LINE 199 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 183 "src/ehc/Ty/FitsInCommon.chs" #-}
 data AppSpineVertebraeInfo
   =  AppSpineVertebraeInfo
        { asPolarity     :: Polarity						-- the polarity on this spine position
@@ -114,14 +114,14 @@
        , asMbFOUpdCoe   :: Maybe AppSpineFOUpdCoe		-- possibly update coercion
        }
 
-{-# LINE 211 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 195 "src/ehc/Ty/FitsInCommon.chs" #-}
 instance Show AppSpineVertebraeInfo where
   show _ = "AppSpineVertebraeInfo"
 
 instance PP AppSpineVertebraeInfo where
   pp = pp . asPolarity
 
-{-# LINE 219 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 203 "src/ehc/Ty/FitsInCommon.chs" #-}
 unknownAppSpineVertebraeInfo :: AppSpineVertebraeInfo
 unknownAppSpineVertebraeInfo
   = AppSpineVertebraeInfo
@@ -129,15 +129,15 @@
       asFODflt
       Nothing
 
-{-# LINE 230 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 214 "src/ehc/Ty/FitsInCommon.chs" #-}
 asFODflt :: FIOut -> FIOut -> FIOut
 asFODflt _ afo = afo
 
-{-# LINE 235 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 219 "src/ehc/Ty/FitsInCommon.chs" #-}
 unknownAppSpineVertebraeInfoL :: [AppSpineVertebraeInfo]
 unknownAppSpineVertebraeInfoL = repeat unknownAppSpineVertebraeInfo
 
-{-# LINE 240 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 224 "src/ehc/Ty/FitsInCommon.chs" #-}
 asUpdateByPolarity :: Polarity -> AppSpineVertebraeInfo -> AppSpineVertebraeInfo
 asUpdateByPolarity pol as
   = as {asPolarity = pol, asFIO = mkfio}
@@ -145,7 +145,7 @@
               | polIsCovariant     pol = id
               | otherwise              = fioMkUnify
 
-{-# LINE 249 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 233 "src/ehc/Ty/FitsInCommon.chs" #-}
 data AppSpineInfo
   = AppSpineInfo
       { asgiSpinePos   :: Int
@@ -167,11 +167,11 @@
 asgiSpine :: AppSpineInfo -> [AppSpineVertebraeInfo]
 asgiSpine i = drop (asgiSpinePos i) $ asgiVertebraeL i
 
-{-# LINE 276 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 260 "src/ehc/Ty/FitsInCommon.chs" #-}
 type FitsIn' = FIOpts -> UID -> VarMp -> Ty -> Ty -> FIOut
 type FitsIn = FIOpts -> UID -> VarMp -> Ty -> Ty -> (Ty,VarMp,ErrL)
 
-{-# LINE 281 "src/ehc/Ty/FitsInCommon.chs" #-}
+{-# LINE 265 "src/ehc/Ty/FitsInCommon.chs" #-}
 fitsInLWith :: (FIOut -> FIOut -> FIOut) -> FitsIn' -> FIOpts -> UID -> VarMp -> TyL -> TyL -> ([FIOut],FIOut)
 fitsInLWith foCmb elemFits opts uniq varmp tyl1 tyl2
   = (foL,fo)
diff --git a/src/UHC/Light/Compiler/Ty/Ftv.hs b/src/UHC/Light/Compiler/Ty/Ftv.hs
--- a/src/UHC/Light/Compiler/Ty/Ftv.hs
+++ b/src/UHC/Light/Compiler/Ty/Ftv.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Ftv.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Ftv.ag)
 module UHC.Light.Compiler.Ty.Ftv(tyFtv
 , tyFtvMp
 , implsFtvMp) where
diff --git a/src/UHC/Light/Compiler/Ty/Pretty.hs b/src/UHC/Light/Compiler/Ty/Pretty.hs
--- a/src/UHC/Light/Compiler/Ty/Pretty.hs
+++ b/src/UHC/Light/Compiler/Ty/Pretty.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Pretty.ag)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Pretty.ag)
 module UHC.Light.Compiler.Ty.Pretty(ppTyWithCfg', ppTyWithCfg, ppTy
 , CfgPPTy
 , ppTyPr
@@ -18,7 +18,7 @@
 import qualified Data.Map as Map
 import Data.Char
 import UHC.Light.Compiler.Base.CfgPP
-import qualified UHC.Util.RLList as RLL
+import qualified UHC.Util.RLList.LexScope as LexScope
 
 
 
@@ -160,7 +160,7 @@
             ]
 
 instance PP PredScope where
-  pp (PredScope_Lev l) = ppListSep "<" ">" "," $ RLL.toList l
+  pp (PredScope_Lev l) = ppListSep "<" ">" "," $ LexScope.toList l
   pp (PredScope_Var v) = "<sc_" >|< v >|< ">"
 
 instance PP ImplsProveOcc where
diff --git a/src/UHC/Light/Compiler/Ty/TreeTrieKey.hs b/src/UHC/Light/Compiler/Ty/TreeTrieKey.hs
--- a/src/UHC/Light/Compiler/Ty/TreeTrieKey.hs
+++ b/src/UHC/Light/Compiler/Ty/TreeTrieKey.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/TreeTrieKey)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/TreeTrieKey)
 module UHC.Light.Compiler.Ty.TreeTrieKey where
 
 import UHC.Light.Compiler.Base.Common
diff --git a/src/UHC/Light/Compiler/Ty/Trf/Canonic.hs b/src/UHC/Light/Compiler/Ty/Trf/Canonic.hs
--- a/src/UHC/Light/Compiler/Ty/Trf/Canonic.hs
+++ b/src/UHC/Light/Compiler/Ty/Trf/Canonic.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Canonic)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Canonic)
 module UHC.Light.Compiler.Ty.Trf.Canonic(TyCanonicOut
 , TyCanonicOpts (..), emptyTyCanonicOpts
 , tyCanonic
diff --git a/src/UHC/Light/Compiler/Ty/Trf/FreshVar.hs b/src/UHC/Light/Compiler/Ty/Trf/FreshVar.hs
--- a/src/UHC/Light/Compiler/Ty/Trf/FreshVar.hs
+++ b/src/UHC/Light/Compiler/Ty/Trf/FreshVar.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/FreshVa)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/FreshVa)
 module UHC.Light.Compiler.Ty.Trf.FreshVar(tyFreshVar) where
 
 import UHC.Light.Compiler.Base.Common
diff --git a/src/UHC/Light/Compiler/Ty/Trf/Instantiate.hs b/src/UHC/Light/Compiler/Ty/Trf/Instantiate.hs
--- a/src/UHC/Light/Compiler/Ty/Trf/Instantiate.hs
+++ b/src/UHC/Light/Compiler/Ty/Trf/Instantiate.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Instant)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Instant)
 module UHC.Light.Compiler.Ty.Trf.Instantiate(tyInst1Quants, tyInst1Exists, instCoConst, instContra, instCo
 , tyInstToL) where
 
diff --git a/src/UHC/Light/Compiler/Ty/Trf/MergePreds.hs b/src/UHC/Light/Compiler/Ty/Trf/MergePreds.hs
--- a/src/UHC/Light/Compiler/Ty/Trf/MergePreds.hs
+++ b/src/UHC/Light/Compiler/Ty/Trf/MergePreds.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePr)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePr)
 module UHC.Light.Compiler.Ty.Trf.MergePreds(tyMergePreds
 , TyMergePredOut (..)
 , TQOGam) where
diff --git a/src/UHC/Light/Compiler/Ty/Trf/Quantify.hs b/src/UHC/Light/Compiler/Ty/Trf/Quantify.hs
--- a/src/UHC/Light/Compiler/Ty/Trf/Quantify.hs
+++ b/src/UHC/Light/Compiler/Ty/Trf/Quantify.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Quantif)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Quantif)
 module UHC.Light.Compiler.Ty.Trf.Quantify(tyQuantify
 , TyQuOpts (..), defaultTyQuOpts
 , TyQuOut (..)
diff --git a/src/UHC/Light/Compiler/Ty/Trf/Subst.hs b/src/UHC/Light/Compiler/Ty/Trf/Subst.hs
--- a/src/UHC/Light/Compiler/Ty/Trf/Subst.hs
+++ b/src/UHC/Light/Compiler/Ty/Trf/Subst.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Subst.a)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/Subst.a)
 module UHC.Light.Compiler.Ty.Trf.Subst(tyAppVarLookup, tyAppVarLookup2) where
 
 import UHC.Light.Compiler.Base.Common
diff --git a/src/UHC/Light/Compiler/Ty/UsedNames.hs b/src/UHC/Light/Compiler/Ty/UsedNames.hs
--- a/src/UHC/Light/Compiler/Ty/UsedNames.hs
+++ b/src/UHC/Light/Compiler/Ty/UsedNames.hs
@@ -1,6 +1,6 @@
 
 
--- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/UsedNames.a)
+-- UUAGC 0.9.52.2 (build/103/lib-ehc/UHC/Light/Compiler/Ty/UsedNames.a)
 module UHC.Light.Compiler.Ty.UsedNames(tyUsedNames) where
 
 import Data.List
diff --git a/src/UHC/Light/Compiler/Ty/Utils2.hs b/src/UHC/Light/Compiler/Ty/Utils2.hs
--- a/src/UHC/Light/Compiler/Ty/Utils2.hs
+++ b/src/UHC/Light/Compiler/Ty/Utils2.hs
@@ -13,7 +13,7 @@
 
 
 
-{-# LINE 26 "src/ehc/Ty/Utils2.chs" #-}
+{-# LINE 24 "src/ehc/Ty/Utils2.chs" #-}
 foAppLRCoeAsSubst :: EHCOpts -> UID -> FIOut -> VarMp -> CSubst -> CExpr -> (CExpr,CSubst)
 foAppLRCoeAsSubst opts uniq fo c cs ce
   = (ce', foCSubst fo `cSubstApp` s1 `cSubstApp` s2)
diff --git a/src/UHC/Light/Compiler/VarMp.hs b/src/UHC/Light/Compiler/VarMp.hs
--- a/src/UHC/Light/Compiler/VarMp.hs
+++ b/src/UHC/Light/Compiler/VarMp.hs
@@ -52,11 +52,11 @@
 
 
 
-{-# LINE 84 "src/ehc/VarMp.chs" #-}
+{-# LINE 78 "src/ehc/VarMp.chs" #-}
 -- moved to package uhc-util
 
 
-{-# LINE 163 "src/ehc/VarMp.chs" #-}
+{-# LINE 157 "src/ehc/VarMp.chs" #-}
 assocMetaLevTyLToVarMp :: Ord k => AssocL k (MetaLev,Ty) -> VarMp' k VarMpInfo
 assocMetaLevTyLToVarMp = assocMetaLevLToVarMp . assocLMapElt (\(ml,t) -> (ml, VMITy t)) -- varmpUnions [ varmpMetaLevTyUnit lev v t | (v,(lev,t)) <- l ]
 
@@ -67,11 +67,11 @@
 varmpToAssocTyL c = [ (v,t) | (v,VMITy t) <- varmpToAssocL c ]
 
 
-{-# LINE 206 "src/ehc/VarMp.chs" #-}
+{-# LINE 200 "src/ehc/VarMp.chs" #-}
 instToL1VarMp :: [InstTo] -> VarMp
 instToL1VarMp = varmpIncMetaLev . assocMetaLevTyLToVarMp . instToL1AssocL
 
-{-# LINE 215 "src/ehc/VarMp.chs" #-}
+{-# LINE 209 "src/ehc/VarMp.chs" #-}
 data VarMpInfo
   = VMITy      !Ty
   | VMIImpls   !Impls
@@ -84,39 +84,39 @@
   | VMIPredSeq !PredSeq
   deriving
     ( Eq, Ord, Show
-    , Typeable
+    , Typeable, Generic
     )
 
-{-# LINE 244 "src/ehc/VarMp.chs" #-}
+{-# LINE 238 "src/ehc/VarMp.chs" #-}
 vmiMbTy      i = case i of {VMITy      x -> Just x; _ -> Nothing}
 
-{-# LINE 254 "src/ehc/VarMp.chs" #-}
+{-# LINE 248 "src/ehc/VarMp.chs" #-}
 vmiMbImpls   i = case i of {VMIImpls   x -> Just x; _ -> Nothing}
 vmiMbScope   i = case i of {VMIScope   x -> Just x; _ -> Nothing}
 vmiMbPred    i = case i of {VMIPred    x -> Just x; _ -> Nothing}
 vmiMbAssNm   i = case i of {VMIAssNm   x -> Just x; _ -> Nothing}
-{-# LINE 260 "src/ehc/VarMp.chs" #-}
+{-# LINE 254 "src/ehc/VarMp.chs" #-}
 vmiMbLabel   i = case i of {VMILabel   x -> Just x; _ -> Nothing}
 vmiMbOffset  i = case i of {VMIOffset  x -> Just x; _ -> Nothing}
-{-# LINE 264 "src/ehc/VarMp.chs" #-}
+{-# LINE 258 "src/ehc/VarMp.chs" #-}
 vmiMbPredSeq i = case i of {VMIPredSeq x -> Just x; _ -> Nothing}
 
-{-# LINE 278 "src/ehc/VarMp.chs" #-}
+{-# LINE 272 "src/ehc/VarMp.chs" #-}
 type VarMp  = VarMp' VarId VarMpInfo
 
-{-# LINE 287 "src/ehc/VarMp.chs" #-}
+{-# LINE 281 "src/ehc/VarMp.chs" #-}
 varmpFilterTy :: Ord k => (k -> Ty -> Bool) -> VarMp' k VarMpInfo -> VarMp' k VarMpInfo
 varmpFilterTy f
   = varmpFilter
         (\v i -> case i of {VMITy t -> f v t ; _ -> True})
 
-{-# LINE 298 "src/ehc/VarMp.chs" #-}
+{-# LINE 292 "src/ehc/VarMp.chs" #-}
 varmpTailAddOcc :: ImplsProveOcc -> Impls -> (Impls,VarMp)
 varmpTailAddOcc o (Impls_Tail i os) = (t, varmpImplsUnit i t)
                                     where t = Impls_Tail i (o:os)
 varmpTailAddOcc _ x                 = (x,emptyVarMp)
 
-{-# LINE 309 "src/ehc/VarMp.chs" #-}
+{-# LINE 303 "src/ehc/VarMp.chs" #-}
 varmpMapThr :: (MetaLev -> TyVarId -> VarMpInfo -> thr -> (VarMpInfo,thr)) -> thr -> VarMp -> (VarMp,thr)
 varmpMapThr f thr (VarMp l ms)
   = (VarMp l ms',thr')
@@ -146,7 +146,7 @@
               _       -> (i,thr)
       )
 
-{-# LINE 351 "src/ehc/VarMp.chs" #-}
+{-# LINE 345 "src/ehc/VarMp.chs" #-}
 varmpinfoMkVar :: TyVarId -> VarMpInfo -> Ty
 varmpinfoMkVar v i
   = case i of
@@ -154,14 +154,14 @@
       VMIImpls    i -> mkImplsVar v
       _             -> mkTyVar v					-- rest incomplete
 
-{-# LINE 369 "src/ehc/VarMp.chs" #-}
+{-# LINE 363 "src/ehc/VarMp.chs" #-}
 varmpMetaLevTyUnit :: Ord k => MetaLev -> k -> Ty -> VarMp' k VarMpInfo
 varmpMetaLevTyUnit mlev v t = varmpMetaLevSingleton mlev v (VMITy t)
 
 varmpTyUnit :: Ord k => k -> Ty -> VarMp' k VarMpInfo
 varmpTyUnit = varmpMetaLevTyUnit metaLevVal
 
-{-# LINE 382 "src/ehc/VarMp.chs" #-}
+{-# LINE 371 "src/ehc/VarMp.chs" #-}
 varmpImplsUnit :: ImplsVarId -> Impls -> VarMp
 varmpImplsUnit v i = mkVarMp (Map.fromList [(v,VMIImpls i)])
 
@@ -177,7 +177,7 @@
 assocImplsLToVarMp :: AssocL ImplsVarId Impls -> VarMp
 assocImplsLToVarMp = mkVarMp . Map.fromList . assocLMapElt VMIImpls
 
-{-# LINE 400 "src/ehc/VarMp.chs" #-}
+{-# LINE 389 "src/ehc/VarMp.chs" #-}
 varmpLabelUnit :: LabelVarId -> Label -> VarMp
 varmpLabelUnit v l = mkVarMp (Map.fromList [(v,VMILabel l)])
 
@@ -185,16 +185,16 @@
 varmpOffsetUnit v l = mkVarMp (Map.fromList [(v,VMIOffset l)])
 
 
-{-# LINE 411 "src/ehc/VarMp.chs" #-}
+{-# LINE 400 "src/ehc/VarMp.chs" #-}
 varmpPredSeqUnit :: TyVarId -> PredSeq -> VarMp
 varmpPredSeqUnit v l = mkVarMp (Map.fromList [(v,VMIPredSeq l)])
 
-{-# LINE 416 "src/ehc/VarMp.chs" #-}
+{-# LINE 405 "src/ehc/VarMp.chs" #-}
 -- restrict the kinds of tvars bound to value identifiers to kind *
 tyRestrictKiVarMp :: [Ty] -> VarMp
 tyRestrictKiVarMp ts = varmpIncMetaLev $ assocTyLToVarMp [ (v,kiStar) | t <- ts, v <- maybeToList $ tyMbVar t ]
 
-{-# LINE 426 "src/ehc/VarMp.chs" #-}
+{-# LINE 415 "src/ehc/VarMp.chs" #-}
 -- | Encode 'ty' as a tvar + VarMp, with additional initial construction
 tyAsVarMp' :: (UID -> Ty -> Ty) -> UID -> Ty -> (Ty,VarMp)
 tyAsVarMp' f u t
@@ -207,11 +207,11 @@
 tyAsVarMp :: UID -> Ty -> (Ty,VarMp)
 tyAsVarMp = tyAsVarMp' (flip const)
 
-{-# LINE 451 "src/ehc/VarMp.chs" #-}
+{-# LINE 440 "src/ehc/VarMp.chs" #-}
 varmpTyLookup :: (VarLookup m k VarMpInfo,Ord k) => k -> m -> Maybe Ty
 varmpTyLookup = varlookupMap vmiMbTy
 
-{-# LINE 456 "src/ehc/VarMp.chs" #-}
+{-# LINE 445 "src/ehc/VarMp.chs" #-}
 varmpImplsLookup :: VarLookup m ImplsVarId VarMpInfo => ImplsVarId -> m -> Maybe Impls
 varmpImplsLookup = varlookupMap vmiMbImpls
 
@@ -224,22 +224,22 @@
 varmpAssNmLookup :: VarLookup m TyVarId VarMpInfo => TyVarId -> m -> Maybe VarUIDHsName
 varmpAssNmLookup = varlookupMap vmiMbAssNm
 
-{-# LINE 470 "src/ehc/VarMp.chs" #-}
+{-# LINE 459 "src/ehc/VarMp.chs" #-}
 varmpLabelLookup :: VarLookup m LabelVarId VarMpInfo => LabelVarId -> m -> Maybe Label
 varmpLabelLookup = varlookupMap vmiMbLabel
 
 varmpOffsetLookup :: VarLookup m UID VarMpInfo => UID -> m -> Maybe LabelOffset
 varmpOffsetLookup = varlookupMap vmiMbOffset
 
-{-# LINE 478 "src/ehc/VarMp.chs" #-}
+{-# LINE 467 "src/ehc/VarMp.chs" #-}
 varmpPredSeqLookup :: VarLookup m TyVarId VarMpInfo => TyVarId -> m -> Maybe PredSeq
 varmpPredSeqLookup = varlookupMap vmiMbPredSeq
 
-{-# LINE 487 "src/ehc/VarMp.chs" #-}
+{-# LINE 476 "src/ehc/VarMp.chs" #-}
 varmpTyLookupCyc :: VarLookup m TyVarId VarMpInfo => TyVarId -> m -> Maybe Ty
 varmpTyLookupCyc x m = lookupLiftCycMb2 tyMbVar (flip varmpTyLookup m) x
 
-{-# LINE 496 "src/ehc/VarMp.chs" #-}
+{-# LINE 485 "src/ehc/VarMp.chs" #-}
 varmpImplsLookupImplsCyc :: VarLookup m ImplsVarId VarMpInfo => Impls -> m -> Maybe Impls
 varmpImplsLookupImplsCyc x m = lookupLiftCycMb1 implsMbVar (flip varmpImplsLookup m) x
 
@@ -252,18 +252,18 @@
 varmpAssNmLookupAssNmCyc :: VarLookup m ImplsVarId VarMpInfo => VarUIDHsName -> m -> Maybe VarUIDHsName
 varmpAssNmLookupAssNmCyc x m = lookupLiftCycMb1 vunmMbVar (flip varmpAssNmLookup m) x
 
-{-# LINE 510 "src/ehc/VarMp.chs" #-}
+{-# LINE 499 "src/ehc/VarMp.chs" #-}
 varmpLabelLookupLabelCyc :: VarLookup m ImplsVarId VarMpInfo => Label -> m -> Maybe Label
 varmpLabelLookupLabelCyc x m = lookupLiftCycMb1 labelMbVar (flip varmpLabelLookup m) x
 
 varmpLabelLookupCyc :: VarLookup m ImplsVarId VarMpInfo => TyVarId -> m -> Maybe Label
 varmpLabelLookupCyc x m = lookupLiftCycMb2 labelMbVar (flip varmpLabelLookup m) x
 
-{-# LINE 522 "src/ehc/VarMp.chs" #-}
+{-# LINE 511 "src/ehc/VarMp.chs" #-}
 varmpTyLookupCyc2 :: VarMp -> TyVarId -> Maybe Ty
 varmpTyLookupCyc2 x m = varmpTyLookupCyc m x
 
-{-# LINE 527 "src/ehc/VarMp.chs" #-}
+{-# LINE 516 "src/ehc/VarMp.chs" #-}
 varmpScopeLookup2 :: VarMp -> TyVarId -> Maybe PredScope
 varmpScopeLookup2 m v = varmpScopeLookup v m
 
@@ -279,12 +279,12 @@
 varmpAssNmLookup2 :: VarMp -> TyVarId -> Maybe VarUIDHsName
 varmpAssNmLookup2 m v = varmpAssNmLookup v m
 
-{-# LINE 544 "src/ehc/VarMp.chs" #-}
+{-# LINE 533 "src/ehc/VarMp.chs" #-}
 varmpLabelLookup2 :: VarMp -> LabelVarId -> Maybe Label
 varmpLabelLookup2 m v = varmpLabelLookup v m
 
 
-{-# LINE 572 "src/ehc/VarMp.chs" #-}
+{-# LINE 561 "src/ehc/VarMp.chs" #-}
 ppVarMpInfoCfgTy :: CfgPPTy -> VarMpInfo -> PP_Doc
 ppVarMpInfoCfgTy c i
   = case i of
@@ -299,7 +299,7 @@
 ppVarMpInfoDt :: VarMpInfo -> PP_Doc
 ppVarMpInfoDt = ppVarMpInfoCfgTy cfgPPTyDT
 
-{-# LINE 588 "src/ehc/VarMp.chs" #-}
+{-# LINE 577 "src/ehc/VarMp.chs" #-}
 instance PP VarMpInfo where
   pp (VMITy       t) = pp t
   pp (VMIImpls    i) = pp i
@@ -310,25 +310,6 @@
   -- pp (VMIExts     x) = pp "exts" -- pp x
   pp (VMIPredSeq  x) = pp "predseq" -- pp x
 
-{-# LINE 610 "src/ehc/VarMp.chs" #-}
-instance Serialize VarMpInfo where
-  sput (VMITy      a) = sputWord8 0  >> sput a
-  sput (VMIImpls   a) = sputWord8 1  >> sput a
-  sput (VMIScope   a) = sputWord8 2  >> sput a
-  sput (VMIPred    a) = sputWord8 3  >> sput a
-  sput (VMIAssNm   a) = sputWord8 4  >> sput a
-  sput (VMILabel   a) = sputWord8 5  >> sput a
-  sput (VMIOffset  a) = sputWord8 6  >> sput a
-  sput (VMIPredSeq a) = sputWord8 7  >> sput a
-  sget = do t <- sgetWord8
-            case t of
-              0 -> liftM VMITy      sget
-              1 -> liftM VMIImpls   sget
-              2 -> liftM VMIScope   sget
-              3 -> liftM VMIPred    sget
-              4 -> liftM VMIAssNm   sget
-              5 -> liftM VMILabel   sget
-              6 -> liftM VMIOffset  sget
-              7 -> liftM VMIPredSeq sget
-
+{-# LINE 599 "src/ehc/VarMp.chs" #-}
+instance Serialize VarMpInfo
 
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.9.2
+Version:			1.1.9.3
 License:			BSD3
 Copyright:			Utrecht University, Department of Information and Computing Sciences, Software Technology group
 Build-Type:			 Simple 
@@ -12,25 +12,25 @@
 Synopsis:			Part of UHC packaged as cabal/hackage installable library
 Description:		A 'light' variant of UHC including only an API and executables for compiling to Core representation (uhcl) and running CoreRun (uhcr). This version is just to test the infrastructure. Later versions will provide a fleshing out of the API and completion of the now rudimentary platform independent (Haskell) interpreted running 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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.9.2/103/cr/plain/Control/Monad.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.bcrr,103/lib/pkg/uhcbase-1.1.9.2/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.9.2/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/Ty/AbsSyn.ag,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.bcrr,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.9.3/103/cr/plain/Control/Monad.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.bcrr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.9.3/103/cr/plain/Unsafe/Coerce.hi 
 extra-source-files:  changelog.md 
 
 Library
   Hs-Source-Dirs:        src 
-  Build-Depends:		fgl,uulib>=0.9.19,hashable>=1.1&&<1.3,uhc-util>=0.1.6.3&&<0.1.7,base>=4.7&&<5,vector,syb,network,binary,mtl,transformers,directory,containers,array,process,filepath,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale
+  Build-Depends:		fgl,uulib>=0.9.19,hashable>=1.2.4&&<1.3,uhc-util>=0.1.6.5&&<0.1.7,base>=4.7&&<5,vector,network,binary,mtl,transformers,directory,containers,array,process,filepath,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale
   Extensions:			RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,LiberalTypeSynonyms,StandaloneDeriving,DeriveGeneric,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables,TypeFamilies
   Exposed-Modules:		 UHC.Light.Compiler.API,UHC.Light.Compiler.Base.API,UHC.Light.Compiler.Core.API,UHC.Light.Compiler.CoreRun.API,UHC.Light.Compiler.CoreRun.API.Internal,UHC.Light.Compiler.EH.Main,UHC.Light.Compiler.EHC.Main,UHC.Light.Compiler.EHC.Main.Compile,UHC.Light.Compiler.EHC.Main.Utils 
-  Other-Modules:		 Paths_uhc_light,UHC.Light.Compiler.AbstractCore,UHC.Light.Compiler.AbstractCore.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.Range,UHC.Light.Compiler.Base.Strictness,UHC.Light.Compiler.Base.Target,UHC.Light.Compiler.Base.TermLike,UHC.Light.Compiler.Base.Trace,UHC.Light.Compiler.Base.UID,UHC.Light.Compiler.Base.UnderDev,UHC.Light.Compiler.CHR.Constraint,UHC.Light.Compiler.CHR.Guard,UHC.Light.Compiler.CHR.Instances,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.CEnv,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.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.RenUniq,UHC.Light.Compiler.Core.UsedModNms,UHC.Light.Compiler.Core.Utils,UHC.Light.Compiler.CoreRun,UHC.Light.Compiler.CoreRun.Check,UHC.Light.Compiler.CoreRun.ModImpExp,UHC.Light.Compiler.CoreRun.Parser,UHC.Light.Compiler.CoreRun.Pretty,UHC.Light.Compiler.CoreRun.Prim,UHC.Light.Compiler.CoreRun.Run,UHC.Light.Compiler.CoreRun.Run.Val,UHC.Light.Compiler.CoreRun.Run.Val.Prim,UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk,UHC.Light.Compiler.CoreRun.Run.Val.RunImplStk,UHC.Light.Compiler.Deriving,UHC.Light.Compiler.EH,UHC.Light.Compiler.EH.MainAG,UHC.Light.Compiler.EH.MainAG_AGItf,UHC.Light.Compiler.EH.MainAG_CaseAlt,UHC.Light.Compiler.EH.MainAG_CaseAlts,UHC.Light.Compiler.EH.MainAG_DataConstr,UHC.Light.Compiler.EH.MainAG_DataConstrs,UHC.Light.Compiler.EH.MainAG_DataField,UHC.Light.Compiler.EH.MainAG_DataFieldExpr,UHC.Light.Compiler.EH.MainAG_DataFieldPatExpr,UHC.Light.Compiler.EH.MainAG_DataFields,UHC.Light.Compiler.EH.MainAG_Decl,UHC.Light.Compiler.EH.MainAG_Decls,UHC.Light.Compiler.EH.MainAG_Expr,UHC.Light.Compiler.EH.MainAG_ExprAnn,UHC.Light.Compiler.EH.MainAG_FuncDep,UHC.Light.Compiler.EH.MainAG_FuncDeps,UHC.Light.Compiler.EH.MainAG_KiExpr,UHC.Light.Compiler.EH.MainAG_KiExprAnn,UHC.Light.Compiler.EH.MainAG_MbTyExpr,UHC.Light.Compiler.EH.MainAG_PatExpr,UHC.Light.Compiler.EH.MainAG_PatExprAnn,UHC.Light.Compiler.EH.MainAG_PrExpr,UHC.Light.Compiler.EH.MainAG_PrExprs,UHC.Light.Compiler.EH.MainAG_RecExpr,UHC.Light.Compiler.EH.MainAG_RecPatExpr,UHC.Light.Compiler.EH.MainAG_RowTyExpr,UHC.Light.Compiler.EH.MainAG_TyExpr,UHC.Light.Compiler.EH.MainAG_TyExprAnn,UHC.Light.Compiler.EH.MainAG_TyExprs,UHC.Light.Compiler.EH.MainAG_TyVar,UHC.Light.Compiler.EH.MainAG_TyVars,UHC.Light.Compiler.EH.MainAG_common,UHC.Light.Compiler.EH.Parser,UHC.Light.Compiler.EHC.ASTHandler,UHC.Light.Compiler.EHC.ASTHandler.Instances,UHC.Light.Compiler.EHC.ASTPipeline,UHC.Light.Compiler.EHC.ASTTypes,UHC.Light.Compiler.EHC.BuildFunction,UHC.Light.Compiler.EHC.BuildFunction.Run,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.CompileRun.Base,UHC.Light.Compiler.EHC.CompileUnit,UHC.Light.Compiler.EHC.Environment,UHC.Light.Compiler.EHC.FileSuffMp,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.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 
+  Other-Modules:		 Paths_uhc_light,UHC.Light.Compiler.AbstractCore,UHC.Light.Compiler.AbstractCore.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.Range,UHC.Light.Compiler.Base.Strictness,UHC.Light.Compiler.Base.Target,UHC.Light.Compiler.Base.TermLike,UHC.Light.Compiler.Base.Trace,UHC.Light.Compiler.Base.UID,UHC.Light.Compiler.Base.UnderDev,UHC.Light.Compiler.CHR.Constraint,UHC.Light.Compiler.CHR.Guard,UHC.Light.Compiler.CHR.Instances,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.CEnv,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.PrettyTrace,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.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.RenUniq,UHC.Light.Compiler.Core.UsedModNms,UHC.Light.Compiler.Core.Utils,UHC.Light.Compiler.CoreRun,UHC.Light.Compiler.CoreRun.Check,UHC.Light.Compiler.CoreRun.ModImpExp,UHC.Light.Compiler.CoreRun.Parser,UHC.Light.Compiler.CoreRun.Pretty,UHC.Light.Compiler.CoreRun.Prim,UHC.Light.Compiler.CoreRun.Run,UHC.Light.Compiler.CoreRun.Run.Val,UHC.Light.Compiler.CoreRun.Run.Val.Prim,UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk,UHC.Light.Compiler.CoreRun.Run.Val.RunImplStk,UHC.Light.Compiler.Deriving,UHC.Light.Compiler.EH,UHC.Light.Compiler.EH.MainAG,UHC.Light.Compiler.EH.MainAG_AGItf,UHC.Light.Compiler.EH.MainAG_CaseAlt,UHC.Light.Compiler.EH.MainAG_CaseAlts,UHC.Light.Compiler.EH.MainAG_DataConstr,UHC.Light.Compiler.EH.MainAG_DataConstrs,UHC.Light.Compiler.EH.MainAG_DataField,UHC.Light.Compiler.EH.MainAG_DataFieldExpr,UHC.Light.Compiler.EH.MainAG_DataFieldPatExpr,UHC.Light.Compiler.EH.MainAG_DataFields,UHC.Light.Compiler.EH.MainAG_Decl,UHC.Light.Compiler.EH.MainAG_Decls,UHC.Light.Compiler.EH.MainAG_Expr,UHC.Light.Compiler.EH.MainAG_ExprAnn,UHC.Light.Compiler.EH.MainAG_FuncDep,UHC.Light.Compiler.EH.MainAG_FuncDeps,UHC.Light.Compiler.EH.MainAG_KiExpr,UHC.Light.Compiler.EH.MainAG_KiExprAnn,UHC.Light.Compiler.EH.MainAG_MbTyExpr,UHC.Light.Compiler.EH.MainAG_PatExpr,UHC.Light.Compiler.EH.MainAG_PatExprAnn,UHC.Light.Compiler.EH.MainAG_PrExpr,UHC.Light.Compiler.EH.MainAG_PrExprs,UHC.Light.Compiler.EH.MainAG_RecExpr,UHC.Light.Compiler.EH.MainAG_RecPatExpr,UHC.Light.Compiler.EH.MainAG_RowTyExpr,UHC.Light.Compiler.EH.MainAG_TyExpr,UHC.Light.Compiler.EH.MainAG_TyExprAnn,UHC.Light.Compiler.EH.MainAG_TyExprs,UHC.Light.Compiler.EH.MainAG_TyVar,UHC.Light.Compiler.EH.MainAG_TyVars,UHC.Light.Compiler.EH.MainAG_common,UHC.Light.Compiler.EH.Parser,UHC.Light.Compiler.EHC.ASTHandler,UHC.Light.Compiler.EHC.ASTHandler.Instances,UHC.Light.Compiler.EHC.ASTPipeline,UHC.Light.Compiler.EHC.ASTTypes,UHC.Light.Compiler.EHC.BuildFunction,UHC.Light.Compiler.EHC.BuildFunction.Run,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.CompileRun.Base,UHC.Light.Compiler.EHC.CompileUnit,UHC.Light.Compiler.EHC.Environment,UHC.Light.Compiler.EHC.FileSuffMp,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.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 
   Ghc-Options:			-fno-warn-tabs
 
 Executable uhcl
   Hs-Source-Dirs:        src-main 
-  Build-Depends:		uhc-light==1.1.9.2, fgl,uulib>=0.9.19,hashable>=1.1&&<1.3,uhc-util>=0.1.6.3&&<0.1.7,base>=4.7&&<5,vector,syb,network,binary,mtl,transformers,directory,containers,array,process,filepath,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale
+  Build-Depends:		uhc-light==1.1.9.3, fgl,uulib>=0.9.19,hashable>=1.2.4&&<1.3,uhc-util>=0.1.6.5&&<0.1.7,base>=4.7&&<5,vector,network,binary,mtl,transformers,directory,containers,array,process,filepath,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale
   Extensions:			RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,LiberalTypeSynonyms,StandaloneDeriving,DeriveGeneric,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables,TypeFamilies
   Main-Is:           	EHC.hs
 
 Executable uhcr
   Hs-Source-Dirs:        src-main 
-  Build-Depends:		uhc-light==1.1.9.2, fgl,uulib>=0.9.19,hashable>=1.1&&<1.3,uhc-util>=0.1.6.3&&<0.1.7,base>=4.7&&<5,vector,syb,network,binary,mtl,transformers,directory,containers,array,process,filepath,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale
+  Build-Depends:		uhc-light==1.1.9.3, fgl,uulib>=0.9.19,hashable>=1.2.4&&<1.3,uhc-util>=0.1.6.5&&<0.1.7,base>=4.7&&<5,vector,network,binary,mtl,transformers,directory,containers,array,process,filepath,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale
   Extensions:			RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,LiberalTypeSynonyms,StandaloneDeriving,DeriveGeneric,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables,TypeFamilies
   Main-Is:           	EHCRun.hs
