errorful parser

This commit is contained in:
crumbtoo
2024-01-22 09:55:58 -07:00
parent 1a881399ab
commit 5a659d22dd
4 changed files with 71 additions and 20 deletions

View File

@@ -1,6 +1,7 @@
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE TupleSections, PatternSynonyms #-}
{-# LANGUAGE UndecidableInstances #-}
module Control.Monad.Errorful
( ErrorfulT
, runErrorfulT
@@ -11,11 +12,12 @@ module Control.Monad.Errorful
)
where
----------------------------------------------------------------------------------
import Control.Monad.State.Strict
import Control.Monad.Trans
import Data.Functor.Identity
import Data.Coerce
import Data.HashSet (HashSet)
import Data.HashSet qualified as H
import Data.HashSet (HashSet)
import Data.HashSet qualified as H
import Lens.Micro
----------------------------------------------------------------------------------
@@ -68,3 +70,10 @@ mapErrorful f (ErrorfulT m) = ErrorfulT $
-- mapErrorful f = coerced . mapped . _2 . mappd %~ f
-- lol
--------------------------------------------------------------------------------
-- daily dose of n^2 instances
instance (Monad m, MonadErrorful e m) => MonadErrorful e (StateT s m) where
addWound = undefined
addFatal = undefined