Not strict for frames (no point)
Using the MonadCanvas class
ignoring more stuff
Draft of Act monad.