work on type inference some more
[ccc.git] / sem / hm.h
index efb1afa..6792c3b 100644 (file)
--- a/sem/hm.h
+++ b/sem/hm.h
@@ -2,19 +2,11 @@
 #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