grisette-0.3.1.1: src/Grisette/Core/Control/Monad/UnionM.hs-boot
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Grisette.Core.Control.Monad.UnionM (UnionM (..)) where
import Grisette.Core.Data.Class.Mergeable (MergingStrategy)
import Grisette.Core.Data.Class.SimpleMergeable (UnionLike)
import Grisette.Core.Data.Union (Union)
data UnionM a where
-- | 'UnionM' with no 'Mergeable' knowledge.
UAny ::
-- | Original 'Union'.
Union a ->
UnionM a
-- | 'UnionM' with 'Mergeable' knowledge.
UMrg ::
-- | Cached merging strategy.
MergingStrategy a ->
-- | Merged Union
Union a ->
UnionM a
instance UnionLike UnionM
instance Functor UnionM
instance Applicative UnionM
instance Monad UnionM