HNF in unification to speed things up
commite5706d3104042705f6283384bd622debdf076fdc
authorEdwin Brady <ecb10@st-andrews.ac.uk>
dateSat 2 Feb 2013, 20:12 (14 years ago)
parent3a27fde
src/Core/CaseTree.hs+1−1
@@ -79,7 +79,7 @@ instance TermSize CaseAlt where
7979small :: Name -> [Name] -> SC -> Bool
8080small n args t = let as = findAllUsedArgs t args in
8181 length as == length (nub as) &&
82− termsize n t < 20
82+ termsize n t < 20
8383
8484namesUsed :: SC -> [Name]
8585namesUsed sc = nub $ nu' [] sc where
src/Core/Evaluate.hs+1−1
@@ -224,7 +224,7 @@ eval traceon ctxt ntimes genv tm opts = ev ntimes [] True [] tm where
224224 do let val = lookupDefAcc Nothing n atRepl ctxt
225225 case val of
226226 [(CaseOp inl inr _ _ _ ns tree _ _, acc)]
227− | acc == Public || simpl -> -- unoptimised version
227+ | acc == Public -> -- unoptimised version
228228 if canSimplify inl inr n stk
229229 then return $ unload env (VP Ref n ty) args
230230 else do c <- evCase ntimes (n:stk) top env ns args tree
src/Core/Unify.hs+1−1
@@ -163,7 +163,7 @@ unify ctxt env topx topy injtc holes =
163163 unArgs uf argsx argsy
164164 else unifyTmpFail appx appy
165165 where hnormalise [] _ _ t = t
166− hnormalise ns ctxt env t = normalise ctxt env t
166+ hnormalise ns ctxt env t = hnf ctxt env t
167167 checkHeads (P (DCon _ _) x _) (P (DCon _ _) y _)
168168 | x /= y = unifyFail appx appy
169169 checkHeads (P (TCon _ _) x _) (P (TCon _ _) y _)