hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Typedefs | Functions
typeinf.H File Reference
#include <hobbes/lang/type.H>
#include <hobbes/lang/expr.H>
#include <hobbes/util/unionfind.H>
#include <map>
#include <set>
Include dependency graph for typeinf.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hobbes::UTypeRec
 
struct  hobbes::LiftUType
 
struct  hobbes::MoreDefinedType
 
class  hobbes::MonoTypeUnifier
 
class  hobbes::scoped_unification_suppression
 

Namespaces

 hobbes
 

Typedefs

typedef std::pair< Constraints, MonoTypes > hobbes::QualLiftedMonoTypes
 
typedef std::pair< Constraints, MonoTypePtr > hobbes::QualLiftedMonoType
 

Functions

MonoTypePtr hobbes::substitute (MonoTypeUnifier *, const MonoTypePtr &)
 
MonoTypes hobbes::substitute (MonoTypeUnifier *, const MonoTypes &)
 
ConstraintPtr hobbes::substitute (MonoTypeUnifier *, const ConstraintPtr &)
 
Constraints hobbes::substitute (MonoTypeUnifier *, const Constraints &)
 
QualTypePtr hobbes::substitute (MonoTypeUnifier *, const QualTypePtr &)
 
ExprPtr hobbes::substitute (MonoTypeUnifier *, const ExprPtr &)
 
bool hobbes::unifiable (const TEnvPtr &, const MonoTypePtr &, const MonoTypePtr &)
 
bool hobbes::unifiable (const TEnvPtr &, const MonoTypes &, const MonoTypes &)
 
bool hobbes::unifiable (const TEnvPtr &, const ConstraintPtr &, const ConstraintPtr &)
 
bool hobbes::refine (const TEnvPtr &tenv, const ConstraintPtr &c, MonoTypeUnifier *s, Definitions *)
 
bool hobbes::refine (const TEnvPtr &tenv, const Constraints &cs, MonoTypeUnifier *s, Definitions *)
 
ExprPtr hobbes::validateType (const TEnvPtr &tenv, const ExprPtr &e, Definitions *)
 
ExprPtr hobbes::validateType (const TEnvPtr &tenv, const std::string &vname, const ExprPtr &e, Definitions *)
 
void hobbes::mgu (const ExprPtr &, const ExprPtr &, MonoTypeUnifier *)
 
void hobbes::mgu (const ExprPtr &, const QualTypePtr &, MonoTypeUnifier *)
 
void hobbes::mgu (const ExprPtr &, const MonoTypePtr &, MonoTypeUnifier *)
 
void hobbes::mgu (const QualTypePtr &t0, const QualTypePtr &t1, MonoTypeUnifier *u)
 
void hobbes::mgu (const MonoTypePtr &t0, const MonoTypePtr &t1, MonoTypeUnifier *u)
 
void hobbes::mgu (const MonoTypes &ts0, const MonoTypes &ts1, MonoTypeUnifier *u)
 
void hobbes::mgu (const ConstraintPtr &, const ConstraintPtr &, MonoTypeUnifier *)
 
QualLiftedMonoTypes hobbes::liftQualifiers (const QualTypes &qts)