Add MonadFail for Generator for GHC 8.6

This commit is contained in:
Kevin Quick 2018-11-20 23:37:21 +00:00
parent c0df904033
commit 0731c5c686
No known key found for this signature in database
GPG Key ID: E6D7733599CC0A21

View File

@ -52,6 +52,7 @@ import GHC.TypeLits
import Control.Lens
import qualified Control.Monad.Cont as Ct
import qualified Control.Monad.Except as ET
import Control.Monad.Fail
import qualified Control.Monad.Reader as Rd
import Control.Monad.ST ( ST )
import qualified Control.Monad.State.Strict as St
@ -248,6 +249,9 @@ instance St.MonadState (GenState arch ids s) (Generator arch ids s) where
instance ET.MonadError GeneratorError (Generator arch ids s) where
throwError e = Generator (Ct.ContT (\_ -> ET.throwError e))
instance MonadFail (Generator arch ids s) where
fail err = ET.throwError $ GeneratorMessage $ show err
-- | The type of continuations provided by 'shiftGen'
type GenCont arch ids s a = a -> GenState arch ids s -> ET.ExceptT GeneratorError (ST s) (GenResult arch ids)