{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE NoImplicitPrelude #-} module Data.Morpheus.Ext.Failure ( Failure (..), ) where import Relude -- Failure: for custom Morpheus GrapHQL errors class Applicative f => Failure error (f :: * -> *) where failure :: error -> f v instance Failure error (Either error) where failure = Left instance (Monad m, Failure errors m) => Failure errors (ReaderT ctx m) where failure = lift . failure