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

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