Copyright | (c) Christian Maeder and Uni Bremen 2003-2005 |
---|---|
License | GPLv2 or higher, see LICENSE.txt |
Maintainer | Christian.Maeder@dfki.de |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
HasCASL.Le
Description
abstract syntax during static analysis
Synopsis
- data ClassInfo = ClassInfo {
- rawKind :: RawKind
- classKinds :: Set Kind
- type ClassMap = Map Id ClassInfo
- data GenKind
- data AltDefn = Construct (Maybe Id) [Type] Partiality [[Selector]]
- data Selector = Select (Maybe Id) Type Partiality
- type IdMap = Map Id Id
- data DataEntry = DataEntry IdMap Id GenKind [TypeArg] RawKind (Set AltDefn)
- data TypeDefn
- data TypeInfo = TypeInfo {
- typeKind :: RawKind
- otherTypeKinds :: Set Kind
- superTypes :: Set Id
- typeDefn :: TypeDefn
- type TypeMap = Map Id TypeInfo
- starTypeInfo :: TypeInfo
- mapType :: IdMap -> Type -> Type
- data Sentence
- data TypeVarDefn = TypeVarDefn Variance VarKind RawKind Int
- type LocalTypeVars = Map Id TypeVarDefn
- data VarDefn = VarDefn Type
- data ConstrInfo = ConstrInfo {
- constrId :: Id
- constrType :: TypeScheme
- data OpDefn
- = NoOpDefn OpBrand
- | ConstructData Id
- | SelectData (Set ConstrInfo) Id
- | Definition OpBrand Term
- data OpInfo = OpInfo {}
- isConstructor :: OpInfo -> Bool
- type Assumps = Map Id (Set OpInfo)
- data Env = Env {}
- initialEnv :: Env
- data Constrain
- addDiags :: [Diagnosis] -> State Env ()
- appendSentences :: [Named Sentence] -> State Env ()
- putClassMap :: ClassMap -> State Env ()
- putLocalVars :: Map Id VarDefn -> State Env ()
- fromResult :: (Env -> Result a) -> State Env (Maybe a)
- addSymbol :: Symbol -> State Env ()
- putLocalTypeVars :: LocalTypeVars -> State Env ()
- putTypeMap :: TypeMap -> State Env ()
- putAssumps :: Assumps -> State Env ()
- putBinders :: Map Id Id -> State Env ()
- getVar :: VarDecl -> Id
- checkUniqueVars :: [VarDecl] -> State Env ()
- type FunMap = Map (Id, TypeScheme) (Id, TypeScheme)
- data Morphism = Morphism {}
- mkMorphism :: Env -> Env -> Morphism
- isInclMor :: Morphism -> Bool
- data SymbolType
- data Symbol = Symbol {
- symName :: Id
- symType :: SymbolType
- type SymbolMap = Map Symbol Symbol
- type SymbolSet = Set Symbol
- idToTypeSymbol :: Id -> RawKind -> Symbol
- idToClassSymbol :: Id -> RawKind -> Symbol
- idToOpSymbol :: Id -> TypeScheme -> Symbol
- data RawSymbol
- type RawSymbolMap = Map RawSymbol RawSymbol
- idToRaw :: Id -> RawSymbol
- rawSymName :: RawSymbol -> Id
- symbTypeToKind :: SymbolType -> SymbKind
- symbolToRaw :: Symbol -> RawSymbol
- symbKindToRaw :: SymbKind -> Id -> RawSymbol
- getCompoundLists :: Env -> Set [Id]
class info
store the raw kind and all superclasses of a class identifier
Constructors
ClassInfo | |
Fields
|
Instances
Eq ClassInfo Source # | |
Data ClassInfo Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ClassInfo -> c ClassInfo gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ClassInfo toConstr :: ClassInfo -> Constr dataTypeOf :: ClassInfo -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ClassInfo) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ClassInfo) gmapT :: (forall b. Data b => b -> b) -> ClassInfo -> ClassInfo gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ClassInfo -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ClassInfo -> r gmapQ :: (forall d. Data d => d -> u) -> ClassInfo -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ClassInfo -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ClassInfo -> m ClassInfo gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ClassInfo -> m ClassInfo gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ClassInfo -> m ClassInfo | |
Ord ClassInfo Source # | |
Defined in HasCASL.Le | |
Show ClassInfo Source # | |
Generic ClassInfo | |
FromJSON ClassInfo | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON ClassInfo | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: ClassInfo -> Encoding toJSONList :: [ClassInfo] -> Value toEncodingList :: [ClassInfo] -> Encoding | |
ShATermConvertible ClassInfo | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> ClassInfo -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [ClassInfo] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, ClassInfo) fromShATermList' :: Int -> ATermTable -> (ATermTable, [ClassInfo]) | |
Pretty ClassInfo Source # | |
type Rep ClassInfo | |
Defined in HasCASL.ATC_HasCASL type Rep ClassInfo = D1 ('MetaData "ClassInfo" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "ClassInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "rawKind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawKind) :*: S1 ('MetaSel ('Just "classKinds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Kind)))) |
type info
data type generatedness indicator
Instances
Eq GenKind Source # | |
Data GenKind Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GenKind -> c GenKind gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GenKind dataTypeOf :: GenKind -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GenKind) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GenKind) gmapT :: (forall b. Data b => b -> b) -> GenKind -> GenKind gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GenKind -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GenKind -> r gmapQ :: (forall d. Data d => d -> u) -> GenKind -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> GenKind -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> GenKind -> m GenKind gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GenKind -> m GenKind gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GenKind -> m GenKind | |
Ord GenKind Source # | |
Show GenKind Source # | |
Generic GenKind | |
FromJSON GenKind | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON GenKind | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: GenKind -> Encoding toJSONList :: [GenKind] -> Value toEncodingList :: [GenKind] -> Encoding | |
ShATermConvertible GenKind | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> GenKind -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [GenKind] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, GenKind) fromShATermList' :: Int -> ATermTable -> (ATermTable, [GenKind]) | |
type Rep GenKind | |
Defined in HasCASL.ATC_HasCASL type Rep GenKind = D1 ('MetaData "GenKind" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "Free" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Generated" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Loose" 'PrefixI 'False) (U1 :: Type -> Type))) |
an analysed alternative with a list of (product) types
Constructors
Construct (Maybe Id) [Type] Partiality [[Selector]] |
Instances
Eq AltDefn Source # | |
Data AltDefn Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AltDefn -> c AltDefn gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AltDefn dataTypeOf :: AltDefn -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AltDefn) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AltDefn) gmapT :: (forall b. Data b => b -> b) -> AltDefn -> AltDefn gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AltDefn -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AltDefn -> r gmapQ :: (forall d. Data d => d -> u) -> AltDefn -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> AltDefn -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> AltDefn -> m AltDefn gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AltDefn -> m AltDefn gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AltDefn -> m AltDefn | |
Ord AltDefn Source # | |
Show AltDefn Source # | |
Generic AltDefn | |
FromJSON AltDefn | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON AltDefn | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: AltDefn -> Encoding toJSONList :: [AltDefn] -> Value toEncodingList :: [AltDefn] -> Encoding | |
ShATermConvertible AltDefn | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> AltDefn -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [AltDefn] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, AltDefn) fromShATermList' :: Int -> ATermTable -> (ATermTable, [AltDefn]) | |
type Rep AltDefn | |
Defined in HasCASL.ATC_HasCASL type Rep AltDefn = D1 ('MetaData "AltDefn" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "Construct" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Id)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Partiality) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Selector]])))) |
an analysed component
Constructors
Select (Maybe Id) Type Partiality |
Instances
Eq Selector Source # | |
Data Selector Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Selector -> c Selector gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Selector toConstr :: Selector -> Constr dataTypeOf :: Selector -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Selector) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Selector) gmapT :: (forall b. Data b => b -> b) -> Selector -> Selector gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Selector -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Selector -> r gmapQ :: (forall d. Data d => d -> u) -> Selector -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Selector -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Selector -> m Selector gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Selector -> m Selector gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Selector -> m Selector | |
Ord Selector Source # | |
Show Selector Source # | |
Generic Selector | |
FromJSON Selector | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON Selector | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: Selector -> Encoding toJSONList :: [Selector] -> Value toEncodingList :: [Selector] -> Encoding | |
ShATermConvertible Selector | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> Selector -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [Selector] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, Selector) fromShATermList' :: Int -> ATermTable -> (ATermTable, [Selector]) | |
Pretty Selector Source # | |
type Rep Selector | |
Defined in HasCASL.ATC_HasCASL type Rep Selector = D1 ('MetaData "Selector" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "Select" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Id)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Partiality)))) |
data entries are produced from possibly mutual recursive data types. The top-level identifiers of these types are never renamed but there renaming is stored in the identifier map. This identifier map must never be empty (even without renamings) because (the domain of) this map is used to store the other (recursively dependent) top-level identifiers.
Instances
Eq DataEntry Source # | |
Data DataEntry Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataEntry -> c DataEntry gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataEntry toConstr :: DataEntry -> Constr dataTypeOf :: DataEntry -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataEntry) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataEntry) gmapT :: (forall b. Data b => b -> b) -> DataEntry -> DataEntry gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataEntry -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataEntry -> r gmapQ :: (forall d. Data d => d -> u) -> DataEntry -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> DataEntry -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataEntry -> m DataEntry gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataEntry -> m DataEntry gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataEntry -> m DataEntry | |
Ord DataEntry Source # | |
Defined in HasCASL.Le | |
Show DataEntry Source # | |
Generic DataEntry | |
FromJSON DataEntry | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON DataEntry | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: DataEntry -> Encoding toJSONList :: [DataEntry] -> Value toEncodingList :: [DataEntry] -> Encoding | |
ShATermConvertible DataEntry | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> DataEntry -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [DataEntry] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, DataEntry) fromShATermList' :: Int -> ATermTable -> (ATermTable, [DataEntry]) | |
Pretty DataEntry Source # | |
type Rep DataEntry | |
Defined in HasCASL.ATC_HasCASL type Rep DataEntry = D1 ('MetaData "DataEntry" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "DataEntry" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IdMap) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Id) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GenKind))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TypeArg]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawKind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set AltDefn)))))) |
possible definitions for type identifiers
Constructors
NoTypeDefn | |
PreDatatype | |
DatatypeDefn DataEntry | |
AliasTypeDefn Type |
Instances
Eq TypeDefn Source # | |
Data TypeDefn Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeDefn -> c TypeDefn gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeDefn toConstr :: TypeDefn -> Constr dataTypeOf :: TypeDefn -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeDefn) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeDefn) gmapT :: (forall b. Data b => b -> b) -> TypeDefn -> TypeDefn gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeDefn -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeDefn -> r gmapQ :: (forall d. Data d => d -> u) -> TypeDefn -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeDefn -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeDefn -> m TypeDefn gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeDefn -> m TypeDefn gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeDefn -> m TypeDefn | |
Ord TypeDefn Source # | |
Show TypeDefn Source # | |
Generic TypeDefn | |
FromJSON TypeDefn | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON TypeDefn | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: TypeDefn -> Encoding toJSONList :: [TypeDefn] -> Value toEncodingList :: [TypeDefn] -> Encoding | |
ShATermConvertible TypeDefn | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> TypeDefn -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [TypeDefn] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, TypeDefn) fromShATermList' :: Int -> ATermTable -> (ATermTable, [TypeDefn]) | |
Pretty TypeDefn Source # | |
type Rep TypeDefn | |
Defined in HasCASL.ATC_HasCASL type Rep TypeDefn = D1 ('MetaData "TypeDefn" "HasCASL.Le" "main" 'False) ((C1 ('MetaCons "NoTypeDefn" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PreDatatype" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DatatypeDefn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DataEntry)) :+: C1 ('MetaCons "AliasTypeDefn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) |
for type identifiers also store the raw kind, instances and supertypes
Constructors
TypeInfo | |
Fields
|
Instances
Eq TypeInfo Source # | |
Data TypeInfo Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeInfo -> c TypeInfo gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeInfo toConstr :: TypeInfo -> Constr dataTypeOf :: TypeInfo -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeInfo) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeInfo) gmapT :: (forall b. Data b => b -> b) -> TypeInfo -> TypeInfo gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeInfo -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeInfo -> r gmapQ :: (forall d. Data d => d -> u) -> TypeInfo -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeInfo -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeInfo -> m TypeInfo gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeInfo -> m TypeInfo gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeInfo -> m TypeInfo | |
Ord TypeInfo Source # | |
Show TypeInfo Source # | |
Generic TypeInfo | |
FromJSON TypeInfo | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON TypeInfo | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: TypeInfo -> Encoding toJSONList :: [TypeInfo] -> Value toEncodingList :: [TypeInfo] -> Encoding | |
ShATermConvertible TypeInfo | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> TypeInfo -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [TypeInfo] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, TypeInfo) fromShATermList' :: Int -> ATermTable -> (ATermTable, [TypeInfo]) | |
Pretty TypeInfo Source # | |
type Rep TypeInfo | |
Defined in HasCASL.ATC_HasCASL type Rep TypeInfo = D1 ('MetaData "TypeInfo" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "TypeInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "typeKind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawKind) :*: S1 ('MetaSel ('Just "otherTypeKinds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Kind))) :*: (S1 ('MetaSel ('Just "superTypes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Id)) :*: S1 ('MetaSel ('Just "typeDefn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeDefn)))) |
starTypeInfo :: TypeInfo Source #
the minimal information for a sort
mapType :: IdMap -> Type -> Type Source #
rename the type according to identifier map (for comorphisms)
sentences
data types are also special sentences because of their properties
Constructors
Formula Term | |
DatatypeSen [DataEntry] | |
ProgEqSen Id TypeScheme ProgEq |
Instances
variables
data TypeVarDefn Source #
type variable are kept separately
Constructors
TypeVarDefn Variance VarKind RawKind Int |
Instances
Data TypeVarDefn Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeVarDefn -> c TypeVarDefn gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeVarDefn toConstr :: TypeVarDefn -> Constr dataTypeOf :: TypeVarDefn -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeVarDefn) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeVarDefn) gmapT :: (forall b. Data b => b -> b) -> TypeVarDefn -> TypeVarDefn gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeVarDefn -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeVarDefn -> r gmapQ :: (forall d. Data d => d -> u) -> TypeVarDefn -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeVarDefn -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeVarDefn -> m TypeVarDefn gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeVarDefn -> m TypeVarDefn gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeVarDefn -> m TypeVarDefn | |
Show TypeVarDefn Source # | |
Defined in HasCASL.Le Methods showsPrec :: Int -> TypeVarDefn -> ShowS show :: TypeVarDefn -> String showList :: [TypeVarDefn] -> ShowS | |
Generic TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL Associated Types type Rep TypeVarDefn :: Type -> Type | |
FromJSON TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL Methods toJSON :: TypeVarDefn -> Value toEncoding :: TypeVarDefn -> Encoding toJSONList :: [TypeVarDefn] -> Value toEncodingList :: [TypeVarDefn] -> Encoding | |
ShATermConvertible TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> TypeVarDefn -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [TypeVarDefn] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, TypeVarDefn) fromShATermList' :: Int -> ATermTable -> (ATermTable, [TypeVarDefn]) | |
Pretty TypeVarDefn Source # | |
Defined in HasCASL.PrintLe | |
type Rep TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL type Rep TypeVarDefn = D1 ('MetaData "TypeVarDefn" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "TypeVarDefn" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variance) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 VarKind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawKind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))) |
type LocalTypeVars = Map Id TypeVarDefn Source #
mapping type variables to their definition
the type of a local variable
Instances
Data VarDefn Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VarDefn -> c VarDefn gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c VarDefn dataTypeOf :: VarDefn -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c VarDefn) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c VarDefn) gmapT :: (forall b. Data b => b -> b) -> VarDefn -> VarDefn gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VarDefn -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VarDefn -> r gmapQ :: (forall d. Data d => d -> u) -> VarDefn -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> VarDefn -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> VarDefn -> m VarDefn gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VarDefn -> m VarDefn gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VarDefn -> m VarDefn | |
Show VarDefn Source # | |
Generic VarDefn | |
FromJSON VarDefn | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON VarDefn | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: VarDefn -> Encoding toJSONList :: [VarDefn] -> Value toEncodingList :: [VarDefn] -> Encoding | |
ShATermConvertible VarDefn | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> VarDefn -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [VarDefn] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, VarDefn) fromShATermList' :: Int -> ATermTable -> (ATermTable, [VarDefn]) | |
Pretty VarDefn Source # | |
type Rep VarDefn | |
Defined in HasCASL.ATC_HasCASL |
assumptions
data ConstrInfo Source #
name and scheme of a constructor
Constructors
ConstrInfo | |
Fields
|
Instances
Eq ConstrInfo Source # | |
Defined in HasCASL.Le | |
Data ConstrInfo Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConstrInfo -> c ConstrInfo gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConstrInfo toConstr :: ConstrInfo -> Constr dataTypeOf :: ConstrInfo -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConstrInfo) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConstrInfo) gmapT :: (forall b. Data b => b -> b) -> ConstrInfo -> ConstrInfo gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConstrInfo -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConstrInfo -> r gmapQ :: (forall d. Data d => d -> u) -> ConstrInfo -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ConstrInfo -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConstrInfo -> m ConstrInfo gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConstrInfo -> m ConstrInfo gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConstrInfo -> m ConstrInfo | |
Ord ConstrInfo Source # | |
Defined in HasCASL.Le Methods compare :: ConstrInfo -> ConstrInfo -> Ordering (<) :: ConstrInfo -> ConstrInfo -> Bool (<=) :: ConstrInfo -> ConstrInfo -> Bool (>) :: ConstrInfo -> ConstrInfo -> Bool (>=) :: ConstrInfo -> ConstrInfo -> Bool max :: ConstrInfo -> ConstrInfo -> ConstrInfo min :: ConstrInfo -> ConstrInfo -> ConstrInfo | |
Show ConstrInfo Source # | |
Defined in HasCASL.Le Methods showsPrec :: Int -> ConstrInfo -> ShowS show :: ConstrInfo -> String showList :: [ConstrInfo] -> ShowS | |
Generic ConstrInfo | |
Defined in HasCASL.ATC_HasCASL Associated Types type Rep ConstrInfo :: Type -> Type | |
FromJSON ConstrInfo | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON ConstrInfo | |
Defined in HasCASL.ATC_HasCASL Methods toJSON :: ConstrInfo -> Value toEncoding :: ConstrInfo -> Encoding toJSONList :: [ConstrInfo] -> Value toEncodingList :: [ConstrInfo] -> Encoding | |
ShATermConvertible ConstrInfo | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> ConstrInfo -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [ConstrInfo] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, ConstrInfo) fromShATermList' :: Int -> ATermTable -> (ATermTable, [ConstrInfo]) | |
Pretty ConstrInfo Source # | |
Defined in HasCASL.PrintLe | |
type Rep ConstrInfo | |
Defined in HasCASL.ATC_HasCASL type Rep ConstrInfo = D1 ('MetaData "ConstrInfo" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "ConstrInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "constrId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Id) :*: S1 ('MetaSel ('Just "constrType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeScheme))) |
possible definitions of functions
Constructors
NoOpDefn OpBrand | |
ConstructData Id | target type |
SelectData (Set ConstrInfo) Id | constructors of source type |
Definition OpBrand Term |
Instances
Eq OpDefn Source # | |
Data OpDefn Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OpDefn -> c OpDefn gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OpDefn dataTypeOf :: OpDefn -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OpDefn) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OpDefn) gmapT :: (forall b. Data b => b -> b) -> OpDefn -> OpDefn gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OpDefn -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OpDefn -> r gmapQ :: (forall d. Data d => d -> u) -> OpDefn -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> OpDefn -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> OpDefn -> m OpDefn gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OpDefn -> m OpDefn gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OpDefn -> m OpDefn | |
Ord OpDefn Source # | |
Show OpDefn Source # | |
Generic OpDefn | |
FromJSON OpDefn | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON OpDefn | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: OpDefn -> Encoding toJSONList :: [OpDefn] -> Value toEncodingList :: [OpDefn] -> Encoding | |
ShATermConvertible OpDefn | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> OpDefn -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [OpDefn] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, OpDefn) fromShATermList' :: Int -> ATermTable -> (ATermTable, [OpDefn]) | |
Pretty OpDefn Source # | |
type Rep OpDefn | |
Defined in HasCASL.ATC_HasCASL type Rep OpDefn = D1 ('MetaData "OpDefn" "HasCASL.Le" "main" 'False) ((C1 ('MetaCons "NoOpDefn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OpBrand)) :+: C1 ('MetaCons "ConstructData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Id))) :+: (C1 ('MetaCons "SelectData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set ConstrInfo)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Id)) :+: C1 ('MetaCons "Definition" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OpBrand) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Term)))) |
scheme, attributes and definition for function identifiers
Instances
Eq OpInfo Source # | |
Data OpInfo Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OpInfo -> c OpInfo gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OpInfo dataTypeOf :: OpInfo -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OpInfo) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OpInfo) gmapT :: (forall b. Data b => b -> b) -> OpInfo -> OpInfo gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OpInfo -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OpInfo -> r gmapQ :: (forall d. Data d => d -> u) -> OpInfo -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> OpInfo -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> OpInfo -> m OpInfo gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OpInfo -> m OpInfo gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OpInfo -> m OpInfo | |
Ord OpInfo Source # | |
Show OpInfo Source # | |
Generic OpInfo | |
FromJSON OpInfo | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON OpInfo | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: OpInfo -> Encoding toJSONList :: [OpInfo] -> Value toEncodingList :: [OpInfo] -> Encoding | |
ShATermConvertible OpInfo | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> OpInfo -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [OpInfo] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, OpInfo) fromShATermList' :: Int -> ATermTable -> (ATermTable, [OpInfo]) | |
Pretty OpInfo Source # | |
type Rep OpInfo | |
Defined in HasCASL.ATC_HasCASL type Rep OpInfo = D1 ('MetaData "OpInfo" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "OpInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "opType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeScheme) :*: (S1 ('MetaSel ('Just "opAttrs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set OpAttr)) :*: S1 ('MetaSel ('Just "opDefn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OpDefn)))) |
isConstructor :: OpInfo -> Bool Source #
test for constructor
the local environment and final signature
the signature is established by the classes, types and assumptions
Constructors
Env | |
Instances
initialEnv :: Env Source #
the empty environment (fresh variables start with 1)
Instances
Eq Constrain Source # | |
Data Constrain Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Constrain -> c Constrain gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Constrain toConstr :: Constrain -> Constr dataTypeOf :: Constrain -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Constrain) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Constrain) gmapT :: (forall b. Data b => b -> b) -> Constrain -> Constrain gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Constrain -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Constrain -> r gmapQ :: (forall d. Data d => d -> u) -> Constrain -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Constrain -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Constrain -> m Constrain gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Constrain -> m Constrain gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Constrain -> m Constrain | |
Ord Constrain Source # | |
Defined in HasCASL.Le | |
Show Constrain Source # | |
Generic Constrain | |
GetRange Constrain Source # | |
FromJSON Constrain | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON Constrain | |
Defined in HasCASL.ATC_HasCASL Methods toEncoding :: Constrain -> Encoding toJSONList :: [Constrain] -> Value toEncodingList :: [Constrain] -> Encoding | |
ShATermConvertible Constrain | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> Constrain -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [Constrain] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, Constrain) fromShATermList' :: Int -> ATermTable -> (ATermTable, [Constrain]) | |
Pretty Constrain Source # | |
type Rep Constrain | |
Defined in HasCASL.ATC_HasCASL type Rep Constrain = D1 ('MetaData "Constrain" "HasCASL.Le" "main" 'False) (C1 ('MetaCons "Kinding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "Subtyping" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) |
accessing the environment
fromResult :: (Env -> Result a) -> State Env (Maybe a) Source #
converting a result to a state computation
putLocalTypeVars :: LocalTypeVars -> State Env () Source #
store local type variables
morphisms
type FunMap = Map (Id, TypeScheme) (Id, TypeScheme) Source #
keep types and class disjoint and use a single identifier map for both
Constructors
Morphism | |
Instances
symbol stuff
data SymbolType Source #
the type or kind of an identifier
Constructors
OpAsItemType TypeScheme | |
TypeAsItemType RawKind | |
ClassAsItemType RawKind | |
SuperClassSymbol Kind | |
TypeKindInstance Kind | |
SuperTypeSymbol Id | |
TypeAliasSymbol Type | |
PredAsItemType TypeScheme |
Instances
Eq SymbolType Source # | |
Defined in HasCASL.Le | |
Data SymbolType Source # | |
Defined in HasCASL.Le Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SymbolType -> c SymbolType gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SymbolType toConstr :: SymbolType -> Constr dataTypeOf :: SymbolType -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SymbolType) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SymbolType) gmapT :: (forall b. Data b => b -> b) -> SymbolType -> SymbolType gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SymbolType -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SymbolType -> r gmapQ :: (forall d. Data d => d -> u) -> SymbolType -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> SymbolType -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> SymbolType -> m SymbolType gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SymbolType -> m SymbolType gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SymbolType -> m SymbolType | |
Ord SymbolType Source # | |
Defined in HasCASL.Le Methods compare :: SymbolType -> SymbolType -> Ordering (<) :: SymbolType -> SymbolType -> Bool (<=) :: SymbolType -> SymbolType -> Bool (>) :: SymbolType -> SymbolType -> Bool (>=) :: SymbolType -> SymbolType -> Bool max :: SymbolType -> SymbolType -> SymbolType min :: SymbolType -> SymbolType -> SymbolType | |
Show SymbolType Source # | |
Defined in HasCASL.Le Methods showsPrec :: Int -> SymbolType -> ShowS show :: SymbolType -> String showList :: [SymbolType] -> ShowS | |
Generic SymbolType | |
Defined in HasCASL.ATC_HasCASL Associated Types type Rep SymbolType :: Type -> Type | |
FromJSON SymbolType | |
Defined in HasCASL.ATC_HasCASL | |
ToJSON SymbolType | |
Defined in HasCASL.ATC_HasCASL Methods toJSON :: SymbolType -> Value toEncoding :: SymbolType -> Encoding toJSONList :: [SymbolType] -> Value toEncodingList :: [SymbolType] -> Encoding | |
ShATermConvertible SymbolType | |
Defined in HasCASL.ATC_HasCASL Methods toShATermAux :: ATermTable -> SymbolType -> IO (ATermTable, Int) toShATermList' :: ATermTable -> [SymbolType] -> IO (ATermTable, Int) fromShATermAux :: Int -> ATermTable -> (ATermTable, SymbolType) fromShATermList' :: Int -> ATermTable -> (ATermTable, [SymbolType]) | |
type Rep SymbolType | |
Defined in HasCASL.ATC_HasCASL type Rep SymbolType = D1 ('MetaData "SymbolType" "HasCASL.Le" "main" 'False) (((C1 ('MetaCons "OpAsItemType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeScheme)) :+: C1 ('MetaCons "TypeAsItemType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawKind))) :+: (C1 ('MetaCons "ClassAsItemType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawKind)) :+: C1 ('MetaCons "SuperClassSymbol" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)))) :+: ((C1 ('MetaCons "TypeKindInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "SuperTypeSymbol" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Id))) :+: (C1 ('MetaCons "TypeAliasSymbol" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "PredAsItemType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeScheme))))) |
symbols with their type
Constructors
Symbol | |
Fields
|
Instances
idToOpSymbol :: Id -> TypeScheme -> Symbol Source #
create an operation symbol
raw symbols where the type of a qualified raw symbol can be a type scheme and also be a kind if the symbol kind is unknown.
Instances
type RawSymbolMap = Map RawSymbol RawSymbol Source #
mapping raw symbols to raw symbols
rawSymName :: RawSymbol -> Id Source #
extract the top identifer from a raw symbol
symbTypeToKind :: SymbolType -> SymbKind Source #
convert a symbol type to a symbol kind
symbKindToRaw :: SymbKind -> Id -> RawSymbol Source #
create a raw symbol from a symbol kind and an identifier
getCompoundLists :: Env -> Set [Id] Source #