work on type inference some more
[ccc.git] / sem / hm / scheme.h
1 #ifndef SEM_HM_SCHEME_H
2 #define SEM_HM_SCHEME_H
3
4 #include "../hm.h"
5
6 struct scheme {
7 struct type *type;
8 int nvar;
9 char **var;
10 };
11
12 struct type *scheme_instantiate(struct gamma *gamma, struct scheme *s);
13 struct scheme *scheme_create(struct type *t);
14 struct scheme *scheme_generalise(struct gamma *gamma, struct type *t);
15
16 void scheme_print(struct scheme *scheme, FILE *out);
17 void scheme_free(struct scheme *scheme);
18
19 #endif