forked from GitHub/gf-core
fix in etaexpand optimization
This commit is contained in:
@@ -167,8 +167,12 @@ partEval opts gr (context, val) trm = errIn ("parteval" +++ prt_ trm) $ do
|
|||||||
etaExpand su t = do
|
etaExpand su t = do
|
||||||
t' <- comp su t
|
t' <- comp su t
|
||||||
case t' of
|
case t' of
|
||||||
R _ -> comp su t' --- return t' wo noexpand...
|
R _ | rightType t' -> comp su t' --- return t' wo noexpand...
|
||||||
_ -> recordExpand val t' >>= comp su
|
_ -> recordExpand val t' >>= comp su
|
||||||
|
-- don't eta expand records of right length (correct by type checking)
|
||||||
|
rightType t = case (t,val) of
|
||||||
|
(R rs, RecType ts) -> length rs == length ts
|
||||||
|
_ -> False
|
||||||
|
|
||||||
outCase subst t = do
|
outCase subst t = do
|
||||||
pts <- getParams context
|
pts <- getParams context
|
||||||
|
|||||||
Reference in New Issue
Block a user