Alternative
scalaz
apply
LogicT
MonadLogic