curry-frontend-1.0.4: Compile the functional logic language Curry to several intermediate formats

Copyright(c) 2002 - 2004 Wolfgang Lux
Martin Engelke
2015 Jan Tikovsky
2016 Finn Teegen
LicenseBSD-3-clause
Maintainerbjp@informatik.uni-kiel.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Base.Types

Contents

Description

This module modules provides the definitions for the internal representation of types in the compiler along with some helper functions.

Synopsis

Representation of types

data Type Source #

Instances
Eq Type Source # 
Instance details

Defined in Base.Types

Methods

(==) :: Type -> Type -> Bool Source #

(/=) :: Type -> Type -> Bool Source #

Ord Type Source # 
Instance details

Defined in Base.Types

Show Type Source # 
Instance details

Defined in Base.Types

Pretty Type 
Instance details

Defined in Base.PrettyTypes

Methods

pPrint :: Type -> Doc

pPrintPrec :: Int -> Type -> Doc

pPrintList :: [Type] -> Doc

IsType Type Source # 
Instance details

Defined in Base.Types

ValueType Type Source # 
Instance details

Defined in Env.Value

ExpandAliasType Type Source # 
Instance details

Defined in Base.TypeSubst

Methods

expandAliasType :: [Type] -> Type -> Type Source #

SubstType Type Source # 
Instance details

Defined in Base.TypeSubst

Methods

subst :: TypeSubst -> Type -> Type Source #

Typeable Type Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Type -> Type Source #

rootOfType :: Type -> QualIdent Source #

class IsType t where Source #

Methods

typeVars :: t -> [Int] Source #

typeSkolems :: t -> [Int] Source #

Instances
IsType ExistTypeScheme Source # 
Instance details

Defined in Base.Types

IsType TypeScheme Source # 
Instance details

Defined in Base.Types

IsType PredType Source # 
Instance details

Defined in Base.Types

IsType Pred Source # 
Instance details

Defined in Base.Types

IsType Type Source # 
Instance details

Defined in Base.Types

(IsType a, Ord a) => IsType (Set a) Source # 
Instance details

Defined in Base.Types

Methods

typeVars :: Set a -> [Int] Source #

typeSkolems :: Set a -> [Int] Source #

typeConstrs :: Type -> [QualIdent] Source #

qualifyType :: ModuleIdent -> Type -> Type Source #

unqualifyType :: ModuleIdent -> Type -> Type Source #

qualifyTC :: ModuleIdent -> QualIdent -> QualIdent Source #

Representation of predicate, predicate sets and predicated types

data Pred Source #

Constructors

Pred QualIdent Type 
Instances
Eq Pred Source # 
Instance details

Defined in Base.Types

Methods

(==) :: Pred -> Pred -> Bool Source #

(/=) :: Pred -> Pred -> Bool Source #

Ord Pred Source # 
Instance details

Defined in Base.Types

Show Pred Source # 
Instance details

Defined in Base.Types

Pretty Pred 
Instance details

Defined in Base.PrettyTypes

Methods

pPrint :: Pred -> Doc

pPrintPrec :: Int -> Pred -> Doc

pPrintList :: [Pred] -> Doc

IsType Pred Source # 
Instance details

Defined in Base.Types

ExpandAliasType Pred Source # 
Instance details

Defined in Base.TypeSubst

Methods

expandAliasType :: [Type] -> Pred -> Pred Source #

SubstType Pred Source # 
Instance details

Defined in Base.TypeSubst

Methods

subst :: TypeSubst -> Pred -> Pred Source #

qualifyPred :: ModuleIdent -> Pred -> Pred Source #

unqualifyPred :: ModuleIdent -> Pred -> Pred Source #

qualifyPredSet :: ModuleIdent -> PredSet -> PredSet Source #

unqualifyPredSet :: ModuleIdent -> PredSet -> PredSet Source #

data PredType Source #

Constructors

PredType PredSet Type 
Instances
Eq PredType Source # 
Instance details

Defined in Base.Types

Show PredType Source # 
Instance details

Defined in Base.Types

Pretty PredType 
Instance details

Defined in Base.PrettyTypes

IsType PredType Source # 
Instance details

Defined in Base.Types

ValueType PredType Source # 
Instance details

Defined in Env.Value

ExpandAliasType PredType Source # 
Instance details

Defined in Base.TypeSubst

SubstType PredType Source # 
Instance details

Defined in Base.TypeSubst

Typeable PredType Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: PredType -> Type Source #

Representation of data constructors

data DataConstr Source #

Constructors

DataConstr Ident Int PredSet [Type] 
RecordConstr Ident Int PredSet [Ident] [Type] 
Instances
Eq DataConstr Source # 
Instance details

Defined in Base.Types

Show DataConstr Source # 
Instance details

Defined in Base.Types

Pretty DataConstr 
Instance details

Defined in Base.PrettyTypes

Representation of class methods

data ClassMethod Source #

Constructors

ClassMethod Ident (Maybe Int) PredType 
Instances
Eq ClassMethod Source # 
Instance details

Defined in Base.Types

Show ClassMethod Source # 
Instance details

Defined in Base.Types

Pretty ClassMethod 
Instance details

Defined in Base.PrettyTypes

Representation of quantification

data TypeScheme Source #

Constructors

ForAll Int PredType 
Instances
Eq TypeScheme Source # 
Instance details

Defined in Base.Types

Show TypeScheme Source # 
Instance details

Defined in Base.Types

Pretty TypeScheme 
Instance details

Defined in Base.PrettyTypes

IsType TypeScheme Source # 
Instance details

Defined in Base.Types

SubstType TypeScheme Source # 
Instance details

Defined in Base.TypeSubst

Predefined types