テスト、ちょっと間違ってた
MonadPlus も作った。
guard 関数も追加！
Applicative も作る！
Functor も抽象的なデータ構造にしないと無理っぽい。 fmap f (Unit a) とか fmap f (Pure a) とかされると死ぬ。
Alternative も実装。あと、 maybe の monadplus のところなおした