let is_infix =
              let first_chars =
                [ '=''<''>''|''&''$''@''^''+''-''*''/';
                  '%''\\' ]
              and infixes =
                List.fold_right StringSet.add infix_lidents StringSet.empty
              in
                fun s ->
                  (StringSet.mem s infixes) ||
                    ((s <> ""&& (List.mem s.[0] first_chars))