grisette-0.11.0.0: Symbolic evaluation as a library
Copyright(c) Sirui Lu 2021-2023
LicenseBSD-3-Clause (see the LICENSE file)
Maintainersiruilu@cs.washington.edu
StabilityExperimental
PortabilityGHC only
Safe HaskellSafe-Inferred
LanguageHaskell2010

Grisette.Internal.Utils.Derive

Description

 
Synopsis

Documentation

data Arity0 Source #

Type-level tag for generic derivation with arity 0.

Instances

Instances details
data EvalSymArgs Arity0 _ Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.EvalSym

data ExtractSymArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ExtractSym

data MergeableArgs Arity0 _ Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

data PPrintArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

data SimpleMergeableArgs Arity0 _ Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

data SubstSymArgs Arity0 _ _1 _2 _3 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SubstSym

data SymEqArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymEq

data SymOrdArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymOrd

data ToConArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToCon

data ToSymArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToSym

data AllSymsArgs Arity0 _ Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

data Arity1 Source #

Type-level tag for generic derivation with arity 1.

Instances

Instances details
GEvalSym Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.EvalSym

Methods

gevalSym :: EvalSymArgs Arity1 a -> Bool -> Model -> Par1 a -> Par1 a Source #

GExtractSym Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ExtractSym

Methods

gextractSymMaybe :: forall (knd :: SymbolKind) a. IsSymbolKind knd => ExtractSymArgs Arity1 knd a -> Par1 a -> Maybe (SymbolSet knd) Source #

GMergeable Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

GPPrint Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

GSimpleMergeable Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

GSubstSym Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SubstSym

Methods

gsubstSym :: forall cb sb (knd :: SymbolKind) a. (LinkedRep cb sb, IsSymbolKind knd) => SubstSymArgs Arity1 knd a cb sb -> TypedSymbol knd cb -> sb -> Par1 a -> Par1 a Source #

GSymEq Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymEq

Methods

gsymEq :: SymEqArgs Arity1 a b -> Par1 a -> Par1 b -> SymBool Source #

GSymOrd Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymOrd

GAllSyms Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

Methods

gallSymsS :: AllSymsArgs Arity1 a -> Par1 a -> [SomeSym] -> [SomeSym] Source #

GToCon Arity1 Par1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToCon

Methods

gtoCon :: ToConArgs Arity1 a b -> Par1 a -> Maybe (Par1 b) Source #

GToSym Arity1 Par1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToSym

Methods

gtoSym :: ToSymArgs Arity1 a b -> Par1 a -> Par1 b Source #

