diff options
| author | Krasimir Angelov <kr.angelov@gmail.com> | 2017-09-04 14:49:44 +0200 |
|---|---|---|
| committer | Krasimir Angelov <kr.angelov@gmail.com> | 2017-09-04 14:49:44 +0200 |
| commit | 71c4b4a24640a0bc593527660bda16f61e729cc0 (patch) | |
| tree | 150fa28ece964fc139df06a1b492358bf17b8324 /src/runtime/haskell-bind/PGF2 | |
| parent | da091824a38c789b875156b89382c9f44debdc18 (diff) | |
instance Eq Expr in the Haskell binding
Diffstat (limited to 'src/runtime/haskell-bind/PGF2')
| -rw-r--r-- | src/runtime/haskell-bind/PGF2/Expr.hsc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/runtime/haskell-bind/PGF2/Expr.hsc b/src/runtime/haskell-bind/PGF2/Expr.hsc index af3afeef5..a03a24be3 100644 --- a/src/runtime/haskell-bind/PGF2/Expr.hsc +++ b/src/runtime/haskell-bind/PGF2/Expr.hsc @@ -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) = |
