# let f ~x = let z = x ~y:0 in fun ~y ~u:() -> z + (x ~y);;
val f : x:(y:int -> int) -> y:int -> u:unit -> int = <fun>
# let rec x = f ~x ~u:();;
Segmentation fault
Rec_check considers that an application with missing labelled parameters is a simple closure allocation, not inspecting the function and arguments. But currently this is wrong, as the function is applied to all parameters until the first missing.