evalList (v:vs) vs' = do
  v' <- eval v
  evalList vs (v':vs')

-- main evaluation function
evalList (v:vs) vs' = do
  v' <- eval v
  evalList vs (v':vs')

-- main evaluation function
evalList (v:vs) vs' = do
  v' <- eval v
  evalList vs (v':vs')

-- main evaluation function