2016-06-17 09:51:34 -04:00
2016-06-17 09:49:49 -04:00
2016-04-18 18:09:50 -04:00
2016-06-08 19:05:43 -04:00
2016-06-08 19:05:43 -04:00
2016-04-09 19:35:23 -04:00
2016-06-17 09:49:49 -04:00
2016-06-17 09:51:34 -04:00
2016-04-08 11:25:58 -04:00
2016-06-08 19:47:08 -04:00
2016-06-11 16:19:03 -04:00

Protolude

Build Status Hackage

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

{-# 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

Languages
Haskell 67.3%
PLpgSQL 21.5%
Python 6.7%
Nix 4.3%
Shell 0.2%