This repository was archived by the owner on Oct 4, 2020. It is now read-only.
File tree Expand file tree Collapse file tree 13 files changed +74
-7
lines changed
Expand file tree Collapse file tree 13 files changed +74
-7
lines changed Original file line number Diff line number Diff line change 1616 " package.json"
1717 ],
1818 "dependencies" : {
19- "purescript-arrays" : " ~0.4.0"
19+ "purescript-arrays" : " ~0.4.0" ,
20+ "purescript-invariant" : " ~0.1.0"
2021 }
2122}
Original file line number Diff line number Diff line change @@ -86,6 +86,13 @@ instance comonadAdditive :: Comonad Additive
8686```
8787
8888
89+ #### ` invariantAdditive `
90+
91+ ``` purescript
92+ instance invariantAdditive :: Invariant Additive
93+ ```
94+
95+
8996#### ` showAdditive `
9097
9198``` purescript
Original file line number Diff line number Diff line change @@ -86,6 +86,13 @@ instance comonadDual :: Comonad Dual
8686```
8787
8888
89+ #### ` invariantDual `
90+
91+ ``` purescript
92+ instance invariantDual :: Invariant Dual
93+ ```
94+
95+
8996#### ` showDual `
9097
9198``` purescript
Original file line number Diff line number Diff line change @@ -24,6 +24,13 @@ runEndo :: forall a. Endo a -> a -> a
2424```
2525
2626
27+ #### ` invariantEndo `
28+
29+ ``` purescript
30+ instance invariantEndo :: Invariant Endo
31+ ```
32+
33+
2734#### ` semigroupEndo `
2835
2936``` purescript
Original file line number Diff line number Diff line change @@ -81,6 +81,13 @@ instance extendFirst :: Extend First
8181```
8282
8383
84+ #### ` invariantFirst `
85+
86+ ``` purescript
87+ instance invariantFirst :: Invariant First
88+ ```
89+
90+
8491#### ` showFirst `
8592
8693``` purescript
Original file line number Diff line number Diff line change @@ -81,6 +81,13 @@ instance extendLast :: Extend Last
8181```
8282
8383
84+ #### ` invariantLast `
85+
86+ ``` purescript
87+ instance invariantLast :: Invariant Last
88+ ```
89+
90+
8491#### ` showLast `
8592
8693``` purescript
Original file line number Diff line number Diff line change @@ -72,17 +72,24 @@ instance monadMultiplicative :: Monad Multiplicative
7272```
7373
7474
75- #### ` extendAdditive `
75+ #### ` extendMultiplicative `
7676
7777``` purescript
78- instance extendAdditive :: Extend Multiplicative
78+ instance extendMultiplicative :: Extend Multiplicative
7979```
8080
8181
82- #### ` comonadAdditive `
82+ #### ` comonadMultiplicative `
8383
8484``` purescript
85- instance comonadAdditive :: Comonad Multiplicative
85+ instance comonadMultiplicative :: Comonad Multiplicative
86+ ```
87+
88+
89+ #### ` invariantMultiplicative `
90+
91+ ``` purescript
92+ instance invariantMultiplicative :: Invariant Multiplicative
8693```
8794
8895
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ module Data.Monoid.Additive where
22
33import Control.Comonad (Comonad )
44import Control.Extend (Extend )
5+ import Data.Functor.Invariant (Invariant , invmap )
56import Data.Monoid
67
78-- | Monoid and semigroup for semirings under addition.
@@ -42,6 +43,9 @@ instance extendAdditive :: Extend Additive where
4243instance comonadAdditive :: Comonad Additive where
4344 extract = runAdditive
4445
46+ instance invariantAdditive :: Invariant Additive where
47+ invmap f _ (Additive x) = Additive (f x)
48+
4549instance showAdditive :: (Show a ) => Show (Additive a ) where
4650 show (Additive a) = " Additive (" ++ show a ++ " )"
4751
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ module Data.Monoid.Dual where
22
33import Control.Comonad (Comonad )
44import Control.Extend (Extend )
5+ import Data.Functor.Invariant (Invariant , invmap )
56import Data.Monoid
67
78-- | The dual of a monoid.
@@ -42,6 +43,9 @@ instance extendDual :: Extend Dual where
4243instance comonadDual :: Comonad Dual where
4344 extract = runDual
4445
46+ instance invariantDual :: Invariant Dual where
47+ invmap f _ (Dual x) = Dual (f x)
48+
4549instance showDual :: (Show a ) => Show (Dual a ) where
4650 show (Dual a) = " Dual (" ++ show a ++ " )"
4751
Original file line number Diff line number Diff line change 11module Data.Monoid.Endo where
22
3+ import Data.Functor.Invariant (Invariant , invmap )
34import Data.Monoid
45
56-- | Monoid of endomorphisms under composition.
@@ -14,6 +15,9 @@ newtype Endo a = Endo (a -> a)
1415runEndo :: forall a . Endo a -> a -> a
1516runEndo (Endo f) = f
1617
18+ instance invariantEndo :: Invariant Endo where
19+ invmap ab ba (Endo f) = Endo (ab <<< f <<< ba)
20+
1721instance semigroupEndo :: Semigroup (Endo a ) where
1822 (<>) (Endo f) (Endo g) = Endo (f <<< g)
1923
You can’t perform that action at this time.
0 commit comments