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

Copyright(C) 2012-2016, University of Twente
LicenseBSD2 (see the file LICENSE)
MaintainerChristiaan Baaij <>
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

type DcName = Name DataCon Source

DataCon reference

type ConTag = Int Source

Syntactical position of the DataCon in the type definition

dataConInstArgTys :: DataCon -> [Type] -> Maybe [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 Nothing is returned.