cabal all the things
Halfway to trying an ST based approach