-
-
Notifications
You must be signed in to change notification settings - Fork 66
Open
Description
Inspired by Doobie's unique and option queries:
In fact, those two are pretty common use cases: after receiving a collection of items from somewhere, we may want to make sure that there's either exactly 1 or at most 1 items received.
To make them generally available, we could consider adding two combinators to FNested2SyntaxOps:
final class FNested2SyntaxOps[F[_], G[_], A](private val fga: F[G[A]]) extends AnyVal {
...
def uniqueOrRaise[E](e: E)(implicit F: MonadError[F, E], G: Foldable[G]): F[A] = ???
def optionOrRaise[E](e: E)(implicit F: MonadError[F, E], G: Foldable[G]): F[Option[A]] = ???
}The proposed names may not be perfect – just got borrowed them from Doobie. However, I'm absolutely open for bikeshedding.
If such combinators make sense, I'll be glad to file a PR.
Metadata
Metadata
Assignees
Labels
No labels