Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit aa5bf21

Browse files
committed
Prepare for 2.0 release
1 parent fd7e468 commit aa5bf21

File tree

7 files changed

+48
-97
lines changed

7 files changed

+48
-97
lines changed

bower.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
"package.json"
1818
],
1919
"dependencies": {
20-
"purescript-control": "^1.0.0",
21-
"purescript-invariant": "^1.0.0"
20+
"purescript-control": "^2.0.0",
21+
"purescript-invariant": "^2.0.0",
22+
"purescript-newtype": "^1.0.0"
2223
}
2324
}

src/Data/Monoid/Additive.purs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
module Data.Monoid.Additive where
22

3-
import Control.Applicative (class Applicative)
4-
import Control.Apply (class Apply)
5-
import Control.Bind (class Bind)
3+
import Prelude
4+
65
import Control.Comonad (class Comonad)
76
import Control.Extend (class Extend)
8-
import Control.Monad (class Monad)
97

10-
import Data.Bounded (class Bounded, top, bottom)
11-
import Data.Eq (class Eq, (==))
12-
import Data.Functor (class Functor)
138
import Data.Functor.Invariant (class Invariant)
149
import Data.Monoid (class Monoid)
15-
import Data.Ord (class Ord, compare)
16-
import Data.Semigroup (class Semigroup, (<>))
17-
import Data.Semiring (class Semiring, (+), zero)
18-
import Data.Show (class Show, show)
10+
import Data.Newtype (class Newtype, unwrap)
1911

2012
-- | Monoid and semigroup for semirings under addition.
2113
-- |
@@ -25,14 +17,11 @@ import Data.Show (class Show, show)
2517
-- | ```
2618
newtype Additive a = Additive a
2719

28-
runAdditive :: forall a. Additive a -> a
29-
runAdditive (Additive x) = x
20+
derive instance newtypeAdditive :: Newtype (Additive a) _
3021

31-
instance eqAdditive :: Eq a => Eq (Additive a) where
32-
eq (Additive x) (Additive y) = x == y
22+
derive newtype instance eqAdditive :: Eq a => Eq (Additive a)
3323

34-
instance ordAdditive :: Ord a => Ord (Additive a) where
35-
compare (Additive x) (Additive y) = compare x y
24+
derive newtype instance ordAdditive :: Ord a => Ord (Additive a)
3625

3726
instance boundedAdditive :: Bounded a => Bounded (Additive a) where
3827
top = Additive top
@@ -59,7 +48,7 @@ instance extendAdditive :: Extend Additive where
5948
extend f x = Additive (f x)
6049

6150
instance comonadAdditive :: Comonad Additive where
62-
extract = runAdditive
51+
extract = unwrap
6352

6453
instance showAdditive :: Show a => Show (Additive a) where
6554
show (Additive a) = "(Additive " <> show a <> ")"

src/Data/Monoid/Conj.purs

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
11
module Data.Monoid.Conj where
22

3-
import Control.Applicative (class Applicative)
4-
import Control.Apply (class Apply)
5-
import Control.Bind (class Bind)
3+
import Prelude
4+
65
import Control.Comonad (class Comonad)
76
import Control.Extend (class Extend)
8-
import Control.Monad (class Monad)
97

10-
import Data.HeytingAlgebra (class HeytingAlgebra, conj, disj, ff, tt)
11-
import Data.Bounded (class Bounded, top, bottom)
12-
import Data.Eq (class Eq, (==))
13-
import Data.Functor (class Functor)
148
import Data.Functor.Invariant (class Invariant)
9+
import Data.HeytingAlgebra (ff, tt)
1510
import Data.Monoid (class Monoid)
16-
import Data.Ord (class Ord, compare)
17-
import Data.Semigroup (class Semigroup, (<>))
18-
import Data.Semiring (class Semiring)
19-
import Data.Show (class Show, show)
11+
import Data.Newtype (class Newtype, unwrap)
2012

2113
-- | Monoid under conjuntion.
2214
-- |
@@ -26,14 +18,11 @@ import Data.Show (class Show, show)
2618
-- | ```
2719
newtype Conj a = Conj a
2820

29-
runConj :: forall a. Conj a -> a
30-
runConj (Conj x) = x
21+
derive instance newtypeConj :: Newtype (Conj a) _
3122

32-
instance eqConj :: Eq a => Eq (Conj a) where
33-
eq (Conj x) (Conj y) = x == y
23+
derive newtype instance eqConj :: Eq a => Eq (Conj a)
3424

