generators.ET0LTreeGrammar:
( { S, D },
  { subst:2, F:4, diag:2, x:0, sq:0, -:0 },
  {
    {
      S -> subst[S,F[D,x,x,D]],
      D -> diag[D,D]
    },
    {
      S -> x,
      D -> sq
    }
  },
  subst[S,-] )
