use Either for pure actions
notify :: IO World
refactoring
bracket STM access
fix error handling
swap codebases!