correctly apply substs
This commit is contained in:
@@ -136,7 +136,7 @@ infer1' g1 e = do
|
||||
((t,j) :< _) <- annotate e
|
||||
g2 <- unify (j ^. constraints)
|
||||
g <- unionContextWithKeyM unifyTypes g1 g2
|
||||
pure $ ifoldlOf (contextVars . itraversed) subst t g
|
||||
pure $ ifoldrOf (contextVars . itraversed) subst t g
|
||||
where
|
||||
-- intuitively, we'd return mgu(s,t) but the union is left-biased making `s`
|
||||
-- the user-specified type: prioritise her.
|
||||
@@ -211,6 +211,7 @@ typeCheckRlpProgR p = tc p
|
||||
etaExpandAll = programDecls . each %~ etaExpand
|
||||
|
||||
etaExpand :: Decl b (RlpExpr b) -> Decl b (RlpExpr b)
|
||||
etaExpand (FunD n [] e) = FunD n [] e
|
||||
etaExpand (FunD n as e)
|
||||
| Right as' <- allVarP as
|
||||
= FunD n [] (Finl . LamF as' $ e)
|
||||
|
||||
Reference in New Issue
Block a user