Skip to content

Commit 999def0

Browse files
committed
Add monoid instances
1 parent 6caa8e1 commit 999def0

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

src/Effect/Uncurried.purs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@
132132

133133
module Effect.Uncurried where
134134

135+
import Data.Function (($))
136+
import Data.Monoid (class Monoid, class Semigroup, mempty, (<>))
135137
import Effect (Effect)
136138

137139
foreign import data EffectFn1 :: Type -> Type -> Type
@@ -186,3 +188,63 @@ foreign import runEffectFn9 :: forall a b c d e f g h i r.
186188
EffectFn9 a b c d e f g h i r -> a -> b -> c -> d -> e -> f -> g -> h -> i -> Effect r
187189
foreign import runEffectFn10 :: forall a b c d e f g h i j r.
188190
EffectFn10 a b c d e f g h i j r -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> Effect r
191+
192+
instance semigroupEffectFn1 :: Semigroup r => Semigroup (EffectFn1 a r) where
193+
append f1 f2 = mkEffectFn1 $ (runEffectFn1 f1) <> (runEffectFn1 f2)
194+
195+
instance semigroupEffectFn2 :: Semigroup r => Semigroup (EffectFn2 a b r) where
196+
append f1 f2 = mkEffectFn2 $ (runEffectFn2 f1) <> (runEffectFn2 f2)
197+
198+
instance semigroupEffectFn3 :: Semigroup r => Semigroup (EffectFn3 a b c r) where
199+
append f1 f2 = mkEffectFn3 $ (runEffectFn3 f1) <> (runEffectFn3 f2)
200+
201+
instance semigroupEffectFn4 :: Semigroup r => Semigroup (EffectFn4 a b c d r) where
202+
append f1 f2 = mkEffectFn4 $ (runEffectFn4 f1) <> (runEffectFn4 f2)
203+
204+
instance semigroupEffectFn5 :: Semigroup r => Semigroup (EffectFn5 a b c d e r) where
205+
append f1 f2 = mkEffectFn5 $ (runEffectFn5 f1) <> (runEffectFn5 f2)
206+
207+
instance semigroupEffectFn6 :: Semigroup r => Semigroup (EffectFn6 a b c d e f r) where
208+
append f1 f2 = mkEffectFn6 $ (runEffectFn6 f1) <> (runEffectFn6 f2)
209+
210+
instance semigroupEffectFn7 :: Semigroup r => Semigroup (EffectFn7 a b c d e f g r) where
211+
append f1 f2 = mkEffectFn7 $ (runEffectFn7 f1) <> (runEffectFn7 f2)
212+
213+
instance semigroupEffectFn8 :: Semigroup r => Semigroup (EffectFn8 a b c d e f g h r) where
214+
append f1 f2 = mkEffectFn8 $ (runEffectFn8 f1) <> (runEffectFn8 f2)
215+
216+
instance semigroupEffectFn9 :: Semigroup r => Semigroup (EffectFn9 a b c d e f g h i r) where
217+
append f1 f2 = mkEffectFn9 $ (runEffectFn9 f1) <> (runEffectFn9 f2)
218+
219+
instance semigroupEffectFn10 :: Semigroup r => Semigroup (EffectFn10 a b c d e f g h i j r) where
220+
append f1 f2 = mkEffectFn10 $ (runEffectFn10 f1) <> (runEffectFn10 f2)
221+
222+
instance monoidEffectFn1 :: Monoid r => Monoid (EffectFn1 a r) where
223+
mempty = mkEffectFn1 mempty
224+
225+
instance monoidEffectFn2 :: Monoid r => Monoid (EffectFn2 a b r) where
226+
mempty = mkEffectFn2 mempty
227+
228+
instance monoidEffectFn3 :: Monoid r => Monoid (EffectFn3 a b c r) where
229+
mempty = mkEffectFn3 mempty
230+
231+
instance monoidEffectFn4 :: Monoid r => Monoid (EffectFn4 a b c d r) where
232+
mempty = mkEffectFn4 mempty
233+
234+
instance monoidEffectFn5 :: Monoid r => Monoid (EffectFn5 a b c d e r) where
235+
mempty = mkEffectFn5 mempty
236+
237+
instance monoidEffectFn6 :: Monoid r => Monoid (EffectFn6 a b c d e f r) where
238+
mempty = mkEffectFn6 mempty
239+
240+
instance monoidEffectFn7 :: Monoid r => Monoid (EffectFn7 a b c d e f g r) where
241+
mempty = mkEffectFn7 mempty
242+
243+
instance monoidEffectFn8 :: Monoid r => Monoid (EffectFn8 a b c d e f g h r) where
244+
mempty = mkEffectFn8 mempty
245+
246+
instance monoidEffectFn9 :: Monoid r => Monoid (EffectFn9 a b c d e f g h i r) where
247+
mempty = mkEffectFn9 mempty
248+
249+
instance monoidEffectFn10 :: Monoid r => Monoid (EffectFn10 a b c d e f g h i j r) where
250+
mempty = mkEffectFn10 mempty

0 commit comments

Comments
 (0)