| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Elara.Core
Synopsis
- data TypeVariable = TypeVariable {
- tvName :: UniqueTyVar
- tvKind :: ElaraKind
- data Var
- = TyVar TypeVariable
- | Id (UnlocatedVarRef Text) Type (Maybe DataCon)
- data Expr b
- type CoreExpr = Expr Var
- type CoreAlt = Alt Var
- type CoreBind = Bind Var
- type Bind b = Bind b Expr
- type Alt b = (AltCon, [b], Expr b)
- data AltCon
- data DataCon = DataCon {
- name :: Qualified Text
- dataConType :: Type
- dataConDataType :: TyCon
- data Type
- data TyCon = TyCon (Qualified Text) TyConDetails
- data TyConDetails
- typeArity :: Type -> Int
- functionTypeArgs :: Type -> [Type]
- conTyArgs :: Type -> [Type]
- functionTypeResult :: Type -> Type
- instantiate :: Type -> Type -> Type
- substTypeVar :: TypeVariable -> Type -> Type -> Type
- data Literal
Documentation
data TypeVariable Source #
Constructors
| TypeVariable | |
Fields
| |
Instances
Constructors
| TyVar TypeVariable | |
| Id (UnlocatedVarRef Text) Type (Maybe DataCon) |
Instances
| PrettyVar Var Source # | |||||
| Pretty Var Source # | |||||
| Data Var Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var -> c Var # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Var # dataTypeOf :: Var -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Var) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Var) # gmapT :: (forall b. Data b => b -> b) -> Var -> Var # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQ :: (forall d. Data d => d -> u) -> Var -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # | |||||
| Generic Var Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show Var Source # | |||||
| Eq Var Source # | |||||
| Ord Var Source # | |||||
| Pretty (AExpr Var) Source # | |||||
| Pretty (CExpr Var) Source # | |||||
| Pretty (Expr Var) Source # | |||||
| HasDependencies (CoreModule CoreBind) Source # | |||||
Defined in Elara.Core.Module Associated Types
Methods keys :: CoreModule CoreBind -> NonEmpty (Key (CoreModule CoreBind)) Source # key :: CoreModule CoreBind -> Key (CoreModule CoreBind) Source # dependencies :: CoreModule CoreBind -> [Key (CoreModule CoreBind)] Source # | |||||
| HasDependencies (CoreModule (TopLevelBind Var)) Source # | |||||
Defined in Elara.Core.Module Associated Types
Methods keys :: CoreModule (TopLevelBind Var) -> NonEmpty (Key (CoreModule (TopLevelBind Var))) Source # key :: CoreModule (TopLevelBind Var) -> Key (CoreModule (TopLevelBind Var)) Source # dependencies :: CoreModule (TopLevelBind Var) -> [Key (CoreModule (TopLevelBind Var))] Source # | |||||
| type Rep Var Source # | |||||
Defined in Elara.Core type Rep Var = D1 ('MetaData "Var" "Elara.Core" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "TyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeVariable)) :+: C1 ('MetaCons "Id" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UnlocatedVarRef Text)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DataCon))))) | |||||
| type Key (CoreModule CoreBind) Source # | |||||
Defined in Elara.Core.Module | |||||
| type Key (CoreModule (TopLevelBind Var)) Source # | |||||
Defined in Elara.Core.Module | |||||
Constructors
| Var b | |
| Lit Literal | |
| App (Expr b) (Expr b) | |
| TyApp (Expr b) Type | |
| Lam b (Expr b) | |
| TyLam Type (Expr b) | |
| Let (Bind b) (Expr b) | |
| Match (Expr b) (Maybe b) [Alt b] |
Instances
| FreeCoreVars Expr Source # | |||||
Defined in Elara.Core.Analysis | |||||
| PrettyVar v => Pretty (Expr v) Source # | |||||
| HasDependencies (CoreModule CoreBind) Source # | |||||
Defined in Elara.Core.Module Associated Types
Methods keys :: CoreModule CoreBind -> NonEmpty (Key (CoreModule CoreBind)) Source # key :: CoreModule CoreBind -> Key (CoreModule CoreBind) Source # dependencies :: CoreModule CoreBind -> [Key (CoreModule CoreBind)] Source # | |||||
| Data b => Data (Expr b) Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Expr b -> c (Expr b) # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Expr b) # toConstr :: Expr b -> Constr # dataTypeOf :: Expr b -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Expr b)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Expr b)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Expr b -> Expr b # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Expr b -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Expr b -> r # gmapQ :: (forall d. Data d => d -> u) -> Expr b -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Expr b -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Expr b -> m (Expr b) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Expr b -> m (Expr b) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Expr b -> m (Expr b) # | |||||
| Generic (Expr b) Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show b => Show (Expr b) Source # | |||||
| Eq b => Eq (Expr b) Source # | |||||
| Generic b => Plated (Expr b) (Expr b) Source # | |||||
Defined in Elara.Core | |||||
| type Key (CoreModule CoreBind) Source # | |||||
Defined in Elara.Core.Module | |||||
| type Rep (Expr b) Source # | |||||
Defined in Elara.Core type Rep (Expr b) = D1 ('MetaData "Expr" "Elara.Core" "elara-0.1.0-inplace" 'False) (((C1 ('MetaCons "Var" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :+: C1 ('MetaCons "Lit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Literal))) :+: (C1 ('MetaCons "App" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b))) :+: C1 ('MetaCons "TyApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "Lam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b))) :+: C1 ('MetaCons "TyLam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b)))) :+: (C1 ('MetaCons "Let" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Bind b)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b))) :+: C1 ('MetaCons "Match" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe b)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Alt b])))))) | |||||
Instances
| Pretty AltCon Source # | |||||
| Data AltCon Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AltCon -> c AltCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AltCon # toConstr :: AltCon -> Constr # dataTypeOf :: AltCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AltCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AltCon) # gmapT :: (forall b. Data b => b -> b) -> AltCon -> AltCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AltCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AltCon -> r # gmapQ :: (forall d. Data d => d -> u) -> AltCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AltCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AltCon -> m AltCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AltCon -> m AltCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AltCon -> m AltCon # | |||||
| Generic AltCon Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show AltCon Source # | |||||
| Eq AltCon Source # | |||||
| Ord AltCon Source # | |||||
| type Rep AltCon Source # | |||||
Defined in Elara.Core type Rep AltCon = D1 ('MetaData "AltCon" "Elara.Core" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "DataAlt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DataCon)) :+: (C1 ('MetaCons "LitAlt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Literal)) :+: C1 ('MetaCons "DEFAULT" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
A data constructor.
Constructors
| DataCon | |
Fields
| |
Instances
| Pretty DataCon Source # | |||||
| Data DataCon Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataCon -> c DataCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataCon # toConstr :: DataCon -> Constr # dataTypeOf :: DataCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataCon) # gmapT :: (forall b. Data b => b -> b) -> DataCon -> DataCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataCon -> r # gmapQ :: (forall d. Data d => d -> u) -> DataCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # | |||||
| Generic DataCon Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show DataCon Source # | |||||
| Eq DataCon Source # | |||||
| Ord DataCon Source # | |||||
| type Rep DataCon Source # | |||||
Defined in Elara.Core type Rep DataCon = D1 ('MetaData "DataCon" "Elara.Core" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "DataCon" 'PrefixI 'True) (S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified Text)) :*: (S1 ('MetaSel ('Just "dataConType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Just "dataConDataType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyCon)))) | |||||
Constructors
| TyVarTy TypeVariable | A type variable, |
| FuncTy Type Type | A function type, |
| AppTy Type Type | An application of a type constructor, |
| ConTy TyCon | A type constructor, |
| ForAllTy !TypeVariable !Type | A forall quantified type, |
Instances
| PrettyVar Type Source # | |||||
| Pretty Type Source # | |||||
| Data Type Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type # dataTypeOf :: Type -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) # gmapT :: (forall b. Data b => b -> b) -> Type -> Type # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # | |||||
| Generic Type Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show Type Source # | |||||
| Eq Type Source # | |||||
| Ord Type Source # | |||||
| (Generic x, SafeGPlate (Rep x) Type, GPlate Type x) => Plated Type x Source # | |||||
Defined in Elara.Core Methods plate :: Traversal' x Type Source # | |||||
| type Rep Type Source # | |||||
Defined in Elara.Core type Rep Type = D1 ('MetaData "Type" "Elara.Core" "elara-0.1.0-inplace" 'False) ((C1 ('MetaCons "TyVarTy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeVariable)) :+: C1 ('MetaCons "FuncTy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "AppTy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons "ConTy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyCon)) :+: C1 ('MetaCons "ForAllTy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TypeVariable) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type))))) | |||||
Information about a type constructor
Constructors
| TyCon | |
Fields
| |
Instances
| Pretty TyCon Source # | |||||
| Data TyCon Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyCon -> c TyCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyCon # dataTypeOf :: TyCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyCon) # gmapT :: (forall b. Data b => b -> b) -> TyCon -> TyCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyCon -> r # gmapQ :: (forall d. Data d => d -> u) -> TyCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyCon -> m TyCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyCon -> m TyCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyCon -> m TyCon # | |||||
| Generic TyCon Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show TyCon Source # | |||||
| Eq TyCon Source # | |||||
| Ord TyCon Source # | |||||
| type Rep TyCon Source # | |||||
Defined in Elara.Core type Rep TyCon = D1 ('MetaData "TyCon" "Elara.Core" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "TyCon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified Text)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyConDetails))) | |||||
data TyConDetails Source #
The details of a type constructor, mainly about its definition
Instances
| Pretty TyConDetails Source # | |||||
Defined in Elara.Core.Pretty | |||||
| Data TyConDetails Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyConDetails -> c TyConDetails # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyConDetails # toConstr :: TyConDetails -> Constr # dataTypeOf :: TyConDetails -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyConDetails) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyConDetails) # gmapT :: (forall b. Data b => b -> b) -> TyConDetails -> TyConDetails # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyConDetails -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyConDetails -> r # gmapQ :: (forall d. Data d => d -> u) -> TyConDetails -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyConDetails -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyConDetails -> m TyConDetails # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConDetails -> m TyConDetails # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConDetails -> m TyConDetails # | |||||
| Generic TyConDetails Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show TyConDetails Source # | |||||
Defined in Elara.Core Methods showsPrec :: Int -> TyConDetails -> ShowS # show :: TyConDetails -> String # showList :: [TyConDetails] -> ShowS # | |||||
| Eq TyConDetails Source # | |||||
Defined in Elara.Core | |||||
| Ord TyConDetails Source # | |||||
Defined in Elara.Core Methods compare :: TyConDetails -> TyConDetails -> Ordering # (<) :: TyConDetails -> TyConDetails -> Bool # (<=) :: TyConDetails -> TyConDetails -> Bool # (>) :: TyConDetails -> TyConDetails -> Bool # (>=) :: TyConDetails -> TyConDetails -> Bool # max :: TyConDetails -> TyConDetails -> TyConDetails # min :: TyConDetails -> TyConDetails -> TyConDetails # | |||||
| type Rep TyConDetails Source # | |||||
Defined in Elara.Core type Rep TyConDetails = D1 ('MetaData "TyConDetails" "Elara.Core" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "TyADT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Qualified Text])) :+: (C1 ('MetaCons "TyAlias" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "Prim" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
functionTypeArgs :: Type -> [Type] Source #
functionTypeResult :: Type -> Type Source #
substTypeVar :: TypeVariable -> Type -> Type -> Type Source #
Instances
| Pretty Literal Source # | |||||
| Data Literal Source # | |||||
Defined in Elara.Core Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Literal -> c Literal # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Literal # toConstr :: Literal -> Constr # dataTypeOf :: Literal -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Literal) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Literal) # gmapT :: (forall b. Data b => b -> b) -> Literal -> Literal # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Literal -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Literal -> r # gmapQ :: (forall d. Data d => d -> u) -> Literal -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Literal -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Literal -> m Literal # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Literal -> m Literal # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Literal -> m Literal # | |||||
| Generic Literal Source # | |||||
Defined in Elara.Core Associated Types
| |||||
| Show Literal Source # | |||||
| Eq Literal Source # | |||||
| Ord Literal Source # | |||||
| Hashable Literal Source # | |||||
Defined in Elara.Core | |||||
| type Rep Literal Source # | |||||
Defined in Elara.Core type Rep Literal = D1 ('MetaData "Literal" "Elara.Core" "elara-0.1.0-inplace" 'False) ((C1 ('MetaCons "Int" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Integer)) :+: C1 ('MetaCons "String" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))) :+: (C1 ('MetaCons "Char" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Char)) :+: (C1 ('MetaCons "Double" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Double)) :+: C1 ('MetaCons "Unit" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||