hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Functions
typeinf.C File Reference
#include <hobbes/lang/typeinf.H>
#include <hobbes/lang/typepreds.H>
#include <hobbes/lang/constraints.H>
#include <hobbes/util/array.H>
#include <hobbes/util/perf.H>
Include dependency graph for typeinf.C:

Classes

struct  hobbes::encodeCtorForm
 
struct  hobbes::substituteInto
 
struct  hobbes::exprTypeSubst
 
struct  hobbes::expTypeInfF
 
struct  hobbes::applySubstitutionF
 

Namespaces

 hobbes
 

Functions

void hobbes::typeCtorForm (const MonoTypePtr &ty, std::string *cname, MonoTypes *targs, str::seq *ignvs)
 
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 *)
 
bool hobbes::refine (const TEnvPtr &tenv, const QualTypePtr &qty, MonoTypeUnifier *s, Definitions *ds)
 
bool hobbes::refine (const TEnvPtr &tenv, const ExprPtr &e, MonoTypeUnifier *s, Definitions *ds)
 
Record::Members hobbes::makeRecordMembers (const MkRecord::FieldDefs &fds, const MonoTypes &mts)
 
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)