Cyoa :: (Monad m) => CyoaT m a -> [Page] -> GameState -> m (Either GameEvent a, GameState, Output)
stepCyoa f pages gs = runRWST (runErrorT $ unCyoaT f) (pageArray, []) gs
  where pageArray = listArray (1, 400) pages

mk
stepCyoa :: (Monad m) => CyoaT m a -> [Page] -> GameState -> m (Either GameEvent a, GameState, Output)
stepCyoa f pages gs = runRWST (runErrorT $ unCyoaT f) (pageArray, []) gs
  where pageArray = listArray (1, 400) pages
stepCyoa f pages gs = runRWST (runErrorT $ unCyoaT f) (pageArray, []) gs
  where pageArray = listArray (1, 400) pages