git @ Cat's Eye Technologies Fountain / 023b270
A little bit more polymorphic. Chris Pressey 1 year, 4 months ago
2 changed file(s) with 2 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
00 module Language.Fountain.Constraint where
1
2 import Language.Fountain.Value
31
42
53 data Variable = Var String
75
86 -- A "c-expr" is a simple expression appearing inside a constraint.
97 data CExpr a = CVar Variable
10 | CVal Value
8 | CVal a
119 deriving (Show, Ord, Eq)
1210
1311 data Constraint a = UnifyConst Variable a
4848 in
4949 updateStore sourceKeys destKeys sourceStore destStore'
5050
51 ceval :: CExpr Value -> Store Value -> Maybe Value
51 ceval :: CExpr a -> Store a -> Maybe a
5252 ceval (CVal val) _ = Just val
5353 ceval (CVar v) st = fetch v st
5454