-
Notifications
You must be signed in to change notification settings - Fork 0
/
recover.cabal
104 lines (80 loc) · 3.12 KB
/
recover.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
cabal-version: 2.4
-- Initial package description 'recover.cabal' generated by 'cabal init'.
-- For further documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: recover
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 1.0.0.0
-- A short (one-line) description of the package.
synopsis: A data type similar to Data.Validation that recovers from errors.
-- A longer description of the package.
-- description:
-- URL for the project homepage or repository.
homepage: https://github.com/argent0/recover
bug-reports: https://github.com/argent0/recover/issues
-- A URL where users can report bugs.
-- bug-reports:
-- The license under which the package is released.
license: BSD-3-Clause
-- The file containing the license text.
license-file: LICENSE
-- The package author(s).
author: Aner Lucero
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: create a github issue
-- A copyright notice.
-- copyright:
category: Data
description:
A data type similar to 'Data.Validation' that recovers from errors.
.
A @Recover e v@ contains a value @v@ or an error @e@ or both. This is
similar to `Data.These`, but with a different `Applicative` instance.
.
Like `Data.Validation`, the `Applicative` instance of `Recover` enables the
of validating various values while accumulating all the errors.
.
> Foo <$> (Success a) <*> (Success b) == Success (Foo a b)
> Foo <$> (Failure e) <*> (Failure ee) == Failure (e <> ee)
> Foo <$> (Success a) <*> (Failure ee) == Failure e
.
Unlike `Data.Validation`, `Recover` also has a constructor that represents
the situation in which there were errors but a value could be nonetheless
obtained. All errors are still accumulated.
.
> Foo <$> (Recover e a) <*> (Success b) = Recover e (Foo a b)
> Foo <$> (Recover e a) <*> (Recover ee b) = Recover (e <> ee) (Foo a b)
-- Extra files to be distributed with the package, such as examples or a
-- README.
extra-source-files: CHANGELOG.md
source-repository head
type: git
location: [email protected]:argent0/recover.git
library
-- Modules exported by the library.
exposed-modules: Data.Recover
-- Modules included in this library but not exported.
-- other-modules:
-- LANGUAGE extensions used by modules in this package.
-- other-extensions:
-- Other library packages from which modules are imported.
build-depends: base ^>=4.12.0.0
-- Directories containing source files.
hs-source-dirs: src
-- Base language which the package is written in.
default-language: Haskell2010
ghc-options: -Wall -Wno-tabs
test-suite doctest
build-depends: base ^>=4.12.0.0
, doctest ^>= 0.16
default-language: Haskell2010
hs-source-dirs: test
main-is: Main.hs
type: exitcode-stdio-1.0
ghc-options: -fno-warn-tabs