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

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

Base.Typing

Description

After the compiler has attributed patterns and expressions with type information during type inference, it is straightforward to recompute the type of every pattern and expression. Since all annotated types are monomorphic, there is no need to instantiate any variables or perform any (non-trivial) unifications.

Documentation

class Typeable a where Source #

Methods

typeOf :: a -> Type Source #

Instances
Typeable PredType Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: PredType -> Type Source #

Typeable Type Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Type -> Type Source #

Typeable a => Typeable (Rhs a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Rhs a -> Type Source #

Typeable a => Typeable (Pattern a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Pattern a -> Type Source #

Typeable a => Typeable (Expression a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Expression a -> Type Source #

Typeable a => Typeable (Alt a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Alt a -> Type Source #

withType :: (Functor f, Typeable (f Type)) => Type -> f Type -> f Type Source #

declVars :: (Eq t, Typeable t, ValueType t) => Decl t -> [(Ident, Int, t)] Source #

patternVars :: (Eq t, Typeable t, ValueType t) => Pattern t -> [(Ident, Int, t)] Source #