gmap-0.1: src/Data/GMap/EitherMap.hs
{-# OPTIONS_GHC -fglasgow-exts -Wall -fno-warn-missing-signatures #-}
module Data.GMap.EitherMap
(
EitherMap
) where
import Data.GMap()
import Data.GMap.ChoiceMap
import Data.GMap.InjectKeys
--------------------------------------------------------------------------------------------
-- Map Type for Either --
--------------------------------------------------------------------------------------------
data InjectEither l r
instance Injection (InjectEither l r) (Either l r) (Choice2 l r) where
inject _ (Left l) = C1of2 l
inject _ (Right r) = C2of2 r
outject _ (C1of2 l) = Left l
outject _ (C2of2 r) = Right r
type EitherMap mapL mapR l r = InjectKeys (InjectEither l r) (Either l r) (Choice2 l r) (Choice2Map mapL mapR l r)