@@ -508,9 +508,12 @@ let make_unary_expr start_pos token_end token operand =
508508 }
509509| (Minus |MinusDot ),Pexp_constant (Pconst_float (n ,m )) ->
510510 {operandwith pexp_desc= Pexp_constant (Pconst_float (negate_string n, m))}
511- | (Token. Plus |PlusDot |Minus |MinusDot |Tilde ),_ ->
511+ | (Token. Plus |PlusDot |Minus |MinusDot |Bnot ),_ ->
512512let token_loc= mk_loc start_pos token_endin
513- let operator= " ~" ^ Token. to_string tokenin
513+ let token_string= Token. to_string tokenin
514+ let operator=
515+ if token_string.[0 ]= '~' then token_stringelse " ~" ^ token_string
516+ in
514517Ast_helper.Exp. apply
515518~loc: (mk_loc start_pos operand.Parsetree. pexp_loc.loc_end)
516519 (Ast_helper.Exp. ident~loc: token_loc
@@ -2292,7 +2295,7 @@ and parse_primary_expr ~operand ?(no_call = false) p =
22922295and parse_unary_expr p =
22932296let start_pos= p.Parser. start_posin
22942297match p.Parser. tokenwith
2295- | (Minus |MinusDot |Plus |PlusDot |Bang |Tilde )as token ->
2298+ | (Minus |MinusDot |Plus |PlusDot |Bang |Bnot )as token ->
22962299Parser. leave_breadcrumb pGrammar. ExprUnary ;
22972300let token_end= p.end_posin
22982301Parser. next p;
@@ -5940,15 +5943,15 @@ and parse_polymorphic_variant_type_spec_hash ~attrs ~full p :
59405943let ident, loc= parse_hash_ident~start_pos pin
59415944let rec loop p =
59425945match p.Parser. tokenwith
5943- | Band when full ->
5946+ | Ampersand when full ->
59445947Parser. next p;
59455948let row_field= parse_polymorphic_variant_type_args pin
59465949 row_field :: loop p
59475950| _ ->[]
59485951in
59495952let first_tuple, tag_contains_a_constant_empty_constructor=
59505953match p.Parser. tokenwith
5951- | Band when full ->
5954+ | Ampersand when full ->
59525955Parser. next p;
59535956 ([parse_polymorphic_variant_type_args p],true )
59545957| Lparen -> ([parse_polymorphic_variant_type_args p],false )