2 #ifndef HOBBES_LANG_TYPEPREDS_HASCTOR_HPP_INCLUDED 3 #define HOBBES_LANG_TYPEPREDS_HASCTOR_HPP_INCLUDED 30 virtual std::string name()
const = 0;
37 static std::string constraintName();
std::shared_ptr< PolyType > PolyTypePtr
Definition: type.H:23
Definition: tyunqualify.H:20
bool satisfied(const UnqualifierPtr &, const TEnvPtr &, const ConstraintPtr &, std::vector< std::pair< std::string, std::shared_ptr< Expr > > > *)
bool satisfiable(const UnqualifierPtr &, const TEnvPtr &, const ConstraintPtr &, std::vector< std::pair< std::string, std::shared_ptr< Expr > > > *)
std::set< std::string > SymSet
Definition: tyunqualify.H:12
std::vector< FunDep > FunDeps
Definition: tyunqualify.H:17
MonoTypePtr ctorty
Definition: hasctor.H:12
MonoTypePtr ctorlbl
Definition: hasctor.H:11
MonoType::ptr MonoTypePtr
Definition: type.H:71
MonoTypePtr variant
Definition: hasctor.H:10
HCEliminators eliminators
Definition: hasctor.H:53
std::shared_ptr< Expr > ExprPtr
Definition: expr.H:58
bool dec(const ConstraintPtr &, AppendsTo *)
Definition: appendsto.C:15
std::shared_ptr< TEnv > TEnvPtr
Definition: type.H:80
std::vector< Definition > Definitions
Definition: expr.H:62
std::vector< HCEliminator * > HCEliminators
Definition: hasctor.H:52
std::shared_ptr< Constraint > ConstraintPtr
Definition: type.H:33
bool refine(const TEnvPtr &tenv, const ConstraintPtr &c, MonoTypeUnifier *s, Definitions *)
Definition: typeinf.C:485
T lookup(const std::map< K, T > &tenv, const K &n)
Definition: cc.C:518
std::vector< annmsg > annmsgs
Definition: lannotation.H:58