addEq :: (Eq x y c) -> NO HAtom
addEq (Eq x y c) 
  = do a     <- hashConsAtom $ Rel Eq [x, y]
       modify $ \st -> { causes     = H.insert (hid a) c (causes st)  }
                       { equalities = S.insert (x, y) (equalities st) }
       return a

--------------------------------------------------------------------
-- | Hash Consing: Building the DAG --------------------------------
--------------------------------------------------------------------
addEq :: (Eq x y c) -> NO HAtom
addEq (Eq x y c) 
  = do a     <- hashConsAtom $ Rel Eq [x, y]
       modify $ \st -> { causes     = H.insert (hid a) c (causes st)  }
                       { equalities = S.insert (x, y) (equalities st) }
       return a

--------------------------------------------------------------------
-- | Hash Consing: Building the DAG --------------------------------
--------------------------------------------------------------------
addEq (Eq x y c) 
  = do a     <- hashConsAtom $ Rel Eq [x, y]
       modify $ \st -> { causes     = H.insert (hid a) c (causes st)  }
                       { equalities = S.insert (x, y) (equalities st) }
       return a

--------------------------------------------------------------------
-- | Hash Consing: Building the DAG --------------------------------
--------------------------------------------------------------------