OK, I'm sorry in that c is ill-formed. But that's not my point. I'm asking that, why a type which cannot appear in let statements can appear in function parameter position. Other types containing some do appear in both parameter position and let statements. The behavior of (some P) -> () is quite strange.
It contains another problem, please read my comment in the proposal review thread Maybe we should argue in the review thread, in order not to scatter the discussion.