35-
instance ordConj :: Ord a => Ord (Conj a) where
36-
compare (Conj x) (Conj y) = compare x y
25+
derive newtype instance ordConj :: Ord a => Ord (Conj a)
3726

3827
instance boundedConj :: Bounded a => Bounded (Conj a) where
3928
top = Conj top
@@ -60,7 +49,7 @@ instance extendConj :: Extend Conj where
6049
extend f x = Conj (f x)
6150

6251
instance comonadConj :: Comonad Conj where
63-
extract = runConj
52+
extract = unwrap
6453

6554
instance showConj :: (Show a) => Show (Conj a) where
6655
show (Conj a) = "(Conj " <> show a <> ")"

src/Data/Monoid/Disj.purs

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,14 @@
11
module Data.Monoid.Disj where
22

3-
import Control.Applicative (class Applicative)
4-
import Control.Apply (class Apply)
5-
import Control.Bind (class Bind)
3+
import Prelude
4+
65
import Control.Comonad (class Comonad)
76
import Control.Extend (class Extend)
8-
import Control.Monad (class Monad)
97

10-
import Data.HeytingAlgebra (class HeytingAlgebra, conj, disj, ff, tt)
11-
import Data.Bounded (class Bounded, top, bottom)
12-
import Data.Eq (class Eq, (==))
13-
import Data.Functor (class Functor)
8+
import Data.Functor.Invariant (class Invariant)
9+
import Data.HeytingAlgebra (ff, tt)
1410
import Data.Monoid (class Monoid)
15-
import Data.Ord (class Ord, compare)
16-
import Data.Semigroup (class Semigroup, (<>))
17-
import Data.Semiring (class Semiring)
18-
import Data.Show (class Show, show)
11+
import Data.Newtype (class Newtype, unwrap)
1912

2013
-- | Monoid under disjuntion.
2114
-- |
@@ -25,14 +18,11 @@ import Data.Show (class Show, show)
2518
-- | ```
2619
newtype Disj a = Disj a
2720

28-
runDisj :: forall a. Disj a -> a
29-
runDisj (Disj x) = x
21+
derive instance newtypeDisj :: Newtype (Disj a) _
3022

31-
instance eqDisj :: Eq a => Eq (Disj a) where
32-
eq (Disj x) (Disj y) = x == y
23+
derive newtype instance eqDisj :: Eq a => Eq (Disj a)
3324

34-
instance ordDisj :: Ord a => Ord (Disj a) where
35-
compare (Disj x) (Disj y) = compare x y
25+
derive newtype instance ordDisj :: Ord a => Ord (Disj a)
3626

3727
instance boundedDisj :: Bounded a => Bounded (Disj a) where
3828
top = Disj top
@@ -41,6 +31,9 @@ instance boundedDisj :: Bounded a => Bounded (Disj a) where
4131
instance functorDisj :: Functor Disj where
4232
map f (Disj x) = Disj (f x)
4333

34+
instance invariantDisj :: Invariant Disj where
35+
imap f _ (Disj x) = Disj (f x)
36+
4437
instance applyDisj :: Apply Disj where
4538
apply (Disj f) (Disj x) = Disj (f x)
4639

@@ -56,7 +49,7 @@ instance extendDisj :: Extend Disj where
5649
extend f x = Disj (f x)
5750

5851
instance comonadDisj :: Comonad Disj where
59-
extract = runDisj
52+
extract = unwrap
6053

6154
instance showDisj :: Show a => Show (Disj a) where
6255
show (Disj a) = "(Disj " <> show a <> ")"

src/Data/Monoid/Dual.purs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
module Data.Monoid.Dual where
22

3-
import Control.Applicative (class Applicative)
4-
import Control.Apply (class Apply)
5-
import Control.Bind (class Bind)
3+
import Prelude
4+
65
import Control.Comonad (class Comonad)
76
import Control.Extend (class Extend)
8-
import Control.Monad (class Monad)
97

10-
import Data.Bounded (class Bounded, top, bottom)
11-
import Data.Eq (class Eq, (==))
12-
import Data.Functor (class Functor)
138
import Data.Functor.Invariant (class Invariant)
149
import Data.Monoid (class Monoid, mempty)
15-
import Data.Ord (class Ord, compare)
16-
import Data.Semigroup (class Semigroup, (<>))
17-
import Data.Show (class Show, show)
10+
import Data.Newtype (class Newtype, unwrap)
1811

1912
-- | The dual of a monoid.
2013
-- |
@@ -24,14 +17,11 @@ import Data.Show (class Show, show)
2417
-- | ```
2518
newtype Dual a = Dual a
2619

