Write said instance

This commit is contained in:
Tissevert 2020-03-11 18:52:09 +01:00
parent 10f8c711da
commit c4c3e35e09
1 changed files with 6 additions and 0 deletions

View File

@ -20,6 +20,8 @@ import Control.Monad.State (MonadState(..))
--import Control.Monad.Reader (MonadReader(..)) --import Control.Monad.Reader (MonadReader(..))
import Data.Map (Map) import Data.Map (Map)
import qualified Data.Map as Map (insert, lookup, member) import qualified Data.Map as Map (insert, lookup, member)
import Data.OrderedMap (OrderedMap)
import qualified Data.OrderedMap as OrderedMap (lookup, set)
import Prelude hiding (fail) import Prelude hiding (fail)
{- {-
@ -66,6 +68,10 @@ instance (Ord k, MonadFail m) => Box m k (Map k a) a where
return $ Map.insert k a aMap return $ Map.insert k a aMap
| otherwise = fail "Unknown key" | otherwise = fail "Unknown key"
instance (Ord k, MonadFail m) => Box m k (OrderedMap k a) a where
r k = maybe (fail "Unknown key") return . OrderedMap.lookup k
w k a orderedMap = r k orderedMap >> return (OrderedMap.set k a orderedMap)
instance (Monad m, Box Maybe i a b) => Box m (Maybe_ i) a (Maybe b) where instance (Monad m, Box Maybe i a b) => Box m (Maybe_ i) a (Maybe b) where
r (Maybe_ i) = return . r i r (Maybe_ i) = return . r i
w (Maybe_ i) (Just b) a = w (Maybe_ i) (Just b) a =