lvish-1.0: Control/LVish/Types.hs
{-# LANGUAGE DeriveDataTypeable #-}
-- | A simple internal module to factor out types that are used in many places.
module Control.LVish.Types
(LVishException(..))
where
import Data.Typeable (Typeable)
import Control.Exception
-- | All @LVar@s share a common notion of exceptions.
-- The two common forms of exception currently are conflicting-put and put-after-freeze.
-- There are also errors that correspond to particular invariants for particular LVars.
data LVishException = ConflictingPutExn String
| PutAfterFreezeExn String
| LVarSpecificExn String
deriving (Show, Read, Eq, Ord, Typeable)
instance Exception LVishException