diff options
Diffstat (limited to 'frontend/syntax.icl')
-rw-r--r-- | frontend/syntax.icl | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/frontend/syntax.icl b/frontend/syntax.icl index 72c7ca5..9e489b9 100644 --- a/frontend/syntax.icl +++ b/frontend/syntax.icl @@ -964,13 +964,12 @@ cIsNotStrict :== False } :: Let = - { let_strict :: !Bool - , let_binds :: !(Env Expression FreeVar) - , let_expr :: !Expression - , let_info_ptr :: !ExprInfoPtr + { let_strict_binds :: !Env Expression FreeVar + , let_lazy_binds :: !Env Expression FreeVar + , let_expr :: !Expression + , let_info_ptr :: !ExprInfoPtr } - :: DynamicExpr = { dyn_expr :: !Expression , dyn_opt_type :: !Optional DynamicType @@ -1332,7 +1331,7 @@ where // = file <<< app_symb <<< ' ' <<< app_args = file <<< app_symb <<< " <" <<< ptrToInt app_info_ptr <<< "> " <<< app_args (<<<) file (f_exp @ a_exp) = file <<< '(' <<< f_exp <<< " @ " <<< a_exp <<< ')' - (<<<) file (Let {let_info_ptr, let_binds, let_expr}) = write_binds (file <<< "let" <<< '\n') let_binds <<< "in\n" <<< let_expr + (<<<) file (Let {let_info_ptr, let_strict_binds, let_lazy_binds, let_expr}) = write_binds (file <<< "let" <<< '\n') (let_strict_binds ++ let_lazy_binds) <<< "in\n" <<< let_expr where write_binds file [] = file |