Extraction of records with a single field
A record type with a single field is extracted as an alias for the type of its field. But this "unboxing" is not taken into account during the extraction of a pattern-matching on this type, as shown in the following example :
type t = { field : int }
let f (x : t) : int =
match x with
| { field = n } -> n
end
is extracted into
type t = Z.t
let f (x: t) : Z.t = let { field = n } = x in n