ocaml/testsuite/tests/typing-gadts/pr6174.ml

16 lines
421 B
OCaml

(* TEST
* expect
*)
type _ t = C : ((('a -> 'o) -> 'o) -> ('b -> 'o) -> 'o) t
let f : type a o. ((a -> o) -> o) t -> (a -> o) -> o =
fun C k -> k (fun x -> x);;
[%%expect{|
type _ t = C : ((('a -> 'o) -> 'o) -> ('b -> 'o) -> 'o) t
Line 3, characters 24-25:
3 | fun C k -> k (fun x -> x);;
^
Error: This expression has type $0 but an expression was expected of type
$1 = o
|}];;