generators.ET0LTreeGrammar:
  (
    { I, S, A },
    { subst:2, line:0, refine:3, C:2, O:2, invert:1, X1:0 },
    {
      {
        I -> invert[I],
        S -> refine[S,S,S],
        A -> O[A,A]
      },
      {
        I -> X1,
        S -> C[X1,X1],
        A -> line
      }
    },
    subst[I,subst[S,A]]
  )
