summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2017-03-06 15:44:25 +0000
committerkrasimir <krasimir@chalmers.se>2017-03-06 15:44:25 +0000
commita0d6a4f9a44a82b08c2df96cf31318428dc2a872 (patch)
tree0cb8262582951f4b74dd0c637c6786ef37d9dffb /src/compiler
parentfe4f38f6eec02173f87d286339e15d87e7061309 (diff)
GF.Compile.Compute.ConcreteNew now can handle EPattType
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/GF/Compile/Compute/ConcreteNew.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs
index d6754c905..a77da88bf 100644
--- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs
+++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs
@@ -189,6 +189,8 @@ value env t0 =
Glue t1 t2 -> ((ok2p (glue env).) # both id) # both (value env) (t1,t2)
ELin c r -> (unlockVRec (gloc env) c.) # value env r
EPatt p -> return $ const (VPatt p) -- hmm
+ EPattType ty -> do vt <- value env ty
+ return (VPattType . vt)
Typed t ty -> value env t
t -> fail.render $ "value"<+>ppTerm Unqualified 10 t $$ show t
@@ -510,8 +512,8 @@ value2term' stop loc xs v0 =
VC v1 v2 -> liftM2 C (v2t v1) (v2t v2)
VS v1 v2 -> liftM2 S (v2t v1) (v2t v2)
VP v l -> v2t v >>= \t -> return (P t l)
- VPatt p -> return (EPatt p) -- hmm
--- VPattType v -> ...
+ VPatt p -> return (EPatt p)
+ VPattType v -> v2t v >>= return . EPattType
VAlts v vvs -> liftM2 Alts (v2t v) (mapM (\(x,y) -> liftM2 (,) (v2t x) (v2t y)) vvs)
VStrs vs -> liftM Strs (mapM v2t vs)
-- VGlue v1 v2 -> Glue (v2t v1) (v2t v2)