Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module defines Haskell data types that simplify construction of PLC types and terms.
Synopsis
-
data
RecursiveType
uni fun ann =
RecursiveType
{
- _recursiveType :: Type TyName uni ann
- _recursiveWrap :: forall term. TermLike term TyName Name uni fun => [ Type TyName uni ann] -> term ann -> term ann
- makeRecursiveType :: FromDataPieces uni ann ( RecursiveType uni fun ann)
Documentation
data RecursiveType uni fun ann Source #
A recursive type packaged along with a specified
Wrap
that allows to construct elements
of this type.
RecursiveType | |
|
makeRecursiveType :: FromDataPieces uni ann ( RecursiveType uni fun ann) Source #
Construct a
RecursiveType
out of its name, variables bound in its pattern functor
and the body of the pattern functor. The 0- and 1-ary pattern functors are special-cased,
while in the general case the pattern functor and type arguments get encoded into a 1-ary
form first.