clash-lib-0.99.2: 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

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 Source # 
Instance details

Defined in Clash.Core.TyCon

Methods

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

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

Ord TyCon Source # 
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 Source # 
Instance details

Defined in Clash.Core.TyCon

Methods

showsPrec :: Int -> TyCon -> ShowS #

show :: TyCon -> String #

showList :: [TyCon] -> ShowS #

Generic TyCon Source # 
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 Source # 
Instance details

Defined in Clash.Core.TyCon

Methods

rnf :: TyCon -> () #

Alpha TyCon Source # 
Instance details

Defined in Clash.Core.TyCon

Methods

aeq' :: AlphaCtx -> TyCon -> TyCon -> Bool

fvAny' :: (Contravariant f, Applicative f) => AlphaCtx -> (AnyName -> f AnyName) -> TyCon -> f TyCon

close :: AlphaCtx -> NamePatFind -> TyCon -> TyCon

open :: AlphaCtx -> NthPatFind -> TyCon -> TyCon

isPat :: TyCon -> DisjointSet AnyName

isTerm :: TyCon -> All

isEmbed :: TyCon -> Bool

nthPatFind :: TyCon -> NthPatFind

namePatFind :: TyCon -> NamePatFind

swaps' :: AlphaCtx -> Perm AnyName -> TyCon -> TyCon

lfreshen' :: LFresh m => AlphaCtx -> TyCon -> (TyCon -> Perm AnyName -> m b) -> m b

freshen' :: Fresh m => AlphaCtx -> TyCon -> m (TyCon, Perm AnyName)

acompare' :: AlphaCtx -> TyCon -> TyCon -> Ordering

Pretty TyCon Source # 
Instance details

Defined in Clash.Core.Pretty

Methods

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

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

type Rep TyCon Source # 
Instance details

Defined in Clash.Core.TyCon

type TyConName = Name TyCon Source #

TyCon reference

data AlgTyConRhs Source #

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 Source # 
Instance details

Defined in Clash.Core.TyCon

Generic AlgTyConRhs Source # 
Instance details

Defined in Clash.Core.TyCon

Associated Types

type Rep AlgTyConRhs :: * -> * #

NFData AlgTyConRhs Source # 
Instance details

Defined in Clash.Core.TyCon

Methods

rnf :: AlgTyConRhs -> () #

Alpha AlgTyConRhs Source # 
Instance details

Defined in Clash.Core.TyCon

Methods

aeq' :: AlphaCtx -> AlgTyConRhs -> AlgTyConRhs -> Bool

fvAny' :: (Contravariant f, Applicative f) => AlphaCtx -> (AnyName -> f AnyName) -> AlgTyConRhs -> f AlgTyConRhs

close :: AlphaCtx -> NamePatFind -> AlgTyConRhs -> AlgTyConRhs

open :: AlphaCtx -> NthPatFind -> AlgTyConRhs -> AlgTyConRhs

isPat :: AlgTyConRhs -> DisjointSet AnyName

isTerm :: AlgTyConRhs -> All

isEmbed :: AlgTyConRhs -> Bool

nthPatFind :: AlgTyConRhs -> NthPatFind

namePatFind :: AlgTyConRhs -> NamePatFind

swaps' :: AlphaCtx -> Perm AnyName -> AlgTyConRhs -> AlgTyConRhs

lfreshen' :: LFresh m => AlphaCtx -> AlgTyConRhs -> (AlgTyConRhs -> Perm AnyName -> m b) -> m b

freshen' :: Fresh m => AlphaCtx -> AlgTyConRhs -> m (AlgTyConRhs, Perm AnyName)

acompare' :: AlphaCtx -> AlgTyConRhs -> AlgTyConRhs -> Ordering

type Rep AlgTyConRhs Source # 
Instance details

Defined in Clash.Core.TyCon

type Rep AlgTyConRhs = D1 (MetaData "AlgTyConRhs" "Clash.Core.TyCon" "clash-lib-0.99.2-inplace" 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 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