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

Commit f9acfaa

Browse files
authored
Merge pull request #28 from purescript/bump
Prepare for 2.0 release
2 parents fd7e468 + fdfbb6e commit f9acfaa

File tree

7 files changed

+53
-112
lines changed

7 files changed

+53
-112
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: 8 additions & 21 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,18 +17,13 @@ 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

37-
instance boundedAdditive :: Bounded a => Bounded (Additive a) where
38-
top = Additive top
39-
bottom = Additive bottom
26+
derive newtype instance boundedAdditive :: Bounded a => Bounded (Additive a)
4027

4128
instance functorAdditive :: Functor Additive where
4229
map f (Additive x) = Additive (f x)
@@ -59,7 +46,7 @@ instance extendAdditive :: Extend Additive where
5946
extend f x = Additive (f x)
6047

6148
instance comonadAdditive :: Comonad Additive where
62-
extract = runAdditive
49+
extract = unwrap
6350

6451
instance showAdditive :: Show a => Show (Additive a) where
6552
show (Additive a) = "(Additive " <> show a <> ")"

src/Data/Monoid/Conj.purs

Lines changed: 9 additions & 22 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,18 +18,13 @@ 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

38-
instance boundedConj :: Bounded a => Bounded (Conj a) where
39-
top = Conj top
40-
bottom = Conj bottom
27+
derive newtype instance boundedConj :: Bounded a => Bounded (Conj a)
4128

4229
instance functorConj :: Functor Conj where
4330
map f (Conj x) = Conj (f x)
@@ -60,7 +47,7 @@ instance extendConj :: Extend Conj where
6047
extend f x = Conj (f x)
6148

6249
instance comonadConj :: Comonad Conj where
63-
extract = runConj
50+
extract = unwrap
6451

6552
instance showConj :: (Show a) => Show (Conj a) where
6653
show (Conj a) = "(Conj " <> show a <> ")"

src/Data/Monoid/Disj.purs

Lines changed: 13 additions & 22 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,22 +18,20 @@ 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

37-
instance boundedDisj :: Bounded a => Bounded (Disj a) where
38-
top = Disj top
39-
bottom = Disj bottom
27+
derive newtype instance boundedDisj :: Bounded a => Bounded (Disj a)
4028

4129
instance functorDisj :: Functor Disj where
4230
map f (Disj x) = Disj (f x)
4331

32+
instance invariantDisj :: Invariant Disj where
33+
imap f _ (Disj x) = Disj (f x)
34+
4435
instance applyDisj :: Apply Disj where
4536
apply (Disj f) (Disj x) = Disj (f x)
4637

@@ -56,7 +47,7 @@ instance extendDisj :: Extend Disj where
5647
extend f x = Disj (f x)
5748

5849
instance comonadDisj :: Comonad Disj where
59-
extract = runDisj
50+
extract = unwrap
6051

6152
instance showDisj :: Show a => Show (Disj a) where
6253
show (Disj a) = "(Disj " <> show a <> ")"

src/Data/Monoid/Dual.purs

Lines changed: 8 additions & 20 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,18 +17,13 @@ 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

36-
instance boundedDual :: Bounded a => Bounded (Dual a) where
37-
top = Dual top
38-
bottom = Dual bottom
26+
derive newtype instance boundedDual :: Bounded a => Bounded (Dual a)
3927

4028
instance functorDual :: Functor Dual where
4129
map f (Dual x) = Dual (f x)
@@ -58,7 +46,7 @@ instance extendDual :: Extend Dual where
5846
extend f x = Dual (f x)
5947

6048
instance comonadDual :: Comonad Dual where
61-
extract = runDual
49+
extract = unwrap
6250

6351
instance showDual :: Show a => Show (Dual a) where
6452
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: 8 additions & 21 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,18 +17,13 @@ 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

37-
instance boundedMultiplicative :: Bounded a => Bounded (Multiplicative a) where
38-
top = Multiplicative top
39-
bottom = Multiplicative bottom
26+
derive newtype instance boundedMultiplicative :: Bounded a => Bounded (Multiplicative a)
4027

4128
instance functorMultiplicative :: Functor Multiplicative where
4229
map f (Multiplicative x) = Multiplicative (f x)
@@ -59,7 +46,7 @@ instance extendMultiplicative :: Extend Multiplicative where
5946
extend f x = Multiplicative (f x)
6047

6148
instance comonadMultiplicative :: Comonad Multiplicative where
62-
extract = runMultiplicative
49+
extract = unwrap
6350

6451
instance showMultiplicative :: (Show a) => Show (Multiplicative a) where
6552
show (Multiplicative a) = "(Multiplicative " <> show a <> ")"

0 commit comments

Comments
 (0)