generators.ET0LTreeGrammar("twin dragon maze"):
( { A, B, A2, B2 },
  { F:0, f:0, +:1, 4+:1, -:1, conc:2, hide:1, enc:1 },
  {
    {
      A -> (-[A] conc +[B]),
      B -> (+[A] conc -[B]),
      A2 -> (-[A2] conc +[B2]),
      B2 -> (+[A2] conc -[B2])
    },
    {
      A -> F,
      % Note: f is a synonym for hide[F].
      B -> f,
      A2 -> f,
      B2 -> F
    }
  },
  (A conc +[+[+[+[A2]]]])
)
