(* TEST *)

(* A regression test for both PR#4141 and PR#5819: when a recursive
   variable is defined by a { record with ... } expression.
*)

type t = {
  self : t;
  t0 : int;
  t1 : int;
  t2 : int;
  t3 : int;
  t4 : int;
};;
let rec t = {
  self = t;
  t0 = 42;
  t1 = 42;
  t2 = 42;
  t3 = 42;
  t4 = 42;
};;

let rec self = { t with self=self } in
Printf.printf "%d\n" self.self.t0
;;
