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

Grisette.Internal.TH.ADT

Description

 
Synopsis

Documentation

makeGrisetteADTWithClasses :: DeriveConfig -> Name -> [Name] -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate instances for the ADT with the given classes, and smart constructors for each constructor.

The derivation is done with the given configuration.

makeGrisetteBasicADT :: Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate most useful instances for the ADT, and smart constructors for each constructor.

This does not include Ord instances.

See derive, basicClasses0, and makeSmartCtor for more details.

makeGrisetteBasicADT1 :: Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate most useful instances for the ADT, and smart constructors for each constructor.

This does not include Ord instances.

See derive, basicClasses01, and makeSmartCtor for more details.

makeGrisetteBasicADT2 :: Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate most useful instances for the ADT, and smart constructors for each constructor.

This does not include Ord instances.

See derive, basicClasses012, and makeSmartCtor for more details.

makeGrisetteBasicADTWith :: DeriveConfig -> Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate most useful instances for the ADT, and smart constructors for each constructor.

This does not include Ord instances.

The derivation is done with the given configuration.

See deriveWith, basicClasses0, and makeSmartCtor for more details.

makeGrisetteBasicADT1With :: DeriveConfig -> Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate most useful instances for the ADT, and smart constructors for each constructor.

This does not include Ord instances.

The derivation is done with the given configuration.

See deriveWith, basicClasses01, and makeSmartCtor for more details.

makeGrisetteBasicADT2With :: DeriveConfig -> Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate most useful instances for the ADT, and smart constructors for each constructor.

This does not include Ord instances.

The derivation is done with the given configuration.

See deriveWith, basicClasses012, and makeSmartCtor for more details.

makeGrisetteADT :: Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate almost all useful instances for the ADT, and smart constructors for each constructor.

This cannot be used for ADTs with existential type variables.

See derive, allClasses0, and makeSmartCtor for more details.

makeGrisetteADT1 :: Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate almost all useful instances for the ADT, and smart constructors for each constructor.

This cannot be used for ADTs with existential type variables.

See derive, allClasses01, and makeSmartCtor for more details.

makeGrisetteADT2 :: Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate almost all useful instances for the ADT, and smart constructors for each constructor.

This cannot be used for ADTs with existential type variables.

See derive, allClasses012, and makeSmartCtor for more details.

makeGrisetteADTWith :: DeriveConfig -> Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate almost all useful instances for the ADT, and smart constructors for each constructor.

This cannot be used for ADTs with existential type variables.

The derivation is done with the given configuration.

See deriveWith, allClasses0, and makeSmartCtor for more details.

makeGrisetteADT1With :: DeriveConfig -> Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate almost all useful instances for the ADT, and smart constructors for each constructor.

This cannot be used for ADTs with existential type variables.

The derivation is done with the given configuration.

See deriveWith, allClasses01, and makeSmartCtor for more details.

makeGrisetteADT2With :: DeriveConfig -> Name -> Q [Dec] Source #

Make an ADT compatible with Grisette.

This will generate almost all useful instances for the ADT, and smart constructors for each constructor.

This cannot be used for ADTs with existential type variables.

The derivation is done with the given configuration.

See deriveWith, allClasses012, and makeSmartCtor for more details.