grisette-0.5.0.0: test/Grisette/TestUtil/NoMerge.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
module Grisette.TestUtil.NoMerge
( NoMerge (..),
oneNotMerged,
noMergeNotMerged,
)
where
import GHC.Generics (Generic)
import Grisette
( Mergeable (rootStrategy),
MergingStrategy (NoStrategy),
UnionM,
UnionMergeable1 (mrgIfPropagatedStrategy),
)
data NoMerge = NoMerge
deriving (Show, Eq, Generic)
instance Mergeable NoMerge where
rootStrategy = NoStrategy
oneNotMerged :: UnionM Int
oneNotMerged = mrgIfPropagatedStrategy "a" (return 1) (return 1)
noMergeNotMerged :: UnionM NoMerge
noMergeNotMerged = mrgIfPropagatedStrategy "a" (return NoMerge) (return NoMerge)