https://github.com/fumieval/humble-prelude
https://github.com/fumieval/humble-prelude
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/fumieval/humble-prelude
- Owner: fumieval
- License: bsd-3-clause
- Created: 2020-01-10T09:32:28.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-16T12:03:38.000Z (over 6 years ago)
- Last Synced: 2025-01-31T08:28:03.728Z (over 1 year ago)
- Language: Haskell
- Size: 18.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
humble-prelude: the worst prelude alternative
====
[](https://travis-ci.org/fumieval/humble-prelude)
[](https://hackage.haskell.org/package/humble-prelude)
[](https://discord.gg/DG93Tgs)
This library aims to be an intersection of the current prelude ands "how it should be in the future". Unlike many other prelude alternatives, this package __does not__:
* Introduce any new abstraction
* Provide new functions
* Reexport a bunch of other libraries
Instead it's a subset of Prelude. Any Haskell source based on `HumblePrelude` should also be buildable with `Prelude`.
For those who want more convenience, `HumblePrelude.Extras` reexports things that are frequently imported only for one or two symbols (e.g. Generic for deriving). But __nothing else__.
Plugin
----
One of the well-known problems of Prelude alternatives is the tempo loss of importing the module itself.
humble-prelude offers a GHC plugin that imports any module specified in the flag. Add the following lines into your cabal file:
```
ghc-options: -fplugin=HumblePrelude.Extras
default-extensions: NoImplicitPrelude
```
Recommended libraries to complement this package
----
* Transmit byte sequence efficiently into a handle or a socket, or a new ByteString: [mason](https://hackage.haskell.org/package/mason)
* Print something in a human-readable format: [prettyprinter](https://hackage.haskell.org/package/prettyprinter)
* Concurrency, exceptions, process handling and file operations: [unliftio](https://hackage.haskell.org/package/unliftio)
* Safely obtain minimum/maximum values: [lens:Control.Lens.Fold](http://hackage.haskell.org/package/lens-4.18.1/docs/Control-Lens-Fold.html#v:minimumOf)
* Parsing: [attoparsec](https://hackage.haskell.org/package/attoparsec)
* Manipulating non-empty structures: [semigroupoids](http://hackage.haskell.org/package/semigroupoids)
* Generic filters: [witherable](https://hackage.haskell.org/package/witherable)