let compareTypes ?(ignoreSign=true) (t1 : typ) (t2 : typ) : bool =
let typeSigNC (t : typ) : typsig =
let attrFilter (attr : attribute) : bool =
match attr with
| Attr ("poly", _) (* TODO: hack hack! *)
| Attr ("assumeconst", _)
| Attr ("_ptrnode", _)
| Attr ("missing_annot", _)
| Attr ("const", [])
| Attr ("aligned", _)
| Attr ("volatile", [])
| Attr ("deprecated", [])
| Attr ("always_inline", []) -> false
| _ -> true
in
typeSigWithAttrs ~ignoreSign (List.filter attrFilter) t
in
(typeSigNC t1) = (typeSigNC t2)