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

Safe HaskellNone
LanguageHaskell2010

CLaSH.Core.TyCon

Description

Type Constructors in CoreHW

Synopsis

Documentation

data TyCon Source

Type Constructor

Constructors

AlgTyCon

Algorithmic DataCons

Fields

tyConName :: TyConName

Name of the TyCon

tyConKind :: Kind

Kind of the TyCon

tyConArity :: Int

Number of type arguments

algTcRhs :: AlgTyConRhs

DataCon definitions

FunTyCon

Function TyCons (e.g. type families)

Fields

tyConName :: TyConName

Name of the TyCon

tyConKind :: Kind

Kind of the TyCon

tyConArity :: Int

Number of type arguments

tyConSubst :: [([Type], Type)]

List of: ([LHS match types], RHS type)

PrimTyCon

Primitive TyCons

Fields

tyConName :: TyConName

Name of the TyCon

tyConKind :: Kind

Kind of the TyCon

tyConArity :: Int

Number of type arguments

SuperKindTyCon

To close the loop on the type hierarchy

Fields

tyConName :: TyConName

Name of the TyCon

type TyConName = Name TyCon Source

TyCon reference

data AlgTyConRhs Source

The RHS of an Algebraic Datatype

Constructors

DataTyCon 

Fields

dataCons :: [DataCon]

The DataCons of a TyCon

NewTyCon 

Fields

dataCon :: DataCon

The newtype DataCon

ntEtadRhs :: ([TyName], Type)

The argument type of the newtype DataCon in eta-reduced form, which is just the representation of the TyCon. The TyName's are the type-variables from the corresponding TyCon.

mkKindTyCon :: TyConName -> Kind -> TyCon Source

Create a Kind out of a TyConName

isTupleTyConLike :: TyConName -> Bool Source

Does the TyCon look like a tuple TyCon

tyConDataCons :: TyCon -> [DataCon] Source

Get the DataCons belonging to a TyCon