| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Elara.AST.Name
Synopsis
- newtype ModuleName = ModuleName (NonEmpty Text)
- appendModule :: ModuleName -> Text -> ModuleName
- data VarName
- newtype LowerAlphaName = LowerAlphaName Text
- newtype TypeName = TypeName Text
- newtype OpName = OpName Text
- data VarOrConName
- data Name
- type UniqueName = Unique Name
- class NameLike name where
- nameText :: name -> Text
- fullNameText :: name -> Text
- moduleName :: name -> Maybe ModuleName
- class ToName name where
- data MaybeQualified name = MaybeQualified {}
- data Qualified name = Qualified {
- _qualifiedName :: name
- qualifier :: ModuleName
- unqualified :: Lens' (Qualified name) name
- newtype Unqualified name = Unqualified {
- _unqualifiedName :: name
- class HasName a n | a -> n where
- class ContainsName a n | a -> n where
- containedName :: Getter a n
Documentation
newtype ModuleName Source #
Constructors
| ModuleName (NonEmpty Text) |
Instances
appendModule :: ModuleName -> Text -> ModuleName 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
| ToJSON VarName Source # | |||||
| NameLike VarName Source # | |||||
Defined in Elara.AST.Name | |||||
| ToName VarName Source # | |||||
| Pretty VarName Source # | |||||
| Data VarName Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods fromString :: String -> VarName # | |||||
| Generic VarName Source # | |||||
Defined in Elara.AST.Name Associated Types
| |||||
| Show VarName Source # | |||||
| Eq VarName Source # | |||||
| Ord VarName Source # | |||||
| Hashable VarName Source # | |||||
Defined in Elara.AST.Name | |||||
| Pretty (MaybeQualified VarName) Source # | |||||
Defined in Elara.AST.Name | |||||
| type Rep VarName Source # | |||||
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
| ToJSON LowerAlphaName Source # | |||||
Defined in Elara.AST.Name Methods toJSON :: LowerAlphaName -> Value # toEncoding :: LowerAlphaName -> Encoding # toJSONList :: [LowerAlphaName] -> Value # toEncodingList :: [LowerAlphaName] -> Encoding # omitField :: LowerAlphaName -> Bool # | |||||
| NameLike LowerAlphaName Source # | |||||
Defined in Elara.AST.Name | |||||
| Pretty LowerAlphaName Source # | |||||
Defined in Elara.AST.Name | |||||
| Data LowerAlphaName Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods fromString :: String -> LowerAlphaName # | |||||
| Generic LowerAlphaName Source # | |||||
Defined in Elara.AST.Name Associated Types
Methods from :: LowerAlphaName -> Rep LowerAlphaName x # to :: Rep LowerAlphaName x -> LowerAlphaName # | |||||
| Show LowerAlphaName Source # | |||||
Defined in Elara.AST.Name Methods showsPrec :: Int -> LowerAlphaName -> ShowS # show :: LowerAlphaName -> String # showList :: [LowerAlphaName] -> ShowS # | |||||
| Eq LowerAlphaName Source # | |||||
Defined in Elara.AST.Name Methods (==) :: LowerAlphaName -> LowerAlphaName -> Bool # (/=) :: LowerAlphaName -> LowerAlphaName -> Bool # | |||||
| Ord LowerAlphaName Source # | |||||
Defined in Elara.AST.Name Methods compare :: LowerAlphaName -> LowerAlphaName -> Ordering # (<) :: LowerAlphaName -> LowerAlphaName -> Bool # (<=) :: LowerAlphaName -> LowerAlphaName -> Bool # (>) :: LowerAlphaName -> LowerAlphaName -> Bool # (>=) :: LowerAlphaName -> LowerAlphaName -> Bool # max :: LowerAlphaName -> LowerAlphaName -> LowerAlphaName # min :: LowerAlphaName -> LowerAlphaName -> LowerAlphaName # | |||||
| Hashable LowerAlphaName Source # | |||||
Defined in Elara.AST.Name | |||||
| type Rep LowerAlphaName Source # | |||||
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))) | |||||
Instances
| ToJSON TypeName Source # | |||||
| NameLike TypeName Source # | |||||
Defined in Elara.AST.Name | |||||
| ToName TypeName Source # | |||||
| Pretty TypeName Source # | |||||
| Data TypeName Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods fromString :: String -> TypeName # | |||||
| Generic TypeName Source # | |||||
Defined in Elara.AST.Name Associated Types
| |||||
| Show TypeName Source # | |||||
| Eq TypeName Source # | |||||
| Ord TypeName Source # | |||||
Defined in Elara.AST.Name | |||||
| Hashable TypeName Source # | |||||
Defined in Elara.AST.Name | |||||
| type Rep TypeName Source # | |||||
Defined in Elara.AST.Name | |||||
Instances
| ToJSON OpName Source # | |||||
| NameLike OpName Source # | |||||
Defined in Elara.AST.Name | |||||
| ToName OpName Source # | |||||
| Pretty OpName Source # | |||||
| Data OpName Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods fromString :: String -> OpName # | |||||
| Generic OpName Source # | |||||
Defined in Elara.AST.Name Associated Types
| |||||
| Show OpName Source # | |||||
| Eq OpName Source # | |||||
| Ord OpName Source # | |||||
| Hashable OpName Source # | |||||
Defined in Elara.AST.Name | |||||
| type Rep OpName Source # | |||||
Defined in Elara.AST.Name | |||||
data VarOrConName Source #
Constructors
| VarName LowerAlphaName | |
| ConName TypeName |
Instances
| NameLike VarOrConName Source # | |||||
Defined in Elara.AST.Name Methods nameText :: VarOrConName -> Text Source # fullNameText :: VarOrConName -> Text Source # moduleName :: VarOrConName -> Maybe ModuleName Source # | |||||
| ToName VarOrConName Source # | |||||
Defined in Elara.AST.Name Methods toName :: VarOrConName -> Name Source # | |||||
| Pretty VarOrConName Source # | |||||
Defined in Elara.AST.Name | |||||
| Data VarOrConName Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Associated Types
| |||||
| Show VarOrConName Source # | |||||
Defined in Elara.AST.Name Methods showsPrec :: Int -> VarOrConName -> ShowS # show :: VarOrConName -> String # showList :: [VarOrConName] -> ShowS # | |||||
| Eq VarOrConName Source # | |||||
Defined in Elara.AST.Name | |||||
| Ord VarOrConName Source # | |||||
Defined in Elara.AST.Name Methods compare :: VarOrConName -> VarOrConName -> Ordering # (<) :: VarOrConName -> VarOrConName -> Bool # (<=) :: VarOrConName -> VarOrConName -> Bool # (>) :: VarOrConName -> VarOrConName -> Bool # (>=) :: VarOrConName -> VarOrConName -> Bool # max :: VarOrConName -> VarOrConName -> VarOrConName # min :: VarOrConName -> VarOrConName -> VarOrConName # | |||||
| type Rep VarOrConName Source # | |||||
Defined in Elara.AST.Name type Rep VarOrConName = D1 ('MetaData "VarOrConName" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "VarName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LowerAlphaName)) :+: C1 ('MetaCons "ConName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeName))) | |||||
Instances
| ToJSON Name Source # | |||||
| NameLike Name Source # | |||||
Defined in Elara.AST.Name | |||||
| ToName Name Source # | |||||
| Pretty Name Source # | |||||
| Data Name Source # | |||||
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 # 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 # | |||||
Defined in Elara.AST.Name Associated Types
| |||||
| Show Name Source # | |||||
| Eq Name Source # | |||||
| Ord Name Source # | |||||
| Hashable Name Source # | |||||
Defined in Elara.AST.Name | |||||
| HasName Name Name Source # | |||||
| type Rep Name Source # | |||||
Defined in Elara.AST.Name type Rep Name = D1 ('MetaData "Name" "Elara.AST.Name" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "NVarName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 VarName)) :+: C1 ('MetaCons "NTypeName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeName))) | |||||
type UniqueName = Unique Name Source #
class NameLike name where Source #
Minimal complete definition
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
| NameLike LowerAlphaName Source # | |
Defined in Elara.AST.Name | |
| NameLike ModuleName Source # | |
Defined in Elara.AST.Name Methods nameText :: ModuleName -> Text Source # fullNameText :: ModuleName -> Text Source # moduleName :: ModuleName -> Maybe ModuleName Source # | |
| NameLike Name Source # | |
Defined in Elara.AST.Name | |
| NameLike OpName Source # | |
Defined in Elara.AST.Name | |
| NameLike TypeName Source # | |
Defined in Elara.AST.Name | |
| NameLike VarName Source # | |
Defined in Elara.AST.Name | |
| NameLike VarOrConName Source # | |
Defined in Elara.AST.Name Methods nameText :: VarOrConName -> Text Source # fullNameText :: VarOrConName -> Text Source # moduleName :: VarOrConName -> Maybe ModuleName Source # | |
| NameLike n => NameLike (MaybeQualified n) Source # | |
Defined in Elara.AST.Name Methods nameText :: MaybeQualified n -> Text Source # fullNameText :: MaybeQualified n -> Text Source # moduleName :: MaybeQualified n -> Maybe ModuleName Source # | |
| NameLike n => NameLike (Qualified n) Source # | |
Defined in Elara.AST.Name | |
| NameLike n => NameLike (Unqualified n) Source # | |
Defined in Elara.AST.Name Methods nameText :: Unqualified n -> Text Source # fullNameText :: Unqualified n -> Text Source # moduleName :: Unqualified n -> Maybe ModuleName Source # | |
| NameLike n => NameLike (Located n) Source # | |
Defined in Elara.AST.Name | |
class ToName name where Source #
Instances
| ToName Name Source # | |
| ToName OpName Source # | |
| ToName TypeName Source # | |
| ToName VarName Source # | |
| ToName VarOrConName Source # | |
Defined in Elara.AST.Name Methods toName :: VarOrConName -> Name Source # | |
| ToName n => ToName (MaybeQualified n) Source # | |
Defined in Elara.AST.Name Methods toName :: MaybeQualified n -> Name Source # | |
| ToName n => ToName (Qualified n) Source # | |
data MaybeQualified name Source #
Constructors
| MaybeQualified | |
Fields | |
Instances
| Functor MaybeQualified Source # | |||||
Defined in Elara.AST.Name Methods fmap :: (a -> b) -> MaybeQualified a -> MaybeQualified b # (<$) :: a -> MaybeQualified b -> MaybeQualified a # | |||||
| Foldable MaybeQualified Source # | |||||
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 # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods nameText :: MaybeQualified n -> Text Source # fullNameText :: MaybeQualified n -> Text Source # moduleName :: MaybeQualified n -> Maybe ModuleName Source # | |||||
| ToName n => ToName (MaybeQualified n) Source # | |||||
Defined in Elara.AST.Name Methods toName :: MaybeQualified n -> Name Source # | |||||
| Pretty (MaybeQualified VarName) Source # | |||||
Defined in Elara.AST.Name | |||||
| Pretty x => Pretty (MaybeQualified x) Source # | |||||
Defined in Elara.AST.Name | |||||
| Data name => Data (MaybeQualified name) Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Associated Types
Methods from :: MaybeQualified name -> Rep (MaybeQualified name) x # to :: Rep (MaybeQualified name) x -> MaybeQualified name # | |||||
| Show name => Show (MaybeQualified name) Source # | |||||
Defined in Elara.AST.Name Methods showsPrec :: Int -> MaybeQualified name -> ShowS # show :: MaybeQualified name -> String # showList :: [MaybeQualified name] -> ShowS # | |||||
| Eq name => Eq (MaybeQualified name) Source # | |||||
Defined in Elara.AST.Name Methods (==) :: MaybeQualified name -> MaybeQualified name -> Bool # (/=) :: MaybeQualified name -> MaybeQualified name -> Bool # | |||||
| Ord name => Ord (MaybeQualified name) Source # | |||||
Defined in Elara.AST.Name Methods compare :: MaybeQualified name -> MaybeQualified name -> Ordering # (<) :: MaybeQualified name -> MaybeQualified name -> Bool # (<=) :: MaybeQualified name -> MaybeQualified name -> Bool # (>) :: MaybeQualified name -> MaybeQualified name -> Bool # (>=) :: MaybeQualified name -> MaybeQualified name -> Bool # max :: MaybeQualified name -> MaybeQualified name -> MaybeQualified name # min :: MaybeQualified name -> MaybeQualified name -> MaybeQualified name # | |||||
| HasName (MaybeQualified n) n Source # | |||||
Defined in Elara.AST.Name Methods name :: Lens' (MaybeQualified n) n Source # | |||||
| type Rep (MaybeQualified name) Source # | |||||
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)))) | |||||
Constructors
| Qualified | |
Fields
| |
Instances
| Functor Qualified Source # | |||||
| Foldable Qualified Source # | |||||
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] # length :: Qualified a -> Int # elem :: Eq a => a -> Qualified a -> Bool # maximum :: Ord a => Qualified a -> a # minimum :: Ord a => Qualified a -> a # | |||||
| Traversable Qualified Source # | |||||
| ToJSON n => ToJSON (Qualified n) Source # | |||||
| NameLike n => NameLike (Qualified n) Source # | |||||
Defined in Elara.AST.Name | |||||
| ToName n => ToName (Qualified n) Source # | |||||
| Pretty x => Pretty (Qualified x) Source # | |||||
| Data name => Data (Qualified name) Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Associated Types
| |||||
| Show name => Show (Qualified name) Source # | |||||
| Eq name => Eq (Qualified name) Source # | |||||
| Ord name => Ord (Qualified name) Source # | |||||
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 # | |||||
| Hashable b => Hashable (Qualified b) Source # | |||||
Defined in Elara.AST.Name | |||||
| HasName (Qualified n) n Source # | |||||
| type Rep (Qualified name) Source # | |||||
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))) | |||||
unqualified :: Lens' (Qualified name) name Source #
newtype Unqualified name Source #
Constructors
| Unqualified | |
Fields
| |
Instances
| Functor Unqualified Source # | |||||
Defined in Elara.AST.Name Methods fmap :: (a -> b) -> Unqualified a -> Unqualified b # (<$) :: a -> Unqualified b -> Unqualified a # | |||||
| Foldable Unqualified Source # | |||||
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 # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods nameText :: Unqualified n -> Text Source # fullNameText :: Unqualified n -> Text Source # moduleName :: Unqualified n -> Maybe ModuleName Source # | |||||
| Pretty x => Pretty (Unqualified x) Source # | |||||
Defined in Elara.AST.Name | |||||
| Data name => Data (Unqualified name) Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Associated Types
Methods from :: Unqualified name -> Rep (Unqualified name) x # to :: Rep (Unqualified name) x -> Unqualified name # | |||||
| Show name => Show (Unqualified name) Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods (==) :: Unqualified name -> Unqualified name -> Bool # (/=) :: Unqualified name -> Unqualified name -> Bool # | |||||
| Ord name => Ord (Unqualified name) Source # | |||||
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 # | |||||
Defined in Elara.AST.Name Methods name :: Lens' (Unqualified n) n Source # | |||||
| type Rep (Unqualified name) Source # | |||||
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 #
Instances
| HasName Name Name Source # | |
| HasName (MaybeQualified n) n Source # | |
Defined in Elara.AST.Name Methods name :: Lens' (MaybeQualified n) n Source # | |
| HasName (Qualified n) n Source # | |
| HasName (Unqualified n) n Source # | |
Defined in Elara.AST.Name Methods name :: Lens' (Unqualified n) n Source # | |
class ContainsName a n | a -> n where Source #
Methods
containedName :: Getter a n Source #