elara
Safe HaskellNone
LanguageGHC2024

Elara.AST.Name

Synopsis

Documentation

newtype ModuleName Source #

Constructors

ModuleName (NonEmpty Text) 

Instances

Instances details
ToJSON ModuleName Source # 
Instance details

Defined in Elara.AST.Name

NameLike ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Pretty ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Data ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleName -> c ModuleName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModuleName #

toConstr :: ModuleName -> Constr #

dataTypeOf :: ModuleName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModuleName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModuleName) #

gmapT :: (forall b. Data b => b -> b) -> ModuleName -> ModuleName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r #

gmapQ :: (forall d. Data d => d -> u) -> ModuleName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName #

Generic ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep ModuleName 
Instance details

Defined in Elara.AST.Name

type Rep ModuleName = D1 ('MetaData "ModuleName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "ModuleName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Text))))
Show ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Eq ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Ord ModuleName Source # 
Instance details

Defined in Elara.AST.Name

Hashable ModuleName Source # 
Instance details

Defined in Elara.AST.Name

type Rep ModuleName Source # 
Instance details

Defined in Elara.AST.Name

type Rep ModuleName = D1 ('MetaData "ModuleName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "ModuleName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Text))))

data VarName Source #

A valid Variable name. This includes anything that could appear in `let [name] = ...` In other words, a normal alphanumeric name, or a parenthesis wrapped operator name

Constructors

NormalVarName LowerAlphaName

A normal alphanumeric name

OperatorVarName OpName

An operator var name. Note that while in the source code, the name must be surrounded in parentheses, this is not the case in the AST!

Instances

Instances details
ToJSON VarName Source # 
Instance details

Defined in Elara.AST.Name

NameLike VarName Source # 
Instance details

Defined in Elara.AST.Name

ToName VarName Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: VarName -> Name Source #

Pretty VarName Source # 
Instance details

Defined in Elara.AST.Name

Data VarName Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VarName -> c VarName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c VarName #

toConstr :: VarName -> Constr #

dataTypeOf :: VarName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c VarName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c VarName) #

gmapT :: (forall b. Data b => b -> b) -> VarName -> VarName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VarName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VarName -> r #

gmapQ :: (forall d. Data d => d -> u) -> VarName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> VarName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> VarName -> m VarName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VarName -> m VarName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VarName -> m VarName #

IsString VarName Source # 
Instance details

Defined in Elara.AST.Name

Methods

fromString :: String -> VarName #

Generic VarName Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep VarName 
Instance details

Defined in Elara.AST.Name

type Rep VarName = D1 ('MetaData "VarName" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "NormalVarName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LowerAlphaName)) :+: C1 ('MetaCons "OperatorVarName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OpName)))

Methods

from :: VarName -> Rep VarName x #

to :: Rep VarName x -> VarName #

Show VarName Source # 
Instance details

Defined in Elara.AST.Name

Eq VarName Source # 
Instance details

Defined in Elara.AST.Name

Methods

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

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

Ord VarName Source # 
Instance details

Defined in Elara.AST.Name

Hashable VarName Source # 
Instance details

Defined in Elara.AST.Name

Methods

hashWithSalt :: Int -> VarName -> Int #

hash :: VarName -> Int #

Pretty (MaybeQualified VarName) Source # 
Instance details

Defined in Elara.AST.Name

type Rep VarName Source # 
Instance details

Defined in Elara.AST.Name

type Rep VarName = D1 ('MetaData "VarName" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "NormalVarName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LowerAlphaName)) :+: C1 ('MetaCons "OperatorVarName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OpName)))

newtype LowerAlphaName Source #

A lowercase alphanumeric name. Could be used for variables or type variables Since type variables can't be operators though, we don't use VarName for them

Constructors

LowerAlphaName Text 

Instances

Instances details
ToJSON LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

NameLike LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Pretty LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Data LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LowerAlphaName -> c LowerAlphaName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LowerAlphaName #

toConstr :: LowerAlphaName -> Constr #

dataTypeOf :: LowerAlphaName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LowerAlphaName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LowerAlphaName) #

gmapT :: (forall b. Data b => b -> b) -> LowerAlphaName -> LowerAlphaName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LowerAlphaName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LowerAlphaName -> r #

gmapQ :: (forall d. Data d => d -> u) -> LowerAlphaName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LowerAlphaName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LowerAlphaName -> m LowerAlphaName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LowerAlphaName -> m LowerAlphaName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LowerAlphaName -> m LowerAlphaName #

IsString LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Generic LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep LowerAlphaName 
Instance details

Defined in Elara.AST.Name

type Rep LowerAlphaName = D1 ('MetaData "LowerAlphaName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "LowerAlphaName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))
Show LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Eq LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Ord LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

Hashable LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

type Rep LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

type Rep LowerAlphaName = D1 ('MetaData "LowerAlphaName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "LowerAlphaName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

newtype TypeName Source #

Constructors

TypeName Text 

Instances

Instances details
ToJSON TypeName Source # 
Instance details

Defined in Elara.AST.Name

NameLike TypeName Source # 
Instance details

Defined in Elara.AST.Name

ToName TypeName Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: TypeName -> Name Source #

Pretty TypeName Source # 
Instance details

Defined in Elara.AST.Name

Data TypeName Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeName -> c TypeName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeName #

toConstr :: TypeName -> Constr #

dataTypeOf :: TypeName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeName) #

gmapT :: (forall b. Data b => b -> b) -> TypeName -> TypeName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeName -> r #

gmapQ :: (forall d. Data d => d -> u) -> TypeName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeName -> m TypeName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeName -> m TypeName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeName -> m TypeName #

IsString TypeName Source # 
Instance details

Defined in Elara.AST.Name

Generic TypeName Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep TypeName 
Instance details

Defined in Elara.AST.Name

type Rep TypeName = D1 ('MetaData "TypeName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "TypeName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

Methods

from :: TypeName -> Rep TypeName x #

to :: Rep TypeName x -> TypeName #

Show TypeName Source # 
Instance details

Defined in Elara.AST.Name

Eq TypeName Source # 
Instance details

Defined in Elara.AST.Name

Ord TypeName Source # 
Instance details

Defined in Elara.AST.Name

Hashable TypeName Source # 
Instance details

Defined in Elara.AST.Name

Methods

hashWithSalt :: Int -> TypeName -> Int #

hash :: TypeName -> Int #

type Rep TypeName Source # 
Instance details

Defined in Elara.AST.Name

type Rep TypeName = D1 ('MetaData "TypeName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "TypeName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

newtype OpName Source #

Constructors

OpName Text 

Instances

Instances details
ToJSON OpName Source # 
Instance details

Defined in Elara.AST.Name

NameLike OpName Source # 
Instance details

Defined in Elara.AST.Name

ToName OpName Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: OpName -> Name Source #

Pretty OpName Source # 
Instance details

Defined in Elara.AST.Name

Data OpName Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OpName -> c OpName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OpName #

toConstr :: OpName -> Constr #

dataTypeOf :: OpName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OpName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OpName) #

gmapT :: (forall b. Data b => b -> b) -> OpName -> OpName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OpName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OpName -> r #

gmapQ :: (forall d. Data d => d -> u) -> OpName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> OpName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> OpName -> m OpName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OpName -> m OpName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OpName -> m OpName #

IsString OpName Source # 
Instance details

Defined in Elara.AST.Name

Methods

fromString :: String -> OpName #

Generic OpName Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep OpName 
Instance details

Defined in Elara.AST.Name

type Rep OpName = D1 ('MetaData "OpName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "OpName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

Methods

from :: OpName -> Rep OpName x #

to :: Rep OpName x -> OpName #

Show OpName Source # 
Instance details

Defined in Elara.AST.Name

Eq OpName Source # 
Instance details

Defined in Elara.AST.Name

Methods

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

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

Ord OpName Source # 
Instance details

Defined in Elara.AST.Name

Hashable OpName Source # 
Instance details

Defined in Elara.AST.Name

Methods

hashWithSalt :: Int -> OpName -> Int #

hash :: OpName -> Int #

type Rep OpName Source # 
Instance details

Defined in Elara.AST.Name

type Rep OpName = D1 ('MetaData "OpName" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "OpName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data VarOrConName Source #

Instances

Instances details
NameLike VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

ToName VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

Pretty VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

Data VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VarOrConName -> c VarOrConName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c VarOrConName #

toConstr :: VarOrConName -> Constr #

dataTypeOf :: VarOrConName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c VarOrConName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c VarOrConName) #

gmapT :: (forall b. Data b => b -> b) -> VarOrConName -> VarOrConName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VarOrConName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VarOrConName -> r #

gmapQ :: (forall d. Data d => d -> u) -> VarOrConName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> VarOrConName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> VarOrConName -> m VarOrConName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VarOrConName -> m VarOrConName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VarOrConName -> m VarOrConName #

Generic VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep VarOrConName 
Instance details

Defined in Elara.AST.Name

Show VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

Eq VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

Ord VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

type Rep VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

data Name Source #

Instances

Instances details
ToJSON Name Source # 
Instance details

Defined in Elara.AST.Name

NameLike Name Source # 
Instance details

Defined in Elara.AST.Name

ToName Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: Name -> Name Source #

Pretty Name Source # 
Instance details

Defined in Elara.AST.Name

Data Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name #

toConstr :: Name -> Constr #

dataTypeOf :: Name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) #

gmapT :: (forall b. Data b => b -> b) -> Name -> Name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r #

gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name #

Generic Name Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep Name 
Instance details

Defined in Elara.AST.Name

Methods

from :: Name -> Rep Name x #

to :: Rep Name x -> Name #

Show Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

Eq Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

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

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

Ord Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

compare :: Name -> Name -> Ordering #

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

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

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

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

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Hashable Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

hashWithSalt :: Int -> Name -> Int #

hash :: Name -> Int #

HasName Name Name Source # 
Instance details

Defined in Elara.AST.Name

type Rep Name Source # 
Instance details

Defined in Elara.AST.Name

class NameLike name where Source #

Minimal complete definition

nameText, fullNameText

Methods

nameText :: name -> Text Source #

Get the name as a Text. This will not include qualification, if present

fullNameText :: name -> Text Source #

Get the full name, including qualification, if present

moduleName :: name -> Maybe ModuleName Source #

Instances

Instances details
NameLike LowerAlphaName Source # 
Instance details

Defined in Elara.AST.Name

NameLike ModuleName Source # 
Instance details

Defined in Elara.AST.Name

NameLike Name Source # 
Instance details

Defined in Elara.AST.Name

NameLike OpName Source # 
Instance details

Defined in Elara.AST.Name

NameLike TypeName Source # 
Instance details

Defined in Elara.AST.Name

NameLike VarName Source # 
Instance details

Defined in Elara.AST.Name

NameLike VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

NameLike n => NameLike (MaybeQualified n) Source # 
Instance details

Defined in Elara.AST.Name

NameLike n => NameLike (Qualified n) Source # 
Instance details

Defined in Elara.AST.Name

NameLike n => NameLike (Unqualified n) Source # 
Instance details

Defined in Elara.AST.Name

NameLike n => NameLike (Located n) Source # 
Instance details

Defined in Elara.AST.Name

class ToName name where Source #

Methods

toName :: name -> Name Source #

Instances

Instances details
ToName Name Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: Name -> Name Source #

ToName OpName Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: OpName -> Name Source #

ToName TypeName Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: TypeName -> Name Source #

ToName VarName Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: VarName -> Name Source #

ToName VarOrConName Source # 
Instance details

Defined in Elara.AST.Name

ToName n => ToName (MaybeQualified n) Source # 
Instance details

Defined in Elara.AST.Name

ToName n => ToName (Qualified n) Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: Qualified n -> Name Source #

data MaybeQualified name Source #

Instances

Instances details
Functor MaybeQualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

fmap :: (a -> b) -> MaybeQualified a -> MaybeQualified b #

(<$) :: a -> MaybeQualified b -> MaybeQualified a #

Foldable MaybeQualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

fold :: Monoid m => MaybeQualified m -> m #

foldMap :: Monoid m => (a -> m) -> MaybeQualified a -> m #

foldMap' :: Monoid m => (a -> m) -> MaybeQualified a -> m #

foldr :: (a -> b -> b) -> b -> MaybeQualified a -> b #

foldr' :: (a -> b -> b) -> b -> MaybeQualified a -> b #

foldl :: (b -> a -> b) -> b -> MaybeQualified a -> b #

foldl' :: (b -> a -> b) -> b -> MaybeQualified a -> b #

foldr1 :: (a -> a -> a) -> MaybeQualified a -> a #

foldl1 :: (a -> a -> a) -> MaybeQualified a -> a #

toList :: MaybeQualified a -> [a] #

null :: MaybeQualified a -> Bool #

length :: MaybeQualified a -> Int #

elem :: Eq a => a -> MaybeQualified a -> Bool #

maximum :: Ord a => MaybeQualified a -> a #

minimum :: Ord a => MaybeQualified a -> a #

sum :: Num a => MaybeQualified a -> a #

product :: Num a => MaybeQualified a -> a #

Traversable MaybeQualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

traverse :: Applicative f => (a -> f b) -> MaybeQualified a -> f (MaybeQualified b) #

sequenceA :: Applicative f => MaybeQualified (f a) -> f (MaybeQualified a) #

mapM :: Monad m => (a -> m b) -> MaybeQualified a -> m (MaybeQualified b) #

sequence :: Monad m => MaybeQualified (m a) -> m (MaybeQualified a) #

NameLike n => NameLike (MaybeQualified n) Source # 
Instance details

Defined in Elara.AST.Name

ToName n => ToName (MaybeQualified n) Source # 
Instance details

Defined in Elara.AST.Name

Pretty (MaybeQualified VarName) Source # 
Instance details

Defined in Elara.AST.Name

Pretty x => Pretty (MaybeQualified x) Source # 
Instance details

Defined in Elara.AST.Name

Data name => Data (MaybeQualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MaybeQualified name -> c (MaybeQualified name) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (MaybeQualified name) #

toConstr :: MaybeQualified name -> Constr #

dataTypeOf :: MaybeQualified name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (MaybeQualified name)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (MaybeQualified name)) #

gmapT :: (forall b. Data b => b -> b) -> MaybeQualified name -> MaybeQualified name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MaybeQualified name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MaybeQualified name -> r #

gmapQ :: (forall d. Data d => d -> u) -> MaybeQualified name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> MaybeQualified name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MaybeQualified name -> m (MaybeQualified name) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MaybeQualified name -> m (MaybeQualified name) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MaybeQualified name -> m (MaybeQualified name) #

Generic (MaybeQualified name) Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep (MaybeQualified name) 
Instance details

Defined in Elara.AST.Name

type Rep (MaybeQualified name) = D1 ('MetaData "MaybeQualified" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "MaybeQualified" 'PrefixI 'True) (S1 ('MetaSel ('Just "_maybeQualifiedName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name) :*: S1 ('MetaSel ('Just "_maybeQualifiedQualifier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModuleName))))

Methods

from :: MaybeQualified name -> Rep (MaybeQualified name) x #

to :: Rep (MaybeQualified name) x -> MaybeQualified name #

Show name => Show (MaybeQualified name) Source # 
Instance details

Defined in Elara.AST.Name

Eq name => Eq (MaybeQualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

(==) :: MaybeQualified name -> MaybeQualified name -> Bool #

(/=) :: MaybeQualified name -> MaybeQualified name -> Bool #

Ord name => Ord (MaybeQualified name) Source # 
Instance details

Defined in Elara.AST.Name

HasName (MaybeQualified n) n Source # 
Instance details

Defined in Elara.AST.Name

Methods

name :: Lens' (MaybeQualified n) n Source #

type Rep (MaybeQualified name) Source # 
Instance details

Defined in Elara.AST.Name

type Rep (MaybeQualified name) = D1 ('MetaData "MaybeQualified" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "MaybeQualified" 'PrefixI 'True) (S1 ('MetaSel ('Just "_maybeQualifiedName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name) :*: S1 ('MetaSel ('Just "_maybeQualifiedQualifier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModuleName))))

data Qualified name Source #

Constructors

Qualified 

Fields

Instances

Instances details
Functor Qualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

fmap :: (a -> b) -> Qualified a -> Qualified b #

(<$) :: a -> Qualified b -> Qualified a #

Foldable Qualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

fold :: Monoid m => Qualified m -> m #

foldMap :: Monoid m => (a -> m) -> Qualified a -> m #

foldMap' :: Monoid m => (a -> m) -> Qualified a -> m #

foldr :: (a -> b -> b) -> b -> Qualified a -> b #

foldr' :: (a -> b -> b) -> b -> Qualified a -> b #

foldl :: (b -> a -> b) -> b -> Qualified a -> b #

foldl' :: (b -> a -> b) -> b -> Qualified a -> b #

foldr1 :: (a -> a -> a) -> Qualified a -> a #

foldl1 :: (a -> a -> a) -> Qualified a -> a #

toList :: Qualified a -> [a] #

null :: Qualified a -> Bool #

length :: Qualified a -> Int #

elem :: Eq a => a -> Qualified a -> Bool #

maximum :: Ord a => Qualified a -> a #

minimum :: Ord a => Qualified a -> a #

sum :: Num a => Qualified a -> a #

product :: Num a => Qualified a -> a #

Traversable Qualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

traverse :: Applicative f => (a -> f b) -> Qualified a -> f (Qualified b) #

sequenceA :: Applicative f => Qualified (f a) -> f (Qualified a) #

mapM :: Monad m => (a -> m b) -> Qualified a -> m (Qualified b) #

sequence :: Monad m => Qualified (m a) -> m (Qualified a) #

ToJSON n => ToJSON (Qualified n) Source # 
Instance details

Defined in Elara.AST.Name

NameLike n => NameLike (Qualified n) Source # 
Instance details

Defined in Elara.AST.Name

ToName n => ToName (Qualified n) Source # 
Instance details

Defined in Elara.AST.Name

Methods

toName :: Qualified n -> Name Source #

Pretty x => Pretty (Qualified x) Source # 
Instance details

Defined in Elara.AST.Name

Data name => Data (Qualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Qualified name -> c (Qualified name) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Qualified name) #

toConstr :: Qualified name -> Constr #

dataTypeOf :: Qualified name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Qualified name)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Qualified name)) #

gmapT :: (forall b. Data b => b -> b) -> Qualified name -> Qualified name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Qualified name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Qualified name -> r #

gmapQ :: (forall d. Data d => d -> u) -> Qualified name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Qualified name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Qualified name -> m (Qualified name) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Qualified name -> m (Qualified name) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Qualified name -> m (Qualified name) #

Generic (Qualified name) Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep (Qualified name) 
Instance details

Defined in Elara.AST.Name

type Rep (Qualified name) = D1 ('MetaData "Qualified" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Qualified" 'PrefixI 'True) (S1 ('MetaSel ('Just "_qualifiedName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name) :*: S1 ('MetaSel ('Just "qualifier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)))

Methods

from :: Qualified name -> Rep (Qualified name) x #

to :: Rep (Qualified name) x -> Qualified name #

Show name => Show (Qualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

showsPrec :: Int -> Qualified name -> ShowS #

show :: Qualified name -> String #

showList :: [Qualified name] -> ShowS #

Eq name => Eq (Qualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

(==) :: Qualified name -> Qualified name -> Bool #

(/=) :: Qualified name -> Qualified name -> Bool #

Ord name => Ord (Qualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

compare :: Qualified name -> Qualified name -> Ordering #

(<) :: Qualified name -> Qualified name -> Bool #

(<=) :: Qualified name -> Qualified name -> Bool #

(>) :: Qualified name -> Qualified name -> Bool #

(>=) :: Qualified name -> Qualified name -> Bool #

max :: Qualified name -> Qualified name -> Qualified name #

min :: Qualified name -> Qualified name -> Qualified name #

Hashable b => Hashable (Qualified b) Source # 
Instance details

Defined in Elara.AST.Name

Methods

hashWithSalt :: Int -> Qualified b -> Int #

hash :: Qualified b -> Int #

HasName (Qualified n) n Source # 
Instance details

Defined in Elara.AST.Name

Methods

name :: Lens' (Qualified n) n Source #

type Rep (Qualified name) Source # 
Instance details

Defined in Elara.AST.Name

type Rep (Qualified name) = D1 ('MetaData "Qualified" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Qualified" 'PrefixI 'True) (S1 ('MetaSel ('Just "_qualifiedName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name) :*: S1 ('MetaSel ('Just "qualifier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)))

newtype Unqualified name Source #

Constructors

Unqualified 

Fields

Instances

Instances details
Functor Unqualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

fmap :: (a -> b) -> Unqualified a -> Unqualified b #

(<$) :: a -> Unqualified b -> Unqualified a #

Foldable Unqualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

fold :: Monoid m => Unqualified m -> m #

foldMap :: Monoid m => (a -> m) -> Unqualified a -> m #

foldMap' :: Monoid m => (a -> m) -> Unqualified a -> m #

foldr :: (a -> b -> b) -> b -> Unqualified a -> b #

foldr' :: (a -> b -> b) -> b -> Unqualified a -> b #

foldl :: (b -> a -> b) -> b -> Unqualified a -> b #

foldl' :: (b -> a -> b) -> b -> Unqualified a -> b #

foldr1 :: (a -> a -> a) -> Unqualified a -> a #

foldl1 :: (a -> a -> a) -> Unqualified a -> a #

toList :: Unqualified a -> [a] #

null :: Unqualified a -> Bool #

length :: Unqualified a -> Int #

elem :: Eq a => a -> Unqualified a -> Bool #

maximum :: Ord a => Unqualified a -> a #

minimum :: Ord a => Unqualified a -> a #

sum :: Num a => Unqualified a -> a #

product :: Num a => Unqualified a -> a #

Traversable Unqualified Source # 
Instance details

Defined in Elara.AST.Name

Methods

traverse :: Applicative f => (a -> f b) -> Unqualified a -> f (Unqualified b) #

sequenceA :: Applicative f => Unqualified (f a) -> f (Unqualified a) #

mapM :: Monad m => (a -> m b) -> Unqualified a -> m (Unqualified b) #

sequence :: Monad m => Unqualified (m a) -> m (Unqualified a) #

NameLike n => NameLike (Unqualified n) Source # 
Instance details

Defined in Elara.AST.Name

Pretty x => Pretty (Unqualified x) Source # 
Instance details

Defined in Elara.AST.Name

Data name => Data (Unqualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Unqualified name -> c (Unqualified name) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Unqualified name) #

toConstr :: Unqualified name -> Constr #

dataTypeOf :: Unqualified name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Unqualified name)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Unqualified name)) #

gmapT :: (forall b. Data b => b -> b) -> Unqualified name -> Unqualified name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Unqualified name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Unqualified name -> r #

gmapQ :: (forall d. Data d => d -> u) -> Unqualified name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Unqualified name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Unqualified name -> m (Unqualified name) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Unqualified name -> m (Unqualified name) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Unqualified name -> m (Unqualified name) #

Generic (Unqualified name) Source # 
Instance details

Defined in Elara.AST.Name

Associated Types

type Rep (Unqualified name) 
Instance details

Defined in Elara.AST.Name

type Rep (Unqualified name) = D1 ('MetaData "Unqualified" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "Unqualified" 'PrefixI 'True) (S1 ('MetaSel ('Just "_unqualifiedName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name)))

Methods

from :: Unqualified name -> Rep (Unqualified name) x #

to :: Rep (Unqualified name) x -> Unqualified name #

Show name => Show (Unqualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

showsPrec :: Int -> Unqualified name -> ShowS #

show :: Unqualified name -> String #

showList :: [Unqualified name] -> ShowS #

Eq name => Eq (Unqualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

(==) :: Unqualified name -> Unqualified name -> Bool #

(/=) :: Unqualified name -> Unqualified name -> Bool #

Ord name => Ord (Unqualified name) Source # 
Instance details

Defined in Elara.AST.Name

Methods

compare :: Unqualified name -> Unqualified name -> Ordering #

(<) :: Unqualified name -> Unqualified name -> Bool #

(<=) :: Unqualified name -> Unqualified name -> Bool #

(>) :: Unqualified name -> Unqualified name -> Bool #

(>=) :: Unqualified name -> Unqualified name -> Bool #

max :: Unqualified name -> Unqualified name -> Unqualified name #

min :: Unqualified name -> Unqualified name -> Unqualified name #

HasName (Unqualified n) n Source # 
Instance details

Defined in Elara.AST.Name

Methods

name :: Lens' (Unqualified n) n Source #

type Rep (Unqualified name) Source # 
Instance details

Defined in Elara.AST.Name

type Rep (Unqualified name) = D1 ('MetaData "Unqualified" "Elara.AST.Name" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "Unqualified" 'PrefixI 'True) (S1 ('MetaSel ('Just "_unqualifiedName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name)))

class HasName a n | a -> n where Source #

Methods

name :: Lens' a n Source #

Instances

Instances details
HasName Name Name Source # 
Instance details

Defined in Elara.AST.Name

HasName (MaybeQualified n) n Source # 
Instance details

Defined in Elara.AST.Name

Methods

name :: Lens' (MaybeQualified n) n Source #

HasName (Qualified n) n Source # 
Instance details

Defined in Elara.AST.Name

Methods

name :: Lens' (Qualified n) n Source #

HasName (Unqualified n) n Source # 
Instance details

Defined in Elara.AST.Name

Methods

name :: Lens' (Unqualified n) n Source #

class ContainsName a n | a -> n where Source #