EvalSym1 a => GEvalSym Arity1 (Rec1 a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.EvalSym

Methods

gevalSym :: EvalSymArgs Arity1 a0 -> Bool -> Model -> Rec1 a a0 -> Rec1 a a0 Source #

ExtractSym1 a => GExtractSym Arity1 (Rec1 a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ExtractSym

Methods

gextractSymMaybe :: forall (knd :: SymbolKind) a0. IsSymbolKind knd => ExtractSymArgs Arity1 knd a0 -> Rec1 a a0 -> Maybe (SymbolSet knd) Source #

Mergeable1 f => GMergeable Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

PPrint1 f => GPPrint Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs Arity1 a ann -> PPrintType -> Int -> Rec1 f a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs Arity1 a ann -> [Rec1 f a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs Arity1 a ann -> Rec1 f a -> Bool Source #

SimpleMergeable1 f => GSimpleMergeable Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

Methods

gmrgIte :: SimpleMergeableArgs Arity1 a -> SymBool -> Rec1 f a -> Rec1 f a -> Rec1 f a Source #

SubstSym1 a => GSubstSym Arity1 (Rec1 a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SubstSym

Methods

gsubstSym :: forall cb sb (knd :: SymbolKind) a0. (LinkedRep cb sb, IsSymbolKind knd) => SubstSymArgs Arity1 knd a0 cb sb -> TypedSymbol knd cb -> sb -> Rec1 a a0 -> Rec1 a a0 Source #

SymEq1 f => GSymEq Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymEq

Methods

gsymEq :: SymEqArgs Arity1 a b -> Rec1 f a -> Rec1 f b -> SymBool Source #

SymOrd1 f => GSymOrd Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymOrd

Methods

gsymCompare :: SymOrdArgs Arity1 a b -> Rec1 f a -> Rec1 f b -> Union Ordering Source #

AllSyms1 f => GAllSyms Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

Methods

gallSymsS :: AllSymsArgs Arity1 a -> Rec1 f a -> [SomeSym] -> [SomeSym] Source #

ToCon1 f1 f2 => GToCon Arity1 (Rec1 f1) (Rec1 f2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToCon

Methods

gtoCon :: ToConArgs Arity1 a b -> Rec1 f1 a -> Maybe (Rec1 f2 b) Source #

ToSym1 f1 f2 => GToSym Arity1 (Rec1 f1) (Rec1 f2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToSym

Methods

gtoSym :: ToSymArgs Arity1 a b -> Rec1 f1 a -> Rec1 f2 b Source #

(EvalSym1 f, GEvalSym Arity1 g) => GEvalSym Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.EvalSym

Methods

gevalSym :: EvalSymArgs Arity1 a -> Bool -> Model -> (f :.: g) a -> (f :.: g) a Source #

(ExtractSym1 f, GExtractSym Arity1 g) => GExtractSym Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ExtractSym

Methods

gextractSymMaybe :: forall (knd :: SymbolKind) a. IsSymbolKind knd => ExtractSymArgs Arity1 knd a -> (f :.: g) a -> Maybe (SymbolSet knd) Source #

(Mergeable1 f, GMergeable Arity1 g) => GMergeable Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

(PPrint1 f, GPPrint Arity1 g) => GPPrint Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs Arity1 a ann -> PPrintType -> Int -> (f :.: g) a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs Arity1 a ann -> [(f :.: g) a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs Arity1 a ann -> (f :.: g) a -> Bool Source #

(SimpleMergeable1 f, GSimpleMergeable Arity1 g) => GSimpleMergeable Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

Methods

gmrgIte :: SimpleMergeableArgs Arity1 a -> SymBool -> (f :.: g) a -> (f :.: g) a -> (f :.: g) a Source #

(SubstSym1 f, GSubstSym Arity1 g) => GSubstSym Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SubstSym

Methods

gsubstSym :: forall cb sb (knd :: SymbolKind) a. (LinkedRep cb sb, IsSymbolKind knd) => SubstSymArgs Arity1 knd a cb sb -> TypedSymbol knd cb -> sb -> (f :.: g) a -> (f :.: g) a Source #

(SymEq1 f, GSymEq Arity1 g) => GSymEq Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymEq

Methods

gsymEq :: SymEqArgs Arity1 a b -> (f :.: g) a -> (f :.: g) b -> SymBool Source #

(SymOrd1 f, GSymOrd Arity1 g) => GSymOrd Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymOrd

Methods

gsymCompare :: SymOrdArgs Arity1 a b -> (f :.: g) a -> (f :.: g) b -> Union Ordering Source #

(AllSyms1 f, GAllSyms Arity1 g) => GAllSyms Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

Methods

gallSymsS :: AllSymsArgs Arity1 a -> (f :.: g) a -> [SomeSym] -> [SomeSym] Source #

(ToCon1 f1 f2, GToCon Arity1 g1 g2) => GToCon Arity1 (f1 :.: g1) (f2 :.: g2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToCon

Methods

gtoCon :: ToConArgs Arity1 a b -> (f1 :.: g1) a -> Maybe ((f2 :.: g2) b) Source #

(ToSym1 f1 f2, GToSym Arity1 g1 g2) => GToSym Arity1 (f1 :.: g1) (f2 :.: g2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToSym

Methods

gtoSym :: ToSymArgs Arity1 a b -> (f1 :.: g1) a -> (f2 :.: g2) b Source #

newtype EvalSymArgs Arity1 a Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.EvalSym

newtype EvalSymArgs Arity1 a = EvalSymArgs1 (Bool -> Model -> a -> a)
newtype ExtractSymArgs Arity1 knd a Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ExtractSym

newtype ExtractSymArgs Arity1 knd a = ExtractSymArgs1 (a -> Maybe (SymbolSet knd))
newtype MergeableArgs Arity1 a Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

data PPrintArgs Arity1 a ann Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

data PPrintArgs Arity1 a ann = PPrintArgs1 (Int -> a -> Doc ann) ([a] -> Doc ann)
newtype SimpleMergeableArgs Arity1 a Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

newtype SubstSymArgs Arity1 knd a cb sb Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SubstSym

newtype SubstSymArgs Arity1 knd a cb sb = SubstSymArgs1 (TypedSymbol knd cb -> sb -> a -> a)
newtype SymEqArgs Arity1 a b Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymEq

newtype SymEqArgs Arity1 a b = SymEqArgs1 (a -> b -> SymBool)
newtype SymOrdArgs Arity1 a b Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SymOrd

newtype SymOrdArgs Arity1 a b = SymOrdArgs1 (a -> b -> Union Ordering)
newtype ToConArgs Arity1 a b Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToCon

newtype ToConArgs Arity1 a b = ToConArgs1 (a -> Maybe b)
data ToSymArgs Arity1 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.ToSym

data ToSymArgs Arity1 _ _1 where
newtype AllSymsArgs Arity1 a Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

newtype AllSymsArgs Arity1 a = AllSymsArgs1 (a -> [SomeSym] -> [SomeSym])