File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed
Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change 11module Data.Semigroup.Traversable where
22
33import Prelude
4- import Data.Traversable (class Traversable )
4+
5+ import Data.Monoid.Dual (Dual (..))
6+ import Data.Monoid.Multiplicative (Multiplicative (..))
57import Data.Semigroup.Foldable (class Foldable1 )
8+ import Data.Traversable (class Traversable )
69
710-- | `Traversable1` represents data structures with a minimum of one element that can be _traversed_,
811-- | accumulating results and effects in some `Applicative` functor.
@@ -31,6 +34,14 @@ class (Foldable1 t, Traversable t) <= Traversable1 t where
3134 traverse1 :: forall a b f . Apply f => (a -> f b ) -> t a -> f (t b )
3235 sequence1 :: forall b f . Apply f => t (f b ) -> f (t b )
3336
37+ instance traversableDual :: Traversable1 Dual where
38+ traverse1 f (Dual x) = Dual <$> f x
39+ sequence1 = sequence1Default
40+
41+ instance traversableMultiplicative :: Traversable1 Multiplicative where
42+ traverse1 f (Multiplicative x) = Multiplicative <$> f x
43+ sequence1 = sequence1Default
44+
3445-- | A default implementation of `traverse1` using `sequence1`.
3546traverse1Default
3647 :: forall t a b m
You can’t perform that action at this time.
0 commit comments