ajhc-0.8.0.1: src/Util/Perhaps.hs
module Util.Perhaps where
import Data.Typeable
import Data.Monoid
data Perhaps = No | Maybe | Yes
deriving(Show,Read,Typeable,Eq,Ord)
-- the greatest lower bound was chosen as the Monoid
-- the least upper bound is just the maximum under Ord
instance Monoid Perhaps where
mempty = No
Yes `mappend` Yes = Yes
No `mappend` No = No
_ `mappend` _ = Maybe