(* TEST * expect *) let rec a = lazy b and b = 3;; [%%expect{| Line 1, characters 12-18: 1 | let rec a = lazy b and b = 3;; ^^^^^^ Error: This kind of expression is not allowed as right-hand side of `let rec' |}];; let rec e = lazy (fun _ -> f) and f = ();; [%%expect{| val e : ('a -> unit) lazy_t = lazy val f : unit = () |}];; let rec x = lazy (Lazy.force x + Lazy.force x) ;; [%%expect{| val x : int Lazy.t = |}];;