Ideas for optimizing Snap!
--------------------------


Graphics engine
---------------

* reuse (and cache) icons, e.g. for input slot types, in the prototype. Make sure to update when changing display settings (flat design, zoom blocks etc.)

* generate state-images for buttons (push buttons, toggles etc.) just-in-time (and possibly cache them only then), instead of always creating them up-front.


Evaluator
----------

* Get rid of blockSequences, instead evaluate blocks directly.
* Get rid of modifying blocks to evaluate them (solve implicit parameter bindings another way)
* Cache variables (not values) in accessor-blocks (this should speed things up a lot)