module Workflow.Derived.Extra
( module Workflow.Derived.Extra
, module X
) where
import GHC.Generics as X (Generic)
import Data.Data as X (Data)
import Control.Arrow as X ((>>>))
import Data.Monoid as X ((<>))
import Data.Function as X ((&))
import Data.Foldable as X (traverse_)
import Data.List as X (intersperse)
import Control.Monad.Catch (MonadThrow(..))
import Control.Exception (ErrorCall(..))
failed :: (MonadThrow m) => String -> m a
failed = ErrorCall >>> throwM
nothing :: (Monad m) => m ()
nothing = return ()
maybe2bool :: Maybe a -> Bool
maybe2bool = maybe False (const True)
either2maybe :: Either e a -> Maybe a
either2maybe = either (const Nothing) Just
either2bool :: Either e a -> Bool
either2bool = either (const False) (const True)