Blame camlp4/test/fixtures/pr4452.ml

Packit 1f8b6b
open Camlp4.PreCast
Packit 1f8b6b
Packit 1f8b6b
let _loc = Loc.mk "?"
Packit 1f8b6b
Packit 1f8b6b
let base base fields ty =
Packit 1f8b6b
  let fields = List.fold_right (fun field acc ->
Packit 1f8b6b
    let c = <:ctyp< $lid:field$ : $uid:field$.record >> in
Packit 1f8b6b
    <:ctyp< $c$ ; $acc$ >>) fields <:ctyp< >>
Packit 1f8b6b
  in
Packit 1f8b6b
  <:module_binding< $uid:base$ :
Packit 1f8b6b
    sig type record = {
Packit 1f8b6b
        key : $ty$;
Packit 1f8b6b
        $fields$
Packit 1f8b6b
      } end = struct
Packit 1f8b6b
        type record = {
Packit 1f8b6b
        key : $ty$;
Packit 1f8b6b
        $fields$
Packit 1f8b6b
      } end
Packit 1f8b6b
    >>
Packit 1f8b6b
Packit 1f8b6b
let _ =
Packit 1f8b6b
  let b = base "b" ["f1"; "f2"] <:ctyp< int >> in
Packit 1f8b6b
  Camlp4.PreCast.Printers.OCaml.print_implem
Packit 1f8b6b
    <:str_item< module rec $b$ >>