{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE Trustworthy #-}
module Grisette.Core.BuiltinUnionWrappers
(
mrgTrue,
mrgFalse,
mrgUnit,
mrgTuple2,
mrgTuple3,
mrgJust,
mrgNothing,
mrgLeft,
mrgRight,
mrgInL,
mrgInR,
mrgAssertionViolation,
mrgAssumptionViolation,
)
where
import Data.Functor.Sum (Sum)
import Grisette.Core.Control.Exception (VerificationConditions)
import Grisette.Core.Data.Class.SimpleMergeable (mrgSingle)
import Grisette.Core.TH (makeUnionWrapper, makeUnionWrapper')
$(makeUnionWrapper "mrg" ''Bool)
$(makeUnionWrapper' ["mrgUnit"] ''())
$(makeUnionWrapper' ["mrgTuple2"] ''(,))
$(makeUnionWrapper' ["mrgTuple3"] ''(,,))
$(makeUnionWrapper "mrg" ''Maybe)
$(makeUnionWrapper "mrg" ''Either)
$(makeUnionWrapper "mrg" ''Sum)
$(makeUnionWrapper "mrg" ''VerificationConditions)