I don't know if this is related to #1580, so I'm opening this as a separate issue. Jumping to test on line 3 gives "Not in environment 'test'". As in that issue, fixing the type error (in this case, removing the annotation on ~f in the first line) fixes locate.
let test ~f:(_ : unit -> unit) = ()
type t = F : { f : unit -> 'fn } -> t
let call (F { f }) = test ~f
Tested on 945e5e1