generators.ET0LTreeGrammar:
(
  { A, B, C, F },
  { F:0, conc:3, conc:2, enc+:4, enc+:1, enc2-:3, 2-:1, +:1, -:1,
    empty:0, enc:1, fill.8-.7-0:2, 2+:1, 6-:1, 6+:1, 7-:1, 7+:1, conc:4, f:0 },
  {
    {
      A -> conc[enc+[F,enc+[A], C,2-[A]], enc2-[F, A, C], B],
      C -> empty,
      B -> conc[F,A,C],
      F -> conc[F,F]
    },
    {
      A -> empty,
      % Note: f is a synonym for hide[F].
      C -> conc[enc[fill.8-.7-0[2+[f],6-[f]]],enc[fill.8-.7-0[2-[f],6+[f]]],
                enc[fill.8-.7-0[+[f],7-[f]]], enc[fill.8-.7-0[-[f],7+[f]]]],
      B -> empty,
      F -> F
    }
  },
  A,
  1+ 2
)
