relude
Version 0.2.0 revision 1 uploaded by vrom911.
Package meta
- Synopsis
- Custom prelude from Kowainik
- Description
Goals
Avoid all partial functions (like
head :: [a] -> a
). The types of partial functions lie about their behavior and usage of such functions can lead to the unexpected bugs. Though you can still use some unsafe functions fromRelude.Unsafe
module, but they are not exported by default.Type-safety. We like to make invalid states unrepresantable. And if it's possible to express this concept through the types then we will do it. Example:
whenNotNull :: Applicative f => [a] -> (NonEmpty a -> f ()) -> f ()
Performance. Prefer
Text
overString
, use spaceleak-free functions (like our customsum
andproduct
).Minimalism (low number of dependencies). We don't force users of
relude
to stick to some specific lens or text formatting or logging library.Convenience (like lifted to
MonadIO
functions, more reexports). But we want to bring common types and functions (likecontainers
andbytestrng
) into scope because they are used in almost every application anyways.Provide excellent documentation.
Tutorial
Migration guide from
Prelude
Haddock with examples for (almost) every function (all examples are tested with doctest)
Documentation regarding internal module structure)
relude
-specific HLint rules:.hlint.yaml
User-friendliness. Ability to quickly migrate to
relude
if you're familiar with the common libraries liketext
andcontainers
.Exploration. Experiment with new ideas and proposals without introducing breaking changes.
- Author
- Stephen Diehl, @serokell, Kowainik
- Bug reports
- https://github.com/kowainik/relude/issues
- Category
- Prelude
- Copyright
- 2016 Stephen Diehl, 2016-2018 Serokell, 2018 Kowainik
- Homepage
- https://github.com/kowainik/relude
- Maintainer
- Kowainik <xrom.xkov@gmail.com>
- Package URL
- n/a
- Stability
- stable