2a8c3d2637d5b6f72bed174a65196d5195081f8f
1 type inherited
= bool (* true if inherited *)
2 type keep_binding
= Unitary
(* need no info *)
3 | Nonunitary
(* need an env entry *) | Saved
(* need a witness *)
6 ConstVol
of const_vol
* typeC
7 | BaseType
of baseType
* sign
option
9 | FunctionPointer
of typeC
(* only return type *)
10 | Array
of typeC
(* drop size info *)
11 | StructUnionName
of structUnion
* bool (* true if type metavar *) * string
13 | MetaType
of (string * string) * keep_binding
* inherited
14 | Unknown
(* for metavariables of type expression *^* *)
16 and tagged_string
= string
18 and baseType
= VoidType
| CharType
| ShortType
| IntType
| DoubleType
19 | FloatType
| LongType
| BoolType
21 and structUnion
= Struct
| Union
23 and sign
= Signed
| Unsigned
25 and const_vol
= Const
| Volatile
27 val typeC
: typeC
-> unit
29 val compatible
: typeC
-> typeC
option -> bool