generators.ET0LTreeGrammar:
(
  { A, L, R },
  { F:0, conc:4, conc:3, conc:2, enc-:1, enc+:1, empty:0 },
  {
    {
      A -> conc[A, enc+[L], enc-[R], A],
      L -> conc[A, enc-[L]],
      R -> conc[A, enc+[R]]
    },
    { L -> empty, R -> empty, A -> F }
  },
  conc[enc+[L], enc-[R], A]
)
