morpheus-graphql-core-0.16.0: src/Data/Morpheus/Ext/Failure.hs
{-# 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