eval (Block (s:stats)) = do
  eval s
  case stats of
    [] -> return Nil
    _ -> eval $ Block stats
eval (Block (s:stats)) = do
  eval s
  case stats of
    [] -> return Nil
    _ -> eval $ Block stats
eval (Block (s:stats)) = do
  eval s
  case stats of
    [] -> return Nil
    _ -> eval $ Block stats