clash-lib- CAES Language for Synchronous Hardware - As a Library

Safe HaskellNone



Data Constructors in CoreHW



data DataCon Source

Data Constructor




dcName :: DcName

Name of the DataCon

dcTag :: ConTag

Syntactical position in the type definition

dcType :: Type

Type of the 'DataCon

dcUnivTyVars :: [TyName]

Universally quantified type-variables, these type variables are also part of the result type of the DataCon

dcExtTyVars :: [TyName]

Existentially quantified type-variables, these type variables are not part of the result of the DataCon, but only of the arguments.

dcArgTys :: [Type]

Argument types


Eq DataCon 
Ord DataCon 
Show DataCon 
Rep DataCon 
Alpha DataCon 
Pretty DataCon 
(Sat (ctx0 DcName), Sat (ctx0 ConTag), Sat (ctx0 Type), Sat (ctx0 [TyName]), Sat (ctx0 [Type])) => Rep1 ctx0 DataCon 
Subst Term DataCon 
Subst Type DataCon 

type DcName = Name DataConSource

DataCon reference

type ConTag = IntSource

Syntactical position of the DataCon in the type definition

dataConInstArgTys :: DataCon -> [Type] -> [Type]Source

Given a DataCon and a list of types, the type variables of the DataCon type are substituted for the list of types. The argument types are returned.

The list of types should be equal to the number of type variables, otherwise an error is reported.