-| WEVar : CoreVar -> WeakExpr
-| WELit : HaskLiteral -> WeakExpr
-| WELet : CoreVar -> WeakExpr -> WeakExpr -> WeakExpr
-| WELetRec : Tree ??(CoreVar * WeakExpr) -> WeakExpr -> WeakExpr
-| WECast : WeakExpr -> CoreCoercion -> WeakExpr
-| WENote : Note -> WeakExpr -> WeakExpr
-| WEApp : WeakExpr -> WeakExpr -> WeakExpr
-| WETyApp : WeakExpr -> CoreType -> WeakExpr
-| WECoApp : WeakExpr -> CoreCoercion -> WeakExpr
-| WELam : CoreVar -> WeakExpr -> WeakExpr
-| WETyLam : CoreVar -> WeakExpr -> WeakExpr
-| WECoLam : CoreVar -> WeakExpr -> WeakExpr
-| WEBrak : CoreVar -> WeakExpr -> WeakExpr
-| WEEsc : CoreVar -> WeakExpr -> WeakExpr
+| WEVar : WeakExprVar -> WeakExpr
+| WELit : HaskLiteral -> WeakExpr
+| WELet : WeakExprVar -> WeakExpr -> WeakExpr -> WeakExpr
+| WELetRec : Tree ??(WeakExprVar * WeakExpr) -> WeakExpr -> WeakExpr
+| WECast : WeakExpr -> WeakCoercion -> WeakExpr
+| WENote : Note -> WeakExpr -> WeakExpr
+| WEApp : WeakExpr -> WeakExpr -> WeakExpr
+| WETyApp : WeakExpr -> CoreType -> WeakExpr
+| WECoApp : WeakExpr -> WeakCoercion -> WeakExpr
+| WELam : WeakExprVar -> WeakExpr -> WeakExpr
+| WETyLam : WeakTypeVar -> WeakExpr -> WeakExpr
+| WECoLam : WeakCoerVar -> WeakExpr -> WeakExpr
+| WEBrak : WeakTypeVar -> WeakExpr -> WeakExpr
+| WEEsc : WeakTypeVar -> WeakExpr -> WeakExpr