Protolude ========= [![Build Status](https://travis-ci.org/sdiehl/protolude.svg?branch=master)](https://travis-ci.org/sdiehl/protolude) [![Hackage](https://img.shields.io/hackage/v/protolude.svg)](https://hackage.haskell.org/package/protolude) A sensible starting Prelude for building custom Preludes. Design points: * Banishes String. * Banishes partial functions. * Compiler warning on bottoms. * Polymorphic string IO functions. * Polymorphic show. * Automatic string conversions. * Types for common data structures in scope. * Types for all common string types in scope. * StateT/ReaderT/ExceptT transformers in scope by default. * Foldable / Traversable functions in scope by default. * Unsafe functions are prefixed with "unsafe" in separate module. * Compiler agnostic, GHC internal modules are abstracted out into Base. * Compatibility with GHC 8.0. * Includes Semiring for GHC >= 7.6. * Includes Bifunctor for GHC >= 7.6. * Includes Semigroup for GHC >= 7.6. Supports: * GHC 7.6.1 * GHC 7.6.2 * GHC 7.6.3 * GHC 7.8.1 * GHC 7.8.2 * GHC 7.8.3 * GHC 7.8.4 * GHC 7.10.1 * GHC 7.10.2 * GHC 7.10.3 * GHC 8.0.1 * GHC HEAD Usage ----- ```haskell {-# LANGUAGE NoImplicitPrelude #-} import Protolude ``` Dependencies ------------ Protolude tries to be light on dependencies and only pulls in *essential* libraries that are universally common across most real-world projects. | Dependencies | Bound | | ----------- | -------- | | array | 0.5.1.0 | | async | 2.1.0 | | base | 4.8.2.0 | | binary | 0.7.5.0 | | bytestring | 0.10.6.0 | | containers | 0.5.6.2 | | deepseq | 1.4.1.1 | | ghc-prim | 0.4.0.0 | | integer-gmp | 1.0.0.0 | | mtl | 2.2.1 | | protolude | 0.1.6 | | safe | 0.3.9 | | stm | 2.4.4.1 | | text | 1.2.2.1 | | transformers | 0.4.2.0 | License ------- Released under the MIT License. Copyright (c) 2016, Stephen Diehl