let get_block  = fun ts -> function
    | { bd_id    = "block";
        bd_args  = [];
        bd_ocaml = Some ocaml; } ->
        T.Tmpl_Block (ocaml, ts)
    | { bd_id    = "iter";
        bd_args  = ["name", name];
        bd_ocaml = Some ocaml; } ->
        T.Tmpl_Iter (name, ocaml, ts)
    | { bd_id    = "for";
        bd_args  = ["name", name];
        bd_ocaml = Some ocaml; } ->
        T.Tmpl_For (name, ocaml, ts)
    | { bd_id    = "if";
        bd_args  = [];
        bd_ocaml = Some ocaml; } ->
        T.Tmpl_If (ocaml, ts)
    | _ ->
        raise Invalid_template