HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulelinear-base-0.4.0Haskell2010

Data.Functor.Linear.Internal.Traversable

  • 2 classes
  • 7 values

Linear traversable hierarchy

9 declarations
classclass Functor t => Traversable (t :: Type -> Type) where
#

A linear data traversible is a functor of type t a where you can apply a linear effectful action of type a %1-> f b on each value of type a and compose this to perform an action on the whole functor, resulting in a value of type f (t b).

To learn more about Traversable, see here:

Methods

Instances23Traversable, …
  • Traversable Par1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable MaybeDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable []Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • KnownNat n => Traversable (V n)Defined in linear-base-0.4.0 · Data.V.Linear.Internal.Instances · orphan
  • Traversable U1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable UAddrDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable UCharDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable UDoubleDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable UFloatDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable UIntDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable UWordDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable V1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (Either a)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (Tuple2 a)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (Const a)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (Tuple3 a b)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (K1 i v)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (Tuple4 a b c)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • (Traversable f, Traversable g) => Traversable (f :*: g)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • (Traversable f, Traversable g) => Traversable (f :+: g)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable (Tuple5 a b c d)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Traversable f => Traversable (M1 i c f)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • (Traversable f, Traversable g) => Traversable (f :.: g)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
valuegenericTraverse
  1. :: (Generic1 t, GTraversable (Rep1 t), Applicative f)
  2. => a %1 -> f b
  3. -> t a
  4. -> f (t b)
#

Implementation of traverse for types which derive (linear) Generic1.

### Performance note

At present, this function does not perform well for recursive types like lists; it will not specialize to either

### Example

data T
$(deriveGeneric1 ''T)

instance Traversable T where
  traverse = genericTraverse

Note that, contrary to many other classes in linear-base, we can't define `Traversable T` using deriving via, because the role of t, in the type of traverse, is nominal.

classclass GTraversable (t :: Type -> Type) where
#

This type class derives the definition of genericTraverse by induction on the generic representation of a type.

Instances15GTraversable, …