Changed f to w in type sig of evaluate.
New implementation of statically represented cells, using the free applicative functor over a Ref GADT to encode the structure of computations. This one doesn't rely on hiding constructors; you can play with the datatype all you like and you can't break the invariants.
Added Show instance for Refs.