|
132 | 132 |
|
133 | 133 | module Effect.Uncurried where
|
134 | 134 |
|
| 135 | +import Data.Function (($)) |
| 136 | +import Data.Monoid (class Monoid, class Semigroup, mempty, (<>)) |
135 | 137 | import Effect (Effect)
|
136 | 138 |
|
137 | 139 | 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.
|
186 | 188 | EffectFn9 a b c d e f g h i r -> a -> b -> c -> d -> e -> f -> g -> h -> i -> Effect r
|
187 | 189 | foreign import runEffectFn10 :: forall a b c d e f g h i j r.
|
188 | 190 | 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