clash-lib-0.99.3: 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 #

Type Constructor

Constructors

AlgTyCon

Algorithmic DataCons

Fields

FunTyCon

Function TyCons (e.g. type families)

Fields

PrimTyCon

Primitive TyCons

Fields

SuperKindTyCon

To close the loop on the type hierarchy

Fields

Instances
Eq TyCon # 
Instance details

Defined in Clash.Core.TyCon

Methods

(==) :: TyCon -> TyCon -> Bool #

(/=) :: TyCon -> TyCon -> Bool #

Ord TyCon # 
Instance details

Defined in Clash.Core.TyCon

Methods

compare :: TyCon -> TyCon -> Ordering #

(<) :: TyCon -> TyCon -> Bool #

(<=) :: TyCon -> TyCon -> Bool #

(>) :: TyCon -> TyCon -> Bool #

(>=) :: TyCon -> TyCon -> Bool #

max :: TyCon -> TyCon -> TyCon #

min :: TyCon -> TyCon -> TyCon #

Show TyCon # 
Instance details

Defined in Clash.Core.TyCon

Methods

showsPrec :: Int -> TyCon -> ShowS #

show :: TyCon -> String #

showList :: [TyCon] -> ShowS #

Generic TyCon # 
Instance details

Defined in Clash.Core.TyCon

Associated Types

type Rep TyCon :: * -> * #

Methods

from :: TyCon -> Rep TyCon x #

to :: Rep TyCon x -> TyCon #

NFData TyCon # 
Instance details

Defined in Clash.Core.TyCon

Methods

rnf :: TyCon -> () #

Alpha TyCon # 
Instance details

Defined in Clash.Core.TyCon

Pretty TyCon # 
Instance details

Defined in Clash.Core.Pretty

Methods

ppr :: LFresh m => TyCon -> m Doc #

pprPrec :: LFresh m => Rational -> TyCon -> m Doc #

type Rep TyCon # 
Instance details

Defined in Clash.Core.TyCon

type TyConName = Name TyCon #

TyCon reference

data AlgTyConRhs #

The RHS of an Algebraic Datatype

Constructors

DataTyCon 

Fields

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.

Instances
Show AlgTyConRhs # 
Instance details

Defined in Clash.Core.TyCon

Generic AlgTyConRhs # 
Instance details

Defined in Clash.Core.TyCon

Associated Types

type Rep AlgTyConRhs :: * -> * #

NFData AlgTyConRhs # 
Instance details

Defined in Clash.Core.TyCon

Methods

rnf :: AlgTyConRhs -> () #

Alpha AlgTyConRhs # 
Instance details

Defined in Clash.Core.TyCon

type Rep AlgTyConRhs # 
Instance details

Defined in Clash.Core.TyCon

type Rep AlgTyConRhs = D1 (MetaData "AlgTyConRhs" "Clash.Core.TyCon" "clash-lib-0.99.3-72cApBvhVLDGFY9DE1al10" False) (C1 (MetaCons "DataTyCon" PrefixI True) (S1 (MetaSel (Just "dataCons") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [DataCon])) :+: C1 (MetaCons "NewTyCon" PrefixI True) (S1 (MetaSel (Just "dataCon") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 DataCon) :*: S1 (MetaSel (Just "ntEtadRhs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ([TyName], Type))))

mkKindTyCon :: TyConName -> Kind -> TyCon #

Create a Kind out of a TyConName

isTupleTyConLike :: TyConName -> Bool #

Does the TyCon look like a tuple TyCon

tyConDataCons :: TyCon -> [DataCon] #

Get the DataCons belonging to a TyCon