very menial question, but is there a reason that this works
type rtype = { field : int }
let r : rtype = assert false
let _ = r |> fun { field } -> 0
let _ = let { field } = r in 0
whereas this does not
module type rsig = sig
type r = { somefield : 'a. 'a -> int }
val inj : r
end
module R : rsig = struct
type r = { somefield : 'a. 'a -> int }
let inj : r = { somefield = (fun _ -> 0) }
end
let _ = R.inj |> fun { somefield } -> 0
let _ = let { somefield } = R.inj in 0 (* Unbound record field somefield *)
