aboutsummaryrefslogtreecommitdiff
path: root/frontend/transform.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/transform.dcl')
-rw-r--r--frontend/transform.dcl11
1 files changed, 8 insertions, 3 deletions
diff --git a/frontend/transform.dcl b/frontend/transform.dcl
index f285c3b..8e0f782 100644
--- a/frontend/transform.dcl
+++ b/frontend/transform.dcl
@@ -13,11 +13,16 @@ partitionateMacros :: !IndexRange !Index !*{# FunDef} !u:{# DclModule} !*VarHeap
-> (!*{# FunDef}, !u:{# DclModule}, !*VarHeap, !*ExpressionHeap, !*SymbolTable, !*ErrorAdmin )
:: UnfoldState =
- { us_var_heap :: !.VarHeap
- , us_symbol_heap :: !.ExpressionHeap
- , us_cleanup_info :: ![ExprInfoPtr]
+ { us_var_heap :: !.VarHeap
+ , us_symbol_heap :: !.ExpressionHeap
+ , us_opt_type_heaps :: !.Optional .TypeHeaps
+ , us_cleanup_info :: ![ExprInfoPtr]
+ , us_subst_vars :: !Bool
+ , us_handle_aci_free_vars :: !AciFreeVarHandleMode
}
+:: AciFreeVarHandleMode = LeaveThem | RemoveThem | SubstituteThem
+
class unfold a :: !a !*UnfoldState -> (!a, !*UnfoldState)
instance unfold Expression, CasePatterns