NgaroVM.hs (very rough early draft)