mirror of
https://github.com/kowainik/relude.git
synced 2024-10-06 01:07:25 +03:00
11849dd30c
* [#54] Improve documentation * Fix comments for documentation
207 lines
7.8 KiB
Plaintext
207 lines
7.8 KiB
Plaintext
cabal-version: 1.24
|
|
name: relude
|
|
version: 0.2.0
|
|
synopsis: Custom prelude from Kowainik
|
|
description:
|
|
== Goals
|
|
.
|
|
* __Avoid all [partial functions](https://www.reddit.com/r/haskell/comments/5n51u3/why_are_partial_functions_as_in_head_tail_bad/)__
|
|
(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 from @Relude.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@ over @[String](https://www.reddit.com/r/haskell/comments/29jw0s/whats_wrong_with_string/)@,
|
|
use spaceleak-free functions (like our custom @sum@ and @product@).
|
|
.
|
|
* __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 (like @containers@ and @bytestrng@)
|
|
into scope because they are used in almost every application anyways.
|
|
.
|
|
* __Provide excellent documentation.__
|
|
.
|
|
1. Tutorial
|
|
.
|
|
2. Migration guide from @Prelude@
|
|
.
|
|
3. Haddock with examples for (almost) every function
|
|
(all examples are tested with [`doctest`](http://hackage.haskell.org/package/doctest))
|
|
.
|
|
4. Documentation regarding [internal module structure]((http://hackage.haskell.org/package/relude/docs/Relude.html))
|
|
.
|
|
5. @relude@-specific [HLint](http://hackage.haskell.org/package/hlint) rules: @[.hlint.yaml](https://github.com/kowainik/relude/blob/master/.hlint.yaml)@
|
|
.
|
|
* __User-friendliness.__ Ability to quickly migrate to @relude@ if you're familiar
|
|
with the common libraries like @text@ and @containers@.
|
|
.
|
|
* __Exploration.__ Experiment with new ideas and proposals without introducing
|
|
breaking changes.
|
|
|
|
homepage: https://github.com/kowainik/relude
|
|
bug-reports: https://github.com/kowainik/relude/issues
|
|
license: MIT
|
|
license-file: LICENSE
|
|
author: Stephen Diehl, @serokell, Kowainik
|
|
maintainer: Kowainik <xrom.xkov@gmail.com>
|
|
copyright: 2016 Stephen Diehl, 2016-2018 Serokell, 2018 Kowainik
|
|
category: Prelude
|
|
stability: stable
|
|
build-type: Simple
|
|
tested-with: GHC == 8.0.2
|
|
, GHC == 8.2.2
|
|
, GHC == 8.4.3
|
|
extra-doc-files: CHANGELOG.md
|
|
, CONTRIBUTING.md
|
|
, README.md
|
|
|
|
source-repository head
|
|
type: git
|
|
location: git@github.com:kowainik/relude.git
|
|
|
|
library
|
|
hs-source-dirs: src
|
|
exposed-modules:
|
|
Relude
|
|
Relude.Applicative
|
|
Relude.Base
|
|
Relude.Bool
|
|
Relude.Bool.Guard
|
|
Relude.Bool.Reexport
|
|
Relude.Container
|
|
Relude.Container.One
|
|
Relude.Container.Reexport
|
|
Relude.Debug
|
|
Relude.DeepSeq
|
|
Relude.Exception
|
|
Relude.Foldable
|
|
Relude.Foldable.Fold
|
|
Relude.Foldable.Reexport
|
|
Relude.Function
|
|
Relude.Functor
|
|
Relude.Functor.Fmap
|
|
Relude.Functor.Reexport
|
|
Relude.Lifted
|
|
Relude.Lifted.Concurrent
|
|
Relude.Lifted.Exit
|
|
Relude.Lifted.File
|
|
Relude.Lifted.IORef
|
|
Relude.List
|
|
Relude.List.NonEmpty
|
|
Relude.List.Reexport
|
|
Relude.Monad
|
|
Relude.Monad.Either
|
|
Relude.Monad.Maybe
|
|
Relude.Monad.Reexport
|
|
Relude.Monad.Trans
|
|
Relude.Monoid
|
|
Relude.Nub
|
|
Relude.Print
|
|
Relude.String
|
|
Relude.String.Conversion
|
|
Relude.String.Reexport
|
|
|
|
-- not exported by default
|
|
Relude.Extra.Bifunctor
|
|
Relude.Extra.CallStack
|
|
Relude.Extra.Enum
|
|
Relude.Extra.Group
|
|
Relude.Extra.Map
|
|
Relude.Extra.Newtype
|
|
Relude.Unsafe
|
|
|
|
ghc-options: -Wall
|
|
-Wcompat
|
|
-Widentities
|
|
-Wincomplete-uni-patterns
|
|
-Wincomplete-record-updates
|
|
-fwarn-implicit-prelude
|
|
|
|
build-depends: base >= 4.8 && < 5
|
|
, bytestring
|
|
, containers
|
|
, deepseq
|
|
, ghc-prim >= 0.4.0.0
|
|
, hashable
|
|
, mtl
|
|
, stm
|
|
, text
|
|
, transformers
|
|
, unordered-containers
|
|
, utf8-string
|
|
|
|
default-language: Haskell2010
|
|
default-extensions: NoImplicitPrelude
|
|
OverloadedStrings
|
|
|
|
test-suite relude-test
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: test
|
|
main-is: Spec.hs
|
|
|
|
other-modules: Test.Relude.Property
|
|
|
|
build-depends: base >= 4.8 && < 5
|
|
, relude
|
|
, bytestring
|
|
, text
|
|
, utf8-string
|
|
, hedgehog >= 0.6
|
|
, tasty
|
|
, tasty-hedgehog
|
|
|
|
ghc-options: -Wall
|
|
-threaded
|
|
-Wincomplete-uni-patterns
|
|
-Wincomplete-record-updates
|
|
-Wcompat
|
|
-Widentities
|
|
-Wredundant-constraints
|
|
|
|
default-language: Haskell2010
|
|
default-extensions: NoImplicitPrelude
|
|
TypeApplications
|
|
|
|
test-suite relude-doctest
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: test
|
|
main-is: Doctest.hs
|
|
|
|
build-depends: base >= 4.8 && < 5
|
|
, doctest
|
|
, Glob
|
|
|
|
ghc-options: -threaded
|
|
default-language: Haskell2010
|
|
|
|
benchmark relude-benchmark
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: benchmark
|
|
main-is: Main.hs
|
|
|
|
build-depends: base >= 4.8 && < 5
|
|
, relude
|
|
, containers
|
|
, gauge
|
|
, unordered-containers
|
|
|
|
ghc-options: -Wall
|
|
-threaded
|
|
-rtsopts
|
|
-with-rtsopts=-N
|
|
-Wincomplete-uni-patterns
|
|
-Wincomplete-record-updates
|
|
-Wcompat
|
|
-Widentities
|
|
-Wredundant-constraints
|
|
|
|
default-language: Haskell2010
|
|
default-extensions: NoImplicitPrelude
|
|
ScopedTypeVariables
|