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$ >>
|