+ | No_such_field_in_record of {field : Sym.t; record : Typ.t; pos : Pos.t}
+ | Exp_not_a_record of {ty : Typ.t; pos : Pos.t}
+ | Exp_not_an_array of {ty : Typ.t; pos : Pos.t}
+ | Wrong_type of
+ { expected : Typ.t
+ ; given : Typ.t
+ ; pos : Pos.t
+ }