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

Copyright(C) 2017 Google Inc.
LicenseBSD2 (see the file LICENSE)
MaintainerChristiaan Baaij <christiaan.baaij@gmail.com>
Safe HaskellNone
LanguageHaskell2010

Clash.Core.Name

Description

Names

Synopsis

Documentation

data Name a Source #

Constructors

Name 

Instances

Subst b (Name a) Source # 

Methods

isvar :: Name a -> Maybe (SubstName (Name a) b) #

isCoerceVar :: Name a -> Maybe (SubstCoerce (Name a) b) #

subst :: Name b -> b -> Name a -> Name a #

substs :: [(Name b, b)] -> Name a -> Name a #

Eq (Name a) Source # 

Methods

(==) :: Name a -> Name a -> Bool #

(/=) :: Name a -> Name a -> Bool #

Ord (Name a) Source # 

Methods

compare :: Name a -> Name a -> Ordering #

(<) :: Name a -> Name a -> Bool #

(<=) :: Name a -> Name a -> Bool #

(>) :: Name a -> Name a -> Bool #

(>=) :: Name a -> Name a -> Bool #

max :: Name a -> Name a -> Name a #

min :: Name a -> Name a -> Name a #

Show (Name a) Source # 

Methods

showsPrec :: Int -> Name a -> ShowS #

show :: Name a -> String #

showList :: [Name a] -> ShowS #

Generic (Name a) Source # 

Associated Types

type Rep (Name a) :: * -> * #

Methods

from :: Name a -> Rep (Name a) x #

to :: Rep (Name a) x -> Name a #

Hashable (Name a) Source # 

Methods

hashWithSalt :: Int -> Name a -> Int #

hash :: Name a -> Int #

NFData (Name a) Source # 

Methods

rnf :: Name a -> () #

Typeable * a => Alpha (Name a) Source # 

Methods

aeq' :: AlphaCtx -> Name a -> Name a -> Bool #

fvAny' :: (Contravariant f, Applicative f) => AlphaCtx -> (AnyName -> f AnyName) -> Name a -> f (Name a) #

close :: AlphaCtx -> NamePatFind -> Name a -> Name a #

open :: AlphaCtx -> NthPatFind -> Name a -> Name a #

isPat :: Name a -> DisjointSet AnyName #

isTerm :: Name a -> All #

isEmbed :: Name a -> Bool #

nthPatFind :: Name a -> NthPatFind #

namePatFind :: Name a -> NamePatFind #

swaps' :: AlphaCtx -> Perm AnyName -> Name a -> Name a #

lfreshen' :: LFresh m => AlphaCtx -> Name a -> (Name a -> Perm AnyName -> m b) -> m b #

freshen' :: Fresh m => AlphaCtx -> Name a -> m (Name a, Perm AnyName) #

acompare' :: AlphaCtx -> Name a -> Name a -> Ordering #

Pretty (Name a) Source # 

Methods

ppr :: LFresh m => Name a -> m Doc Source #

pprPrec :: LFresh m => Rational -> Name a -> m Doc Source #

type Rep (Name a) Source # 
type Rep (Name a) = D1 * (MetaData "Name" "Clash.Core.Name" "clash-lib-0.99-CApG5XjEMCZFUVyS8kIjXv" False) (C1 * (MetaCons "Name" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "nameSort") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * NameSort)) ((:*:) * (S1 * (MetaSel (Just Symbol "nameOcc") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (OccName a))) (S1 * (MetaSel (Just Symbol "nameLoc") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * SrcSpan)))))

type OccName a = Name a Source #

data NameSort Source #

Constructors

User 
System 
Internal 

Instances

Eq NameSort Source # 
Ord NameSort Source # 
Show NameSort Source # 
Generic NameSort Source # 

Associated Types

type Rep NameSort :: * -> * #

Methods

from :: NameSort -> Rep NameSort x #

to :: Rep NameSort x -> NameSort #

Hashable NameSort Source # 

Methods

hashWithSalt :: Int -> NameSort -> Int #

hash :: NameSort -> Int #

NFData NameSort Source # 

Methods

rnf :: NameSort -> () #

Alpha NameSort Source # 
type Rep NameSort Source # 
type Rep NameSort = D1 * (MetaData "NameSort" "Clash.Core.Name" "clash-lib-0.99-CApG5XjEMCZFUVyS8kIjXv" False) ((:+:) * (C1 * (MetaCons "User" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "System" PrefixI False) (U1 *)) (C1 * (MetaCons "Internal" PrefixI False) (U1 *))))

noSrcSpan :: SrcSpan #

Built-in "bad" SrcSpans for common sources of location uncertainty