Copyright | (c) Sirui Lu 2025 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.TH.ADT
Description
Synopsis
- makeGrisetteADTWithClasses :: DeriveConfig -> Name -> [Name] -> Q [Dec]
- makeGrisetteBasicADT :: Name -> Q [Dec]
- makeGrisetteBasicADT1 :: Name -> Q [Dec]
- makeGrisetteBasicADT2 :: Name -> Q [Dec]
- makeGrisetteBasicADTWith :: DeriveConfig -> Name -> Q [Dec]
- makeGrisetteBasicADT1With :: DeriveConfig -> Name -> Q [Dec]
- makeGrisetteBasicADT2With :: DeriveConfig -> Name -> Q [Dec]
- makeGrisetteADT :: Name -> Q [Dec]
- makeGrisetteADT1 :: Name -> Q [Dec]
- makeGrisetteADT2 :: Name -> Q [Dec]
- makeGrisetteADTWith :: DeriveConfig -> Name -> Q [Dec]
- makeGrisetteADT1With :: DeriveConfig -> Name -> Q [Dec]
- makeGrisetteADT2With :: DeriveConfig -> Name -> Q [Dec]
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.