diff options
Diffstat (limited to 'snug-clean')
-rw-r--r-- | snug-clean/src/Snug/Compile.icl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/snug-clean/src/Snug/Compile.icl b/snug-clean/src/Snug/Compile.icl index 50119f3..757b9c3 100644 --- a/snug-clean/src/Snug/Compile.icl +++ b/snug-clean/src/Snug/Compile.icl @@ -141,14 +141,14 @@ simulator ns globals locals expr=:(ExpApp _ _) = case lookupFunction ns id globals of ?None -> abort ("unknown symbol: " +++ id +++ "\n") // TODO pass error up ?Just info | info.arity == length args -> - mapM_ (simulator ns globals locals) args >>| + mapM_ (simulator ns globals locals) (reverse args) >>| buildThunk (functionLabel ns NodeEntry id) info.arity _ -> abort ("arity mismatch in application\n") // TODO implement Constructor id -> case lookupConstructor ns id globals of ?None -> abort ("unknown constructor: " +++ id +++ "\n") // TODO pass error up ?Just (ConstructorDef _ arg_types) | length arg_types == length args -> - mapM_ (simulator ns globals locals) args >>| + mapM_ (simulator ns globals locals) (reverse args) >>| buildCons (constructorLabel ns id) (length args) _ -> abort ("arity mismatch in application of " +++ id +++ "\n") // TODO implement _ -> // TODO |