27-
runDual :: forall a. Dual a -> a
28-
runDual (Dual x) = x
20+
derive instance newtypeDual :: Newtype (Dual a) _
2921

30-
instance eqDual :: Eq a => Eq (Dual a) where
31-
eq (Dual x) (Dual y) = x == y
22+
derive newtype instance eqDual :: Eq a => Eq (Dual a)
3223

33-
instance ordDual :: Ord a => Ord (Dual a) where
34-
compare (Dual x) (Dual y) = compare x y
24+
derive newtype instance ordDual :: Ord a => Ord (Dual a)
3525

3626
instance boundedDual :: Bounded a => Bounded (Dual a) where
3727
top = Dual top
@@ -58,7 +48,7 @@ instance extendDual :: Extend Dual where
5848
extend f x = Dual (f x)
5949

6050
instance comonadDual :: Comonad Dual where
61-
extract = runDual
51+
extract = unwrap
6252

6353
instance showDual :: Show a => Show (Dual a) where
6454
show (Dual a) = "(Dual " <> show a <> ")"

src/Data/Monoid/Endo.purs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
module Data.Monoid.Endo where
22

3-
import Data.Function (id, (<<<))
3+
import Prelude
4+
45
import Data.Functor.Invariant (class Invariant)
56
import Data.Monoid (class Monoid)
6-
import Data.Semigroup (class Semigroup)
7+
import Data.Newtype (class Newtype)
78

89
-- | Monoid of endomorphisms under composition.
910
-- |
@@ -14,8 +15,7 @@ import Data.Semigroup (class Semigroup)
1415
-- | ```
1516
newtype Endo a = Endo (a -> a)
1617

17-
runEndo :: forall a. Endo a -> a -> a
18-
runEndo (Endo f) = f
18+
derive instance newtypeEndo :: Newtype (Endo a) _
1919

2020
instance invariantEndo :: Invariant Endo where
2121
imap ab ba (Endo f) = Endo (ab <<< f <<< ba)

src/Data/Monoid/Multiplicative.purs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
module Data.Monoid.Multiplicative where
22

3-
import Control.Applicative (class Applicative)
4-
import Control.Apply (class Apply)
5-
import Control.Bind (class Bind)
3+
import Prelude
4+
65
import Control.Comonad (class Comonad)
76
import Control.Extend (class Extend)
8-
import Control.Monad (class Monad)
97

10-
import Data.Bounded (class Bounded, top, bottom)
11-
import Data.Eq (class Eq, (==))
12-
import Data.Functor (class Functor)
138
import Data.Functor.Invariant (class Invariant)
149
import Data.Monoid (class Monoid)
15-
import Data.Ord (class Ord, compare)
16-
import Data.Semigroup (class Semigroup, (<>))
17-
import Data.Semiring (class Semiring, (*), one)
18-
import Data.Show (class Show, show)
10+
import Data.Newtype (class Newtype, unwrap)
1911

2012
-- | Monoid and semigroup for semirings under multiplication.
2113
-- |
@@ -25,14 +17,11 @@ import Data.Show (class Show, show)
2517
-- | ```
2618
newtype Multiplicative a = Multiplicative a
2719

28-
runMultiplicative :: forall a. Multiplicative a -> a
29-
runMultiplicative (Multiplicative x) = x
20+
derive instance newtypeMultiplicative :: Newtype (Multiplicative a) _
3021

31-
instance eqMultiplicative :: (Eq a) => Eq (Multiplicative a) where
32-
eq (Multiplicative x) (Multiplicative y) = x == y
22+
derive newtype instance eqMultiplicative :: (Eq a) => Eq (Multiplicative a)
3323

34-
instance ordMultiplicative :: (Ord a) => Ord (Multiplicative a) where
35-
compare (Multiplicative x) (Multiplicative y) = compare x y
24+
derive newtype instance ordMultiplicative :: (Ord a) => Ord (Multiplicative a)
3625

3726
instance boundedMultiplicative :: Bounded a => Bounded (Multiplicative a) where
3827
top = Multiplicative top
@@ -59,7 +48,7 @@ instance extendMultiplicative :: Extend Multiplicative where
5948
extend f x = Multiplicative (f x)
6049

6150
instance comonadMultiplicative :: Comonad Multiplicative where
62-
extract = runMultiplicative
51+
extract = unwrap
6352

6453
instance showMultiplicative :: (Show a) => Show (Multiplicative a) where
6554
show (Multiplicative a) = "(Multiplicative " <> show a <> ")"

0 commit comments

Comments
 (0)