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

Grisette.Internal.TH.DeriveUnifiedInterface

Description

 
Synopsis

Documentation

data TypeableMode Source #

Add a Typeable constraint to the modes.

Constructors

TypeableMode 

data PrimaryUnifiedConstraint Source #

Add a primary unified constraint that applies to all the type parameters with the desired kind.

data UnifiedInstance Source #

Provide an instance for a unified interface.

deriveUnifiedInterfaceExtra :: [SomeDeriveTypeParamHandler] -> Name -> Name -> Name -> Q [Dec] Source #

Derive an instance for a unified interface, with extra handlers.

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

Derive an instance for a unified interface.

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

Derive instances for a list of types for a unified interface.

deriveUnifiedInterface1Extra :: [SomeDeriveTypeParamHandler] -> Name -> Name -> Name -> Name -> Name -> Q [Dec] Source #

Derive an instance for a unified interface for functors, with extra handlers.

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

Derive an instance for a unified interface for functors.

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

Derive instances for a list of types for a unified interface for functors.

deriveFunctorArgUnifiedInterfaceExtra :: [SomeDeriveTypeParamHandler] -> Name -> Name -> Name -> Name -> Name -> Q [Dec] Source #

Derive an instance for a unified interface, with extra handlers. The type being derived may have functor type parameters.

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

Derive an instance for a unified interface. The type being derived may have functor type parameters.

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

Derive instances for a list of types for a unified interface. The types being derived may have functor type parameters.