うまいこと動いてなかったようなので修正(mapではなくてmapM使うようにした)