This file holds ideas for new features.
User Interface:
* Holding shift should cause the direction widget to snap to multiples of the
LSystem angle relative to north.
Drawing:
* Add further drawing primitives, apart from line segments.
* Make these user customisable, perhaps through hs-plugins.
* Allow the user to attach them to various symbols in the LSystem grammar
via some sort of nice user interface.
* These are in essence, Cairo renderings with two special points, start
and end, perhaps (0,0) and (0,1). We can just use Cairo matrices to
scale them to the right size before drawing.
* Additional user customisable rotation primitives.
* Three dimensional rendering. This could be simulated using Cairo, but
needs lots of support in other areas.
LSystems:
* Context sensitivity. This seems hard because it clashes with the current
monadic approach. (The function passed as the second argument to bind only
gets to see one symbol.) This may require arrows.
* (Mentioned above) Grammar extensions for arbitrary rotation. Eventually
if we move to 3D, this becomes even more necessary, since there will be
a lot of different kinds of rotations we'll probably want to express in
a given 3D system.