instance Eq Expr in the Haskell binding

This commit is contained in:
Krasimir Angelov
2017-09-04 14:49:44 +02:00
parent da091824a3
commit 71c4b4a246
3 changed files with 9 additions and 2 deletions

View File

@@ -34,6 +34,13 @@ data Expr = Expr {expr :: PgfExpr, touchExpr :: Touch}
instance Show Expr where
show = showExpr []
instance Eq Expr where
(Expr e1 e1_touch) == (Expr e2 e2_touch) =
unsafePerformIO $ do
res <- pgf_expr_eq e1 e2
e1_touch >> e2_touch
return (res /= 0)
-- | Constructs an expression by lambda abstraction
mkAbs :: BindType -> CId -> Expr -> Expr
mkAbs bind_type var (Expr body bodyTouch) =