#define SEM_HM_C
#include "../ast.h"
-
-struct scheme {
- struct type *type;
- int nvar;
- char **var;
-};
-
-struct substitution {
- int nvar;
- char **vars;
- struct type **types;
-};
+#include "hm/gamma.h"
+#include "hm/subst.h"
+#include "hm/scheme.h"
struct ast *infer(struct ast *ast);
+struct subst *infer_expr(struct gamma *gamma, struct expr *expr, struct type *type);
#endif