generators.ET0LTreeGrammar:
  (
    { X1, tile, tile2 },
    { subst:2, tile:0, tile2:0, invert:1, refine:9, refine2:5, X1:0 },
    {
      {
        X1 -> invert[X1],
        tile -> refine[tile,tile,tile,tile2,tile2,
                       tile2,tile2,tile2,tile2],
        tile2 -> refine2[tile2,tile2,tile2,tile2,tile2]
      }
    },
    subst[X1, tile]
  )
