3
value rec mk_tuple _loc t n =
4
if n <= 1 then t else <:ctyp< $t$ * $mk_tuple _loc t (n - 1)$ >>;
6
value ctyp_eoi = Gram.Entry.mk "ctyp eoi";
9
ctyp_eoi: [[ t = Syntax.ctyp; `EOI -> t ]];
13
Scanf.sscanf s " %d | %[^!]" begin fun n s ->
14
let t = Syntax.Gram.parse_string ctyp_eoi _loc(* not accurate *) s in
15
<:ctyp< $tup:mk_tuple _loc t n$ >>
18
Quotation.add "power" Quotation.DynAst.ctyp_tag exp;