@NotNull
  static String simplify(@NotNull List<Instruction> instructions) {
    return StreamEx.of(SIMPLIFIERS).foldLeft(instructions, (acc, s) -> s.run(acc))
      .stream().map(Instruction::generate).collect(Collectors.joining());
  }
@NotNull
  static String simplify(@NotNull List<Instruction> instructions)