{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TypeFamilies #-} -- | Declare which exceptions may be raised/rescued in a given context module Control.Monad.Raise.Constraint ( Raises , RaisesAtLeast , RaisesOnly ) where import Control.Monad.Raise.Class import Data.WorldPeace import Data.WorldPeace.Subset.Class -- | Raises this exception, but potentially others type Raises m err = Subset err (OpenUnion (Errors m)) -- | May raise errors, including the provided list type RaisesAtLeast m errs = Subset (OpenUnion errs) (OpenUnion (Errors m)) -- | Restrict exceptions to exactly this list type RaisesOnly m errs = errs ~ Errors m