packages feed

logic-classes-0.44: Data/Logic/Classes/Negatable.hs

module Data.Logic.Classes.Negatable where

-- |The class of formulas that can be negated.  There are some types
-- that can be negated but do not support the other Boolean Logic
-- operators, such as the 'Literal' class.
class Negatable formula where
    -- | Is this negated at the top level?
    negated :: formula -> Bool
    -- | Negation (This needs to check for and remove double negation)
    (.~.) :: formula -> formula