Ppx: use ppx_map to remove some repetition in combinators
Note: Previous MR on ppxs was using ppx_import
: but since update to OCaml 4.12.1, now ppx_import
has some conflicts. It's currently being ported to ppxlib
here, so we can wait until that's definitive to merge that part of ppxs.
Here only the ppx_map
part is proposed to be merged, which does not use ppx_import
. Basically, it maps an expression, e.g.
let t_signature ?loc ?core () : type_expression = t_constant ?loc ?core signature_name []
let t_chain_id ?loc ?core () : type_expression = t_constant ?loc ?core chain_id_name []
let t_string ?loc ?core () : type_expression = t_constant ?loc ?core string_name []
let t_bytes ?loc ?core () : type_expression = t_constant ?loc ?core bytes_name []
let t_key ?loc ?core () : type_expression = t_constant ?loc ?core key_name []
let t_key_hash ?loc ?core () : type_expression = t_constant ?loc ?core key_hash_name []
let t_int ?loc ?core () : type_expression = t_constant ?loc ?core int_name []
let t_address ?loc ?core () : type_expression = t_constant ?loc ?core address_name []
let t_operation ?loc ?core () : type_expression = t_constant ?loc ?core operation_name []
let t_nat ?loc ?core () : type_expression = t_constant ?loc ?core nat_name []
let t_mutez ?loc ?core () : type_expression = t_constant ?loc ?core tez_name []
let t_timestamp ?loc ?core () : type_expression = t_constant ?loc ?core timestamp_name []
let t_unit ?loc ?core () : type_expression = t_constant ?loc ?core unit_name []
let t_bls12_381_g1 ?loc ?core () : type_expression = t_constant ?loc ?core bls12_381_g1_name []
let t_bls12_381_g2 ?loc ?core () : type_expression = t_constant ?loc ?core bls12_381_g2_name []
let t_bls12_381_fr ?loc ?core () : type_expression = t_constant ?loc ?core bls12_381_fr_name []
let t_never ?loc ?core () : type_expression = t_constant ?loc ?core never_name []
let t_pvss_key ?loc ?core () : type_expression = t_constant ?loc ?core pvss_key_name []
let t_baker_hash ?loc ?core () : type_expression = t_constant ?loc ?core baker_hash_name []
let t_chest_key ?loc ?core () : type_expression = t_constant ?loc ?core chest_key_name []
let t_chest ?loc ?core () : type_expression = t_constant ?loc ?core chest_name []
can be reduced to a map:
let t__type_ ?loc ?core () : type_expression = t_constant ?loc ?core _type__name []
[@@map (_type_, ("signature","chain_id", "string", "bytes", "key", "key_hash", "int", "address", "operation", "nat", "tez", "timestamp", "unit", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr", "never", "mutation", "failure", "pvss_key", "baker_hash", "chest_key", "chest"))]
-
has a changelog entry
Edited by E. Rivas