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 |
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
ClassInfo | |
|
Instances
Eq ClassInfo Source # | |
Data ClassInfo Source # | |
Defined in HasCASL.Le 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 parseJSON :: Value -> Parser ClassInfo parseJSONList :: Value -> Parser [ClassInfo] | |
ToJSON ClassInfo | |
Defined in HasCASL.ATC_HasCASL toEncoding :: ClassInfo -> Encoding toJSONList :: [ClassInfo] -> Value toEncodingList :: [ClassInfo] -> Encoding | |
ShATermConvertible ClassInfo | |
Defined in HasCASL.ATC_HasCASL 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 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 parseJSON :: Value -> Parser GenKind parseJSONList :: Value -> Parser [GenKind] | |
ToJSON GenKind | |
Defined in HasCASL.ATC_HasCASL toEncoding :: GenKind -> Encoding toJSONList :: [GenKind] -> Value toEncodingList :: [GenKind] -> Encoding | |
ShATermConvertible GenKind | |
Defined in HasCASL.ATC_HasCASL 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
Construct (Maybe Id) [Type] Partiality [[Selector]] |
Instances
Eq AltDefn Source # | |
Data AltDefn Source # | |
Defined in HasCASL.Le 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 parseJSON :: Value -> Parser AltDefn parseJSONList :: Value -> Parser [AltDefn] | |
ToJSON AltDefn | |
Defined in HasCASL.ATC_HasCASL toEncoding :: AltDefn -> Encoding toJSONList :: [AltDefn] -> Value toEncodingList :: [AltDefn] -> Encoding | |
ShATermConvertible AltDefn | |
Defined in HasCASL.ATC_HasCASL 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
Select (Maybe Id) Type Partiality |
Instances
Eq Selector Source # | |
Data Selector Source # | |
Defined in HasCASL.Le 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 parseJSON :: Value -> Parser Selector parseJSONList :: Value -> Parser [Selector] | |
ToJSON Selector | |
Defined in HasCASL.ATC_HasCASL toEncoding :: Selector -> Encoding toJSONList :: [Selector] -> Value toEncodingList :: [Selector] -> Encoding | |
ShATermConvertible Selector | |
Defined in HasCASL.ATC_HasCASL 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 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 parseJSON :: Value -> Parser DataEntry parseJSONList :: Value -> Parser [DataEntry] | |
ToJSON DataEntry | |
Defined in HasCASL.ATC_HasCASL toEncoding :: DataEntry -> Encoding toJSONList :: [DataEntry] -> Value toEncodingList :: [DataEntry] -> Encoding | |
ShATermConvertible DataEntry | |
Defined in HasCASL.ATC_HasCASL 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
Instances
Eq TypeDefn Source # | |
Data TypeDefn Source # | |
Defined in HasCASL.Le 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 parseJSON :: Value -> Parser TypeDefn parseJSONList :: Value -> Parser [TypeDefn] | |
ToJSON TypeDefn | |
Defined in HasCASL.ATC_HasCASL toEncoding :: TypeDefn -> Encoding toJSONList :: [TypeDefn] -> Value toEncodingList :: [TypeDefn] -> Encoding | |
ShATermConvertible TypeDefn | |
Defined in HasCASL.ATC_HasCASL 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
TypeInfo | |
|
Instances
Eq TypeInfo Source # | |
Data TypeInfo Source # | |
Defined in HasCASL.Le 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 parseJSON :: Value -> Parser TypeInfo parseJSONList :: Value -> Parser [TypeInfo] | |
ToJSON TypeInfo | |
Defined in HasCASL.ATC_HasCASL toEncoding :: TypeInfo -> Encoding toJSONList :: [TypeInfo] -> Value toEncodingList :: [TypeInfo] -> Encoding | |
ShATermConvertible TypeInfo | |
Defined in HasCASL.ATC_HasCASL 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
Instances
variables
data TypeVarDefn Source #
type variable are kept separately
Instances
Data TypeVarDefn Source # | |
Defined in HasCASL.Le 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 showsPrec :: Int -> TypeVarDefn -> ShowS show :: TypeVarDefn -> String showList :: [TypeVarDefn] -> ShowS | |
Generic TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL type Rep TypeVarDefn :: Type -> Type from :: TypeVarDefn -> Rep TypeVarDefn x to :: Rep TypeVarDefn x -> TypeVarDefn | |
FromJSON TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL parseJSON :: Value -> Parser TypeVarDefn parseJSONList :: Value -> Parser [TypeVarDefn] | |
ToJSON TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL toJSON :: TypeVarDefn -> Value toEncoding :: TypeVarDefn -> Encoding toJSONList :: [TypeVarDefn] -> Value toEncodingList :: [TypeVarDefn] -> Encoding | |
ShATermConvertible TypeVarDefn | |
Defined in HasCASL.ATC_HasCASL 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 pretty :: TypeVarDefn -> Doc Source # pretties :: [TypeVarDefn] -> Doc Source # | |
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 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 parseJSON :: Value -> Parser VarDefn parseJSONList :: Value -> Parser [VarDefn] | |
ToJSON VarDefn | |
Defined in HasCASL.ATC_HasCASL toEncoding :: VarDefn -> Encoding toJSONList :: [VarDefn] -> Value toEncodingList :: [VarDefn] -> Encoding | |
ShATermConvertible VarDefn | |
Defined in HasCASL.ATC_HasCASL 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
ConstrInfo | |
|
Instances
Eq ConstrInfo Source # | |
Defined in HasCASL.Le (==) :: ConstrInfo -> ConstrInfo -> Bool (/=) :: ConstrInfo -> ConstrInfo -> Bool | |
Data ConstrInfo Source # | |
Defined in HasCASL.Le 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 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 showsPrec :: Int -> ConstrInfo -> ShowS show :: ConstrInfo -> String showList :: [ConstrInfo] -> ShowS | |
Generic ConstrInfo | |
Defined in HasCASL.ATC_HasCASL type Rep ConstrInfo :: Type -> Type from :: ConstrInfo -> Rep ConstrInfo x to :: Rep ConstrInfo x -> ConstrInfo | |
FromJSON ConstrInfo | |
Defined in HasCASL.ATC_HasCASL parseJSON :: Value -> Parser ConstrInfo parseJSONList :: Value -> Parser [ConstrInfo] | |
ToJSON ConstrInfo | |
Defined in HasCASL.ATC_HasCASL toJSON :: ConstrInfo -> Value toEncoding :: ConstrInfo -> Encoding toJSONList :: [ConstrInfo] -> Value toEncodingList :: [ConstrInfo] -> Encoding | |
ShATermConvertible ConstrInfo | |
Defined in HasCASL.ATC_HasCASL 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 pretty :: ConstrInfo -> Doc Source # pretties :: [ConstrInfo] -> Doc Source # | |
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
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 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 parseJSON :: Value -> Parser OpDefn parseJSONList :: Value -> Parser [OpDefn] | |
ToJSON OpDefn | |
Defined in HasCASL.ATC_HasCASL toEncoding :: OpDefn -> Encoding toJSONList :: [OpDefn] -> Value toEncodingList :: [OpDefn] -> Encoding | |
ShATermConvertible OpDefn | |
Defined in HasCASL.ATC_HasCASL 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 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 parseJSON :: Value -> Parser OpInfo parseJSONList :: Value -> Parser [OpInfo] | |
ToJSON OpInfo | |
Defined in HasCASL.ATC_HasCASL toEncoding :: OpInfo -> Encoding toJSONList :: [OpInfo] -> Value toEncodingList :: [OpInfo] -> Encoding | |
ShATermConvertible OpInfo | |
Defined in HasCASL.ATC_HasCASL 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
Instances
initialEnv :: Env Source #
the empty environment (fresh variables start with 1)
Instances
Eq Constrain Source # | |
Data Constrain Source # | |
Defined in HasCASL.Le 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 parseJSON :: Value -> Parser Constrain parseJSONList :: Value -> Parser [Constrain] | |
ToJSON Constrain | |
Defined in HasCASL.ATC_HasCASL toEncoding :: Constrain -> Encoding toJSONList :: [Constrain] -> Value toEncodingList :: [Constrain] -> Encoding | |
ShATermConvertible Constrain | |
Defined in HasCASL.ATC_HasCASL 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
Instances
symbol stuff
data SymbolType Source #
the type or kind of an identifier
OpAsItemType TypeScheme | |
TypeAsItemType RawKind | |
ClassAsItemType RawKind | |
SuperClassSymbol Kind | |
TypeKindInstance Kind | |
SuperTypeSymbol Id | |
TypeAliasSymbol Type | |
PredAsItemType TypeScheme |
Instances
Eq SymbolType Source # | |
Defined in HasCASL.Le (==) :: SymbolType -> SymbolType -> Bool (/=) :: SymbolType -> SymbolType -> Bool | |
Data SymbolType Source # | |
Defined in HasCASL.Le 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 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 showsPrec :: Int -> SymbolType -> ShowS show :: SymbolType -> String showList :: [SymbolType] -> ShowS | |
Generic SymbolType | |
Defined in HasCASL.ATC_HasCASL type Rep SymbolType :: Type -> Type from :: SymbolType -> Rep SymbolType x to :: Rep SymbolType x -> SymbolType | |
FromJSON SymbolType | |
Defined in HasCASL.ATC_HasCASL parseJSON :: Value -> Parser SymbolType parseJSONList :: Value -> Parser [SymbolType] | |
ToJSON SymbolType | |
Defined in HasCASL.ATC_HasCASL toJSON :: SymbolType -> Value toEncoding :: SymbolType -> Encoding toJSONList :: [SymbolType] -> Value toEncodingList :: [SymbolType] -> Encoding | |
ShATermConvertible SymbolType | |
Defined in HasCASL.ATC_HasCASL 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
Symbol | |
|
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 #