generators.ET0LTreeGrammar("with delay"):
(
  { FERN1, FERN2, FERN3, FERN4, FERN5, FERN6,
    FERNb1, FERNb2, FERNb3, FERNb4, FERNb5, FERNb6, FERNb7 },
  { fern:3, fernb:3, rect:0, tri:0 },
  {
    {
      FERN1 -> fern[FERN1, FERNb7, FERNb6],
      FERN2 -> FERN1,
      FERN3 -> FERN2,
      FERN4 -> FERN3,
      FERN5 -> FERN4,
      FERN6 -> FERN5,
      FERNb1 -> fernb[FERNb1, FERN6, FERN6],
      FERNb2 -> FERNb1,
      FERNb3 -> FERNb2,
      FERNb4 -> FERNb3,
      FERNb5 -> FERNb4,
      FERNb6 -> FERNb5,
      FERNb7 -> FERNb6
    },
    {
      FERN1 -> rect,
      FERN2 -> rect,
      FERN3 -> rect,
      FERN4 -> rect,
      FERN5 -> rect,
      FERN6 -> rect,
      FERNb1 -> tri,
      FERNb2 -> tri,
      FERNb3 -> tri,
      FERNb4 -> tri,
      FERNb5 -> tri,
      FERNb6 -> tri,
      FERNb7 -> tri
    }
  },
  FERN1
)
