| Copyright | (C) 2012-2016 University of Twente 2021-2024 QBayLogic B.V. |
|---|---|
| License | BSD2 (see the file LICENSE) |
| Maintainer | QBayLogic B.V. <devops@qbaylogic.com> |
| Safe Haskell | None |
| Language | Haskell2010 |
Clash.Core.TyCon
Description
Type Constructors in CoreHW
Synopsis
- data TyCon
- = AlgTyCon { }
- | PromotedDataCon { }
- | FunTyCon { }
- | PrimTyCon { }
- type TyConName = Name TyCon
- type TyConMap = UniqMap TyCon
- data AlgTyConRhs
- mkKindTyCon :: TyConName -> Kind -> TyCon
- isTupleTyConLike :: TyConName -> Bool
- isPrimTc :: TyCon -> Bool
- isNewTypeTc :: TyCon -> Bool
- isPromotedDc :: TyCon -> Bool
- tyConDataCons :: TyCon -> [DataCon]
Documentation
Type Constructor
Constructors
| AlgTyCon | Algorithmic DataCons |
| PromotedDataCon | |
| FunTyCon | Function TyCons (e.g. type families) |
| PrimTyCon | Primitive TyCons |
Instances
| Binary TyCon Source # | |||||
| HasType TyCon Source # | |||||
Defined in Clash.Core.HasType Methods coreTypeOf :: TyCon -> Type Source # | |||||
| PrettyPrec TyCon Source # | |||||
| Uniquable TyCon Source # | |||||
| NFData TyCon Source # | |||||
Defined in Clash.Core.TyCon | |||||
| Generic TyCon Source # | |||||
Defined in Clash.Core.TyCon Associated Types
| |||||
| Show TyCon Source # | |||||
| Eq TyCon Source # | |||||
| type Rep TyCon Source # | |||||
Defined in Clash.Core.TyCon type Rep TyCon = D1 ('MetaData "TyCon" "Clash.Core.TyCon" "clash-lib-1.8.4-LRerWkkgeHOGhsvLM5mWaX" 'False) ((C1 ('MetaCons "AlgTyCon" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tyConUniq") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: (S1 ('MetaSel ('Just "tyConName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyConName) :*: S1 ('MetaSel ('Just "tyConKind") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind))) :*: (S1 ('MetaSel ('Just "tyConArity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: (S1 ('MetaSel ('Just "algTcRhs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AlgTyConRhs) :*: S1 ('MetaSel ('Just "isClassTc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))) :+: C1 ('MetaCons "PromotedDataCon" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tyConUniq") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: S1 ('MetaSel ('Just "tyConName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyConName)) :*: (S1 ('MetaSel ('Just "tyConKind") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind) :*: (S1 ('MetaSel ('Just "tyConArity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "tyConData") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon))))) :+: (C1 ('MetaCons "FunTyCon" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tyConUniq") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: S1 ('MetaSel ('Just "tyConName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyConName)) :*: (S1 ('MetaSel ('Just "tyConKind") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind) :*: (S1 ('MetaSel ('Just "tyConArity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "tyConSubst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [([Type], Type)])))) :+: C1 ('MetaCons "PrimTyCon" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tyConUniq") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: S1 ('MetaSel ('Just "tyConName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyConName)) :*: (S1 ('MetaSel ('Just "tyConKind") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind) :*: S1 ('MetaSel ('Just "tyConArity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int))))) | |||||
data AlgTyConRhs Source #
The RHS of an Algebraic Datatype
Instances
| Binary AlgTyConRhs Source # | |||||
Defined in Clash.Core.TyCon | |||||
| NFData AlgTyConRhs Source # | |||||
Defined in Clash.Core.TyCon Methods rnf :: AlgTyConRhs -> () | |||||
| Generic AlgTyConRhs Source # | |||||
Defined in Clash.Core.TyCon Associated Types
| |||||
| Show AlgTyConRhs Source # | |||||
Defined in Clash.Core.TyCon Methods showsPrec :: Int -> AlgTyConRhs -> ShowS # show :: AlgTyConRhs -> String # showList :: [AlgTyConRhs] -> ShowS # | |||||
| type Rep AlgTyConRhs Source # | |||||
Defined in Clash.Core.TyCon type Rep AlgTyConRhs = D1 ('MetaData "AlgTyConRhs" "Clash.Core.TyCon" "clash-lib-1.8.4-LRerWkkgeHOGhsvLM5mWaX" '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 ([TyVar], Type)))) | |||||
isTupleTyConLike :: TyConName -> Bool Source #
Does the TyCon look like a tuple TyCon
isNewTypeTc :: TyCon -> Bool Source #
isPromotedDc :: TyCon -> Bool Source #
tyConDataCons :: TyCon -> [DataCon] Source #
Get the DataCons belonging to a TyCon