Renaming some compute functions to be more inline with Haskell
General cleanup
Cleaner sep of io, imrpvoed array impl