Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mitchellwrosen/planet-mitchell
Planet Mitchell
https://github.com/mitchellwrosen/planet-mitchell
haskell
Last synced: 19 days ago
JSON representation
Planet Mitchell
- Host: GitHub
- URL: https://github.com/mitchellwrosen/planet-mitchell
- Owner: mitchellwrosen
- License: bsd-3-clause
- Created: 2016-05-15T18:32:14.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-06-29T00:07:12.000Z (over 5 years ago)
- Last Synced: 2024-10-07T09:17:28.009Z (about 1 month ago)
- Topics: haskell
- Language: Haskell
- Homepage:
- Size: 408 KB
- Stars: 6
- Watchers: 6
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Summary
`planet-mitchell` is my very own Haskell package planet.
It contains no new code, only re-exports from `base` and various well-known
packages, similar to [https://hackage.haskell.org/package/rebase](rebase).- `Control.`, `Data.`, `Foreign.`, etc. module prefixes are stripped. The idea
here is that, if a name such as `Applicative` is sufficiently unambiguous in
the Haskell ecosystem, it deserves as short a module name as possible.See the [elm standard library](http://package.elm-lang.org/packages/elm-lang/core/latest)
for inspiration.- The module hierarchy is not faithful to the underlying packages. Many modules
contain related re-exports from multiple packages, and I've invented a few new
sin-bin modules such as `Concurrency`, `Parallelism`, `Eval`, and `Debug`.- To reduce API surface area and encourage a consistent vocabulary, redundant
functions like `sequence` and `mapM` are not re-exported.- Odd, uncommon, and deprecated types and functions (like `WrappedApplicative`)
are not re-exported.- Partial functions are discouraged and mostly live in `.Partial` modules. (This
is a work-in-progress).- Unsafe functions are discouraged and mostly live in `.Unsafe` modules. (This
is a work-in-progress).- `String` is heavily discouraged, and many `String` IO functions are not
re-exported; `Text` and/or `ByteString` versions are re-exported instead.- Generalizations like `MonadIO` / `MonadUnliftIO` are used where possible.
### Stability
Alpha quality, massive churn and breaking changes should be expected. Don't use
this package.### Recommended packages
Packages perhaps worth looking at that didn't make it into my planet:
#### Abstract algebra
- `comonad`
Comonads.
- `free`
Free monads, applicatives, alternatives, etc.
- `mmorph`
Monad morphisms.
- `pointed`
- `semilattices`
#### Algorithms
- `Diff`
Find the difference between two lists
#### CLI utilities
- `ansi-terminal`
Terminal color codes.
- `concurrent-output`
Sticky, STM-based console regions.
- **`optparse-applicative`**
Command-line option parsing.
- `say`
Thread-safe `putStrLn`.
- `text-ansi`
`Text` styling combinators.
#### Configuration
- `dhall`
#### Bitwise
- `bits`
Bits extras and bitwise serialization.
#### Compatibility
- `base-orphans`
Orphan instances for old `base`s.
#### Data structures
- `algebraic-graphs`
Algebraic graphs.
- `array`
Arrays.
- `compact`
Compact regions: no pointer inside a compact region points outside of it.
- `dlist`
Difference lists.
- `fgl`
Inductive graph library.
- **`foldl`**
Left folds and scans.
- `heaps`
Heap, supporting `O(1)` insert and `O(log n)` find min. Can be used to
implement a priority queue.- `ilist`
Functions for working with linked list indexes, like `imap`.
- `insert-ordered-containers`
`HashMap`/`HashSet` that maintain insertion order.
- `multiset`
Multisets, aka bags.
- `psqueues`
Priority search queues.
- `split`
List splitting functions.
- `strict-tuple`
Strict tuples.
- `topograph`
Directed, acyclic graphs.
- `vault`
- `vector-builder`
Vector builder monoid.
##### Concurrent data structures
- `abstract-deque`
- **`atomic-primops`**
CAS operations on `IORef`s and arrays. Includes a concurrent counter type as
well.- `stm-chans`
STM channel and queue that can be closed.
- **`stm-containers`**
STM containers.
- `unagi-chan`
Fast concurrent channels.
- `email-validate`
Validate email addresses.
#### Effects / monads
- `list-transformer`
`ListT` done right.
- `logict`
A search monad for backtracking and fair interleaving.
- `managed`
A simple wrapper for callback-based `IO` functions.
- `monad-ste`
`STE s e a`, a faster alternative to `ExceptT e (ST s) a`.
#### FRP
- `reactive-banana`
Clean FRP library.
#### JSON
- **`aeson`**
De facto standard JSON library.
- `aeson-pretty`
Pretty-print JSON.
- `aeson-qq`
JSON quasi-quoter.
- `generic-aeson`
Generic `ToJSON/FromJSON` generation that may be superior to `aeson`'s.
- `lens-aeson`
JSON lenses.
#### Miscellaneous
- `constraints`
Type class constraint manipulation.
- `network-uri`
URI type.
- `nf`
Helper newtype that `deepseq`s when `seq`'d, useful for ensuring that a data
structure is fully evaluated before placing on a worker queue, for example.- `transformers-compat`
Generic deriving of `Eq1`, `Ord1`, etc.
- `unique`
Generate uniques symbol in `IO`.
- `uuid`
#### Numeric
- `approximate`
Approximate numbers.
- `erf`
The error function.
- `exact-pi`
Exact representation of `q×π^z`. Can express all rational numbers, plus `π`.
- `fast-digits`
Convert a positive integer to/from its digits in any base.
- `half`
Half-precision floating point.
- `integer-logarithms`
Integer logarithms.
- `scientific`
Scientific notation numbers.
#### Parsing
- `Earley`
- `lens-regex`
Lens + regex.
- **`megaparsec`**
Non-incremental recursive-descent parser for both binary and textual data.
- `parser-combinators`
`Applicative`/`Monad`-general functions commonly used in recursive-descent
parsers.- `regex-applicative`
Regex library.
#### Pretty printing
- `prettyprinter`
- `prettyprinter-ansi-terminal`
#### Randomness
- `mwc-random`
- `random-bytestring`
#### Serialization
- `cborg`
Concise Binary Object Representation (CBOR)
- `cborg-json`
CBOR <-> JSON
- `double-conversion`
Convert `Double`s to `ByteString`/`Text`.
- `serialise`
#### Strings
- `base16-bytestring`
Hexadecimal `ByteString` encoding.
- `bytestring-lexing`
Read/write numeric literals as `ByteString`s, like `"-5.5"`.
- `case-insensitive`
Newtype for case-insensitive string handling.
- `neat-interpolation`
Quasi-quoter for text interpolation.
- `stringsearch`
`ByteString` search.
- `text-builder`
Strict `Text` builder monoid.
- `text-short`
Memory-efficient UTF-8 text, does not support zero-copy slicing.
- `text-metrics`
Text similarity combinators.
- `utf8-string`
UTF-8 `ByteString`s.
#### System
- `network`
- `network-info`
Grab system network interfaces.
- `typed-process`
Process forking.
- `unix`
Process forking, signals, etc.