universum
universum copied to clipboard
:milky_way: Prelude written in @Serokell
This issue is a call to discussion. I want to discuss several things and come to agreement on several issues: - [ ] Decide how to avoid type families duplication....
I propose to think of type class for `Map`-like things. This is really convenient to have. For example, if you want to `insert` into `newtype` wrappers around `Map/HashMap`. `mono-traversable` [has...
Add this function: ```haskell safe f = fmap f . nonEmpty ``` We export some functions to work with `NonEmpty`. But sometimes we want functions to work with `[]` and...
Currently `whenJust` has the following type signature: ```haskell whenJust :: Applicative f => Maybe a -> (a -> f ()) -> f () ``` I propose to generalize types of...
Sometimes it's useful to have the following functions: ```haskell every :: (Bounded a, Enum a) => [a] -- all values cycleSucc :: (Bounded a, Enum a) => a -> a...
Sometimes we want to add more features to `universum`. But we don't want them be imported implicitly in every module. But instead of creating separate package `universum-exended` we can have...
Sometimes it's convenient to map `bimap` and related functions inside some `Functor`. For example, if your data base returns `Either` inside `IO`. It might be slightly les convenient to write...
I propose to add very dummy and stupid test to verify that changes in `universum` don't remove something from imports: just add dummy module in `test-suite` which reexports whole `universum`...
Some type classes are not very common even if they are very useful. Maybe it's better to move them away from default reexport. Here is the list of such type...
To read `Text` (lazy and strict), `ByteString` (lazy and strict), or even `String`.