From 861a3fa805e088580ec1da00a0923157d1acd096 Mon Sep 17 00:00:00 2001 From: hallgren Date: Fri, 16 May 2014 21:27:20 +0000 Subject: [PATCH] Compute/ConcreteNew.hs: adding a Prawitz rewrite (table { p_i => t_i } ! x).l ==> table { p_i => t_i.l } ! x This was used in the old partial evaluator and can significantly reduce term sizes in some cases. --- src/compiler/GF/Compile/Compute/ConcreteNew.hs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs index 1b5559808..181d48830 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs @@ -180,6 +180,7 @@ proj l v = VFV vs -> liftM vfv (mapM (proj l) vs) VRec rs -> lookup l rs VExtR v1 v2 -> proj l v2 `mplus` proj l v1 -- hmm + VS (VV pty pvs rs) v2 -> flip VS v2 . VV pty pvs # mapM (proj l) rs _ -> return (ok1 VP v l) ok1 f v1@(VError {}) _ = v1