diff options
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/compiler.tl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl index 087ea283..7ab25be3 100644 --- a/stdlib/compiler.tl +++ b/stdlib/compiler.tl @@ -1391,7 +1391,10 @@ (let ((op (safe-const-eval (car args)))) (or [%const-foldable% op] (not (bindable op))))) - me.(compile oreg env (safe-const-reduce form))) + (let ((crform (safe-const-reduce form))) + (if (eq crform form) + me.(comp-fun-form oreg env crform) + me.(compile oreg env crform)))) (t (tree-case (car args) ((op arg . more) (caseq op |