(* TEST
flags = " -w -a "
* setup-ocamlc.byte-build-env
** ocamlc.byte
*** check-ocamlc.byte-output
*)

module type Param1 = sig
  type 'a r = [< `A of int ] as 'a
  val f : ?a:string -> string -> [ `A of _ ] r
end

module Make1 (M : Param1) = struct
  include M
  let f = f ~a:""
end

module type Param2 = sig
  type t
  type 'a r = [< `A of t ] as 'a
  val f : ?a:string -> string -> [ `A of _ ] r
end

module Make2 (M : Param2) = struct
  include M
  let f = f ~a:""
end
