free-foil-0.4.0: Efficient Type-Safe Capture-Avoiding Substitution for Free (Scoped Monads)
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Foil.TH.MkInstancesFoil

Synopsis

Documentation

mkInstancesFoil Source #

Arguments

:: Name

Type name for raw terms.

-> Name

Type name for raw variable identifiers.

-> Name

Type name for raw scoped terms.

-> Name

Type name for raw patterns.

-> Q [Dec] 

Generate Sinkable and CoSinkable instances.

Since: 0.0.1

deriveCoSinkable Source #

Arguments

:: Name

Type name for raw variable identifiers.

-> Name

Type name for raw patterns.

-> Q [Dec] 

Generate Sinkable and CoSinkable instances.

Since: 0.1.0

deriveUnifiablePattern Source #

Arguments

:: Name

Type name for raw variable identifiers.

-> Name

Type name for raw patterns.

-> Q [Dec] 

Deprecated: This deriver does not work and has no call sites. It reifies the raw (BNFC) pattern type and guesses the scope-safe type and constructor names by prefixing Foil, and it rejects GADT constructors -- so it cannot handle the pattern types that mkFoilPattern and mkFreeFoil generate, nor a hand-written pattern GADT. Instead, derive GenericK and take an empty instance (see Control.Monad.Foil), or write the instance by hand as Language.LambdaPi.Impl.Foil does. Note that the empty instance compares only the binders; see UnifiablePattern. Structural derivation is tracked in https://github.com/fizruk/free-foil/issues/23. To be removed in the next major release.

Generate a structural UnifiablePattern instance, comparing constructors and non-binding fields rather than only the binders.

This deriver does not work and has no call sites. See the deprecation note.

Since: 0.1.0