semigroupoids-5.3.7: Semigroupoids: Category sans id
Copyright (C) 2011-2015 Edward Kmett
License BSD-style (see the file LICENSE)
Maintainer Edward Kmett <ekmett@gmail.com>
Stability provisional
Portability portable
Safe Haskell Safe
Language Haskell2010

Data.Semigroup.Traversable

Description

Synopsis

Documentation

class ( Foldable1 t, Traversable t) => Traversable1 t where Source #

Minimal complete definition

traverse1 | sequence1

Methods

traverse1 :: Apply f => (a -> f b) -> t a -> f (t b) Source #

sequence1 :: Apply f => t (f b) -> f (t b) Source #

Instances

Instances details
Traversable1 Par1 Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Par1 a -> f ( Par1 b) Source #

sequence1 :: Apply f => Par1 (f b) -> f ( Par1 b) Source #

Traversable1 Complex Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Traversable1 Min Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Min a -> f ( Min b) Source #

sequence1 :: Apply f => Min (f b) -> f ( Min b) Source #

Traversable1 Max Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Max a -> f ( Max b) Source #

sequence1 :: Apply f => Max (f b) -> f ( Max b) Source #

Traversable1 First Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Traversable1 Last Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Last a -> f ( Last b) Source #

sequence1 :: Apply f => Last (f b) -> f ( Last b) Source #

Traversable1 Identity Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Traversable1 Dual Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Dual a -> f ( Dual b) Source #

sequence1 :: Apply f => Dual (f b) -> f ( Dual b) Source #

Traversable1 Sum Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Sum a -> f ( Sum b) Source #

sequence1 :: Apply f => Sum (f b) -> f ( Sum b) Source #

Traversable1 Product Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Traversable1 NonEmpty Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Traversable1 Tree Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Tree a -> f ( Tree b) Source #

sequence1 :: Apply f => Tree (f b) -> f ( Tree b) Source #

Traversable1 ( V1 :: Type -> Type ) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> V1 a -> f ( V1 b) Source #

sequence1 :: Apply f => V1 (f b) -> f ( V1 b) Source #

Traversable1 ( (,) a) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a0 -> f b) -> (a, a0) -> f (a, b) Source #

sequence1 :: Apply f => (a, f b) -> f (a, b) Source #

Traversable1 f => Traversable1 ( Lift f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Lift f a -> f0 ( Lift f b) Source #

sequence1 :: Apply f0 => Lift f (f0 b) -> f0 ( Lift f b) Source #

Traversable1 f => Traversable1 ( Rec1 f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Rec1 f a -> f0 ( Rec1 f b) Source #

sequence1 :: Apply f0 => Rec1 f (f0 b) -> f0 ( Rec1 f b) Source #

Traversable1 f => Traversable1 ( Alt f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Alt f a -> f0 ( Alt f b) Source #

sequence1 :: Apply f0 => Alt f (f0 b) -> f0 ( Alt f b) Source #

Bitraversable1 p => Traversable1 ( Join p) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a -> f b) -> Join p a -> f ( Join p b) Source #

sequence1 :: Apply f => Join p (f b) -> f ( Join p b) Source #

Traversable1 f => Traversable1 ( IdentityT f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> IdentityT f a -> f0 ( IdentityT f b) Source #

sequence1 :: Apply f0 => IdentityT f (f0 b) -> f0 ( IdentityT f b) Source #

Traversable1 ( Tagged a) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a0 -> f b) -> Tagged a a0 -> f ( Tagged a b) Source #

sequence1 :: Apply f => Tagged a (f b) -> f ( Tagged a b) Source #

Traversable1 f => Traversable1 ( Reverse f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Reverse f a -> f0 ( Reverse f b) Source #

sequence1 :: Apply f0 => Reverse f (f0 b) -> f0 ( Reverse f b) Source #

Traversable1 f => Traversable1 ( Backwards f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Backwards f a -> f0 ( Backwards f b) Source #

sequence1 :: Apply f0 => Backwards f (f0 b) -> f0 ( Backwards f b) Source #

( Traversable1 f, Traversable1 g) => Traversable1 (f :+: g) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> (f :+: g) a -> f0 ((f :+: g) b) Source #

sequence1 :: Apply f0 => (f :+: g) (f0 b) -> f0 ((f :+: g) b) Source #

( Traversable1 f, Traversable1 g) => Traversable1 (f :*: g) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> (f :*: g) a -> f0 ((f :*: g) b) Source #

sequence1 :: Apply f0 => (f :*: g) (f0 b) -> f0 ((f :*: g) b) Source #

( Traversable1 f, Traversable1 g) => Traversable1 ( Product f g) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Product f g a -> f0 ( Product f g b) Source #

sequence1 :: Apply f0 => Product f g (f0 b) -> f0 ( Product f g b) Source #

( Traversable1 f, Traversable1 g) => Traversable1 ( Sum f g) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Sum f g a -> f0 ( Sum f g b) Source #

sequence1 :: Apply f0 => Sum f g (f0 b) -> f0 ( Sum f g b) Source #

Traversable1 f => Traversable1 ( M1 i c f) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> M1 i c f a -> f0 ( M1 i c f b) Source #

sequence1 :: Apply f0 => M1 i c f (f0 b) -> f0 ( M1 i c f b) Source #

( Traversable1 f, Traversable1 g) => Traversable1 (f :.: g) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> (f :.: g) a -> f0 ((f :.: g) b) Source #

sequence1 :: Apply f0 => (f :.: g) (f0 b) -> f0 ((f :.: g) b) Source #

( Traversable1 f, Traversable1 g) => Traversable1 ( Compose f g) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Compose f g a -> f0 ( Compose f g b) Source #

sequence1 :: Apply f0 => Compose f g (f0 b) -> f0 ( Compose f g b) Source #

Traversable1 g => Traversable1 ( Joker g a) Source #
Instance details

Defined in Data.Semigroup.Traversable.Class

Methods

traverse1 :: Apply f => (a0 -> f b) -> Joker g a a0 -> f ( Joker g a b) Source #

sequence1 :: Apply f => Joker g a (f b) -> f ( Joker g a b) Source #

Defining Traversable1 instances

Defining Traversable1 instances for types with both Traversable1 and Traversable substructures can be done with traverse1Maybe , (<*.>) , and (<.*>) .

data Foo a = Foo (Maybe a) (Maybe a) a [a]
  deriving (Functor, Traversable, Foldable)
instance Traversable1 Foo where
  traverse1 f (Foo ma ma' a as) = Foo <$> traverseMaybe ma <*> traverseMaybe ma' <*.> f a <.*> traverseMaybe as
instance Foldable1 Foo where
  foldMap1 = foldMap1Default

traverse1Maybe :: ( Traversable t, Apply f) => (a -> f b) -> t a -> MaybeApply f (t b) Source #

Traverse a Traversable using Apply , getting the results back in a MaybeApply .

Default superclass instance helpers

foldMap1Default :: ( Traversable1 f, Semigroup m) => (a -> m) -> f a -> m Source #

Default implementation of foldMap1 given an implementation of Traversable1 .