diff options
Diffstat (limited to 'src/interp/buildom.boot')
-rw-r--r-- | src/interp/buildom.boot | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/interp/buildom.boot b/src/interp/buildom.boot index a264223b..f1ec268a 100644 --- a/src/interp/buildom.boot +++ b/src/interp/buildom.boot @@ -152,7 +152,7 @@ UnionEqual(x, y, dom) == predlist := mkPredList branches same := false for b in stripUnionTags branches for p in predlist while not same repeat - typeFun := eval ["LAMBDA", '(_#1), p] + typeFun := COERCE(["LAMBDA", '(_#1), p],"FUNCTION") FUNCALL(typeFun,x) and FUNCALL(typeFun,y) => STRINGP b => same := (x = y) if p is ["EQCAR", :.] then (x := rest x; y := rest y) @@ -167,7 +167,7 @@ coerceUn2E(x,source) == predlist := mkPredList branches byGeorge := byJane := GENSYM() for b in stripUnionTags branches for p in predlist repeat - typeFun := eval ["LAMBDA", '(_#1), p] + typeFun := COERCE(["LAMBDA", '(_#1), p],"FUNCTION") if FUNCALL(typeFun,x) then return if p is ["EQCAR", :.] then x := rest x -- STRINGP b => return x -- to catch "failed" etc. |