module Data.HFunctor.HTraversable (
  
    HTraversable(..)
  , hsequence, hfoldMap, htoList, hmapDefault, hfor
  
  , HTraversable1(..)
  , hsequence1, hfoldMap1, htoNonEmpty, hfor1
  ) where
import           Control.Applicative
import           Control.Applicative.Backwards
import           Control.Applicative.Free
import           Control.Applicative.Lift
import           Control.Applicative.ListF
import           Control.Applicative.Step
import           Control.Comonad.Trans.Env
import           Control.Monad.Trans.Compose
import           Control.Monad.Trans.Identity
import           Control.Monad.Trans.Maybe
import           Control.Natural
import           Data.Bifunctor.Joker
import           Data.Bitraversable
import           Data.Coerce
import           Data.Functor.Apply
import           Data.Functor.Coyoneda
import           Data.Functor.Day                    (Day(..))
import           Data.Functor.Identity
import           Data.Functor.Product
import           Data.Functor.Reverse
import           Data.Functor.Sum
import           Data.Functor.These
import           Data.HFunctor
import           Data.HFunctor.Internal
import           Data.HFunctor.Interpret
import           Data.List.NonEmpty                  (NonEmpty)
import           Data.Semigroup                      (Endo(..))
import           Data.Semigroup.Traversable
import           Data.Tagged
import           Data.Vinyl.CoRec
import           Data.Vinyl.Core                     (Rec)
import           Data.Vinyl.Recursive
import           GHC.Generics
import qualified Control.Alternative.Free            as Alt
import qualified Control.Applicative.Free            as Ap
import qualified Control.Applicative.Free.Fast       as FAF
import qualified Control.Applicative.Free.Final      as FA
import qualified Control.Applicative.Lift            as Lift
import qualified Data.Functor.Contravariant.Coyoneda as CCY
import qualified Data.Functor.Invariant.Day          as ID
import qualified Data.Functor.Invariant.Night        as IN
import qualified Data.SOP                            as SOP
class HTraversable t => HTraversable1 t where
    
    
    htraverse1 :: Apply h => (forall x. f x -> h (g x)) -> t f a -> h (t g a)
hsequence1 :: (HTraversable1 t, Apply h) => t (h :.: f) a -> h (t f a)
hsequence1 :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (a :: k1).
(HTraversable1 t, Apply h) =>
t (h :.: f) a -> h (t f a)
hsequence1 = (forall (x :: k). (:.:) h f x -> h (f x))
-> t (h :.: f) a -> h (t f a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Apply h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 (:.:) h f x -> h (f x)
forall (x :: k). (:.:) h f x -> h (f x)
forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1).
(:.:) f g p -> f (g p)
unComp1
hfoldMap1 :: (HTraversable1 t, Semigroup m) => (forall x. f x -> m) -> t f a -> m
hfoldMap1 :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) m (f :: k -> *)
       (a :: k1).
(HTraversable1 t, Semigroup m) =>
(forall (x :: k). f x -> m) -> t f a -> m
hfoldMap1 forall (x :: k). f x -> m
f = Const m (t Any a) -> m
forall {k} a (b :: k). Const a b -> a
getConst (Const m (t Any a) -> m)
-> (t f a -> Const m (t Any a)) -> t f a -> m
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall (x :: k). f x -> Const m (Any x))
-> t f a -> Const m (t Any a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Apply h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 (m -> Const m (Any x)
forall {k} a (b :: k). a -> Const a b
Const (m -> Const m (Any x)) -> (f x -> m) -> f x -> Const m (Any x)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f x -> m
forall (x :: k). f x -> m
f)
htoNonEmpty :: HTraversable1 t => (forall x. f x -> b) -> t f a -> NonEmpty b
htoNonEmpty :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) (f :: k -> *) b
       (a :: k1).
HTraversable1 t =>
(forall (x :: k). f x -> b) -> t f a -> NonEmpty b
htoNonEmpty forall (x :: k). f x -> b
f = NDL b -> NonEmpty b
forall a. NDL a -> NonEmpty a
fromNDL (NDL b -> NonEmpty b) -> (t f a -> NDL b) -> t f a -> NonEmpty b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall (x :: k). f x -> NDL b) -> t f a -> NDL b
forall {k} {k1} (t :: (k -> *) -> k1 -> *) m (f :: k -> *)
       (a :: k1).
(HTraversable1 t, Semigroup m) =>
(forall (x :: k). f x -> m) -> t f a -> m
hfoldMap1 (b -> NDL b
forall a. a -> NDL a
ndlSingleton (b -> NDL b) -> (f x -> b) -> f x -> NDL b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f x -> b
forall (x :: k). f x -> b
f)
hfor1 :: (HTraversable1 t, Apply h) => t f a -> (forall x. f x -> h (g x)) -> h (t g a)
hfor1 :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (a :: k1) (g :: k -> *).
(HTraversable1 t, Apply h) =>
t f a -> (forall (x :: k). f x -> h (g x)) -> h (t g a)
hfor1 t f a
x forall (x :: k). f x -> h (g x)
f = (forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Apply h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 f x -> h (g x)
forall (x :: k). f x -> h (g x)
f t f a
x
class HFunctor t => HTraversable t where
    
    
    htraverse :: Applicative h => (forall x. f x -> h (g x)) -> t f a -> h (t g a)
hsequence :: (HTraversable t, Applicative h) => t (h :.: f) a -> h (t f a)
hsequence :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
t (h :.: f) a -> h (t f a)
hsequence = (forall (x :: k). (:.:) h f x -> h (f x))
-> t (h :.: f) a -> h (t f a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse (:.:) h f x -> h (f x)
forall (x :: k). (:.:) h f x -> h (f x)
forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1).
(:.:) f g p -> f (g p)
unComp1
hfoldMap :: (HTraversable t, Monoid m) => (forall x. f x -> m) -> t f a -> m
hfoldMap :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) m (f :: k -> *)
       (a :: k1).
(HTraversable t, Monoid m) =>
(forall (x :: k). f x -> m) -> t f a -> m
hfoldMap forall (x :: k). f x -> m
f = Const m (t Any a) -> m
forall {k} a (b :: k). Const a b -> a
getConst (Const m (t Any a) -> m)
-> (t f a -> Const m (t Any a)) -> t f a -> m
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall (x :: k). f x -> Const m (Any x))
-> t f a -> Const m (t Any a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse (m -> Const m (Any x)
forall {k} a (b :: k). a -> Const a b
Const (m -> Const m (Any x)) -> (f x -> m) -> f x -> Const m (Any x)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f x -> m
forall (x :: k). f x -> m
f)
htoList :: HTraversable t => (forall x. f x -> b) -> t f a -> [b]
htoList :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) (f :: k -> *) b
       (a :: k1).
HTraversable t =>
(forall (x :: k). f x -> b) -> t f a -> [b]
htoList forall (x :: k). f x -> b
f = (Endo [b] -> [b] -> [b]) -> [b] -> Endo [b] -> [b]
forall a b c. (a -> b -> c) -> b -> a -> c
flip Endo [b] -> [b] -> [b]
forall a. Endo a -> a -> a
appEndo [] (Endo [b] -> [b]) -> (t f a -> Endo [b]) -> t f a -> [b]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall (x :: k). f x -> Endo [b]) -> t f a -> Endo [b]
forall {k} {k1} (t :: (k -> *) -> k1 -> *) m (f :: k -> *)
       (a :: k1).
(HTraversable t, Monoid m) =>
(forall (x :: k). f x -> m) -> t f a -> m
hfoldMap (([b] -> [b]) -> Endo [b]
forall a. (a -> a) -> Endo a
Endo (([b] -> [b]) -> Endo [b])
-> (f x -> [b] -> [b]) -> f x -> Endo [b]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (:) (b -> [b] -> [b]) -> (f x -> b) -> f x -> [b] -> [b]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f x -> b
forall (x :: k). f x -> b
f)
hfor :: (HTraversable t, Applicative h) => t f a -> (forall x. f x -> h (g x)) -> h (t g a)
hfor :: forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (a :: k1) (g :: k -> *).
(HTraversable t, Applicative h) =>
t f a -> (forall (x :: k). f x -> h (g x)) -> h (t g a)
hfor t f a
x forall (x :: k). f x -> h (g x)
f = (forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse f x -> h (g x)
forall (x :: k). f x -> h (g x)
f t f a
x
hmapDefault :: HTraversable t => (f ~> g) -> t f ~> t g
hmapDefault :: forall {k} {k} (t :: (k -> *) -> k -> *) (f :: k -> *)
       (g :: k -> *).
HTraversable t =>
(f ~> g) -> t f ~> t g
hmapDefault f ~> g
f = Identity (t g x) -> t g x
forall a. Identity a -> a
runIdentity (Identity (t g x) -> t g x)
-> (t f x -> Identity (t g x)) -> t f x -> t g x
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall (x :: k). f x -> Identity (g x))
-> t f x -> Identity (t g x)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse (g x -> Identity (g x)
forall a. a -> Identity a
Identity (g x -> Identity (g x)) -> (f x -> g x) -> f x -> Identity (g x)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f x -> g x
f ~> g
f)
instance HTraversable Coyoneda where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Coyoneda f a -> h (Coyoneda g a)
htraverse forall x. f x -> h (g x)
f (Coyoneda b -> a
g f b
x) = (b -> a) -> g b -> Coyoneda g a
forall b a (f :: * -> *). (b -> a) -> f b -> Coyoneda f a
Coyoneda b -> a
g (g b -> Coyoneda g a) -> h (g b) -> h (Coyoneda g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f b -> h (g b)
forall x. f x -> h (g x)
f f b
x
instance HTraversable1 Coyoneda where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> Coyoneda f a -> h (Coyoneda g a)
htraverse1 forall x. f x -> h (g x)
f (Coyoneda b -> a
g f b
x) = (b -> a) -> g b -> Coyoneda g a
forall b a (f :: * -> *). (b -> a) -> f b -> Coyoneda f a
Coyoneda b -> a
g (g b -> Coyoneda g a) -> h (g b) -> h (Coyoneda g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f b -> h (g b)
forall x. f x -> h (g x)
f f b
x
instance HTraversable CCY.Coyoneda where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Coyoneda f a -> h (Coyoneda g a)
htraverse forall x. f x -> h (g x)
f (CCY.Coyoneda a -> b
g f b
x) = (a -> b) -> g b -> Coyoneda g a
forall a b (f :: * -> *). (a -> b) -> f b -> Coyoneda f a
CCY.Coyoneda a -> b
g (g b -> Coyoneda g a) -> h (g b) -> h (Coyoneda g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f b -> h (g b)
forall x. f x -> h (g x)
f f b
x
instance HTraversable1 CCY.Coyoneda where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> Coyoneda f a -> h (Coyoneda g a)
htraverse1 forall x. f x -> h (g x)
f (CCY.Coyoneda a -> b
g f b
x) = (a -> b) -> g b -> Coyoneda g a
forall a b (f :: * -> *). (a -> b) -> f b -> Coyoneda f a
CCY.Coyoneda a -> b
g (g b -> Coyoneda g a) -> h (g b) -> h (Coyoneda g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f b -> h (g b)
forall x. f x -> h (g x)
f f b
x
instance HTraversable Ap where
    htraverse :: forall f g h a. Applicative h => (forall x. f x -> h (g x)) -> Ap f a -> h (Ap g a)
    htraverse :: forall (f :: * -> *) (g :: * -> *) (h :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Ap f a -> h (Ap g a)
htraverse forall x. f x -> h (g x)
f = Ap f a -> h (Ap g a)
forall b. Ap f b -> h (Ap g b)
go
      where
        go :: Ap f b -> h (Ap g b)
        go :: forall b. Ap f b -> h (Ap g b)
go = \case
          Ap.Pure b
x  -> Ap g b -> h (Ap g b)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (b -> Ap g b
forall a (f :: * -> *). a -> Ap f a
Ap.Pure b
x)
          Ap.Ap f a1
x Ap f (a1 -> b)
xs -> g a1 -> Ap g (a1 -> b) -> Ap g b
forall (f :: * -> *) a1 a. f a1 -> Ap f (a1 -> a) -> Ap f a
Ap.Ap (g a1 -> Ap g (a1 -> b) -> Ap g b)
-> h (g a1) -> h (Ap g (a1 -> b) -> Ap g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a1 -> h (g a1)
forall x. f x -> h (g x)
f f a1
x h (Ap g (a1 -> b) -> Ap g b) -> h (Ap g (a1 -> b)) -> h (Ap g b)
forall a b. h (a -> b) -> h a -> h b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Ap f (a1 -> b) -> h (Ap g (a1 -> b))
forall b. Ap f b -> h (Ap g b)
go Ap f (a1 -> b)
xs
instance HTraversable ListF where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> ListF f a -> h (ListF g a)
htraverse forall (x :: k1). f x -> h (g x)
f (ListF [f a]
xs) = [g a] -> ListF g a
forall {k} (f :: k -> *) (a :: k). [f a] -> ListF f a
ListF ([g a] -> ListF g a) -> h [g a] -> h (ListF g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> [f a] -> h [g a]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f [f a]
xs
instance HTraversable NonEmptyF where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> NonEmptyF f a -> h (NonEmptyF g a)
htraverse forall (x :: k1). f x -> h (g x)
f (NonEmptyF NonEmpty (f a)
xs) = NonEmpty (g a) -> NonEmptyF g a
forall {k} (f :: k -> *) (a :: k). NonEmpty (f a) -> NonEmptyF f a
NonEmptyF (NonEmpty (g a) -> NonEmptyF g a)
-> h (NonEmpty (g a)) -> h (NonEmptyF g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> NonEmpty (f a) -> h (NonEmpty (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> NonEmpty a -> f (NonEmpty b)
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f NonEmpty (f a)
xs
instance HTraversable1 NonEmptyF where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> NonEmptyF f a -> h (NonEmptyF g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (NonEmptyF NonEmpty (f a)
xs) = NonEmpty (g a) -> NonEmptyF g a
forall {k} (f :: k -> *) (a :: k). NonEmpty (f a) -> NonEmptyF f a
NonEmptyF (NonEmpty (g a) -> NonEmptyF g a)
-> h (NonEmpty (g a)) -> h (NonEmptyF g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> NonEmpty (f a) -> h (NonEmpty (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable1 t, Apply f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Apply f =>
(a -> f b) -> NonEmpty a -> f (NonEmpty b)
traverse1 f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f NonEmpty (f a)
xs
instance HTraversable MaybeF where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> MaybeF f a -> h (MaybeF g a)
htraverse forall (x :: k1). f x -> h (g x)
f (MaybeF Maybe (f a)
xs) = Maybe (g a) -> MaybeF g a
forall {k} (f :: k -> *) (a :: k). Maybe (f a) -> MaybeF f a
MaybeF (Maybe (g a) -> MaybeF g a) -> h (Maybe (g a)) -> h (MaybeF g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> Maybe (f a) -> h (Maybe (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> Maybe a -> f (Maybe b)
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f Maybe (f a)
xs
instance HTraversable (MapF k) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> MapF k f a -> h (MapF k g a)
htraverse forall (x :: k1). f x -> h (g x)
f (MapF Map k (f a)
xs) = Map k (g a) -> MapF k g a
forall {k} k1 (f :: k -> *) (a :: k). Map k1 (f a) -> MapF k1 f a
MapF (Map k (g a) -> MapF k g a) -> h (Map k (g a)) -> h (MapF k g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> Map k (f a) -> h (Map k (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> Map k a -> f (Map k b)
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f Map k (f a)
xs
instance HTraversable (NEMapF k) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> NEMapF k f a -> h (NEMapF k g a)
htraverse forall (x :: k1). f x -> h (g x)
f (NEMapF NEMap k (f a)
xs) = NEMap k (g a) -> NEMapF k g a
forall {k} k1 (f :: k -> *) (a :: k).
NEMap k1 (f a) -> NEMapF k1 f a
NEMapF (NEMap k (g a) -> NEMapF k g a)
-> h (NEMap k (g a)) -> h (NEMapF k g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> NEMap k (f a) -> h (NEMap k (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> NEMap k a -> f (NEMap k b)
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f NEMap k (f a)
xs
instance HTraversable1 (NEMapF k) where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> NEMapF k f a -> h (NEMapF k g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (NEMapF NEMap k (f a)
xs) = NEMap k (g a) -> NEMapF k g a
forall {k} k1 (f :: k -> *) (a :: k).
NEMap k1 (f a) -> NEMapF k1 f a
NEMapF (NEMap k (g a) -> NEMapF k g a)
-> h (NEMap k (g a)) -> h (NEMapF k g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> NEMap k (f a) -> h (NEMap k (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable1 t, Apply f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Apply f =>
(a -> f b) -> NEMap k a -> f (NEMap k b)
traverse1 f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f NEMap k (f a)
xs
instance HTraversable Alt.Alt where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Alt f a -> h (Alt g a)
htraverse forall x. f x -> h (g x)
f (Alt.Alt [AltF f a]
xs) = [AltF g a] -> Alt g a
forall (f :: * -> *) a. [AltF f a] -> Alt f a
Alt.Alt ([AltF g a] -> Alt g a) -> h [AltF g a] -> h (Alt g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (AltF f a -> h (AltF g a)) -> [AltF f a] -> h [AltF g a]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse ((forall x. f x -> h (g x)) -> AltF f a -> h (AltF g a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> AltF f a -> h (AltF g a)
htraverse f x -> h (g x)
forall x. f x -> h (g x)
f) [AltF f a]
xs
instance HTraversable Alt.AltF where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> AltF f a -> h (AltF g a)
htraverse forall x. f x -> h (g x)
f = \case
      Alt.Ap f a1
x Alt f (a1 -> a)
xs -> g a1 -> Alt g (a1 -> a) -> AltF g a
forall (f :: * -> *) a1 a. f a1 -> Alt f (a1 -> a) -> AltF f a
Alt.Ap (g a1 -> Alt g (a1 -> a) -> AltF g a)
-> h (g a1) -> h (Alt g (a1 -> a) -> AltF g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a1 -> h (g a1)
forall x. f x -> h (g x)
f f a1
x h (Alt g (a1 -> a) -> AltF g a)
-> h (Alt g (a1 -> a)) -> h (AltF g a)
forall a b. h (a -> b) -> h a -> h b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (forall x. f x -> h (g x))
-> Alt f (a1 -> a) -> h (Alt g (a1 -> a))
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Alt f a -> h (Alt g a)
htraverse f x -> h (g x)
forall x. f x -> h (g x)
f Alt f (a1 -> a)
xs
      Alt.Pure a
x  -> AltF g a -> h (AltF g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (a -> AltF g a
forall a (f :: * -> *). a -> AltF f a
Alt.Pure a
x)
instance HTraversable Step where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> Step f a -> h (Step g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Step Natural
n f a
x) = Natural -> g a -> Step g a
forall {k} (f :: k -> *) (a :: k). Natural -> f a -> Step f a
Step Natural
n (g a -> Step g a) -> h (g a) -> h (Step g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable1 Step where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x)) -> Step f a -> h (Step g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (Step Natural
n f a
x) = Natural -> g a -> Step g a
forall {k} (f :: k -> *) (a :: k). Natural -> f a -> Step f a
Step Natural
n (g a -> Step g a) -> h (g a) -> h (Step g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable Steps where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> Steps f a -> h (Steps g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Steps NEMap Natural (f a)
x) = NEMap Natural (g a) -> Steps g a
forall {k} (f :: k -> *) (a :: k). NEMap Natural (f a) -> Steps f a
Steps (NEMap Natural (g a) -> Steps g a)
-> h (NEMap Natural (g a)) -> h (Steps g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> NEMap Natural (f a) -> h (NEMap Natural (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> NEMap Natural a -> f (NEMap Natural b)
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f NEMap Natural (f a)
x
instance HTraversable1 Steps where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x)) -> Steps f a -> h (Steps g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (Steps NEMap Natural (f a)
x) = NEMap Natural (g a) -> Steps g a
forall {k} (f :: k -> *) (a :: k). NEMap Natural (f a) -> Steps f a
Steps (NEMap Natural (g a) -> Steps g a)
-> h (NEMap Natural (g a)) -> h (Steps g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> NEMap Natural (f a) -> h (NEMap Natural (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable1 t, Apply f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Apply f =>
(a -> f b) -> NEMap Natural a -> f (NEMap Natural b)
traverse1 f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f NEMap Natural (f a)
x
instance HTraversable Flagged where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> Flagged f a -> h (Flagged g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Flagged Bool
b f a
x) = Bool -> g a -> Flagged g a
forall {k} (f :: k -> *) (a :: k). Bool -> f a -> Flagged f a
Flagged Bool
b (g a -> Flagged g a) -> h (g a) -> h (Flagged g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable1 Flagged where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> Flagged f a -> h (Flagged g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (Flagged Bool
b f a
x) = Bool -> g a -> Flagged g a
forall {k} (f :: k -> *) (a :: k). Bool -> f a -> Flagged f a
Flagged Bool
b (g a -> Flagged g a) -> h (g a) -> h (Flagged g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable MaybeT where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> MaybeT f a -> h (MaybeT g a)
htraverse forall x. f x -> h (g x)
f (MaybeT f (Maybe a)
x) = g (Maybe a) -> MaybeT g a
forall (m :: * -> *) a. m (Maybe a) -> MaybeT m a
MaybeT (g (Maybe a) -> MaybeT g a) -> h (g (Maybe a)) -> h (MaybeT g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f (Maybe a) -> h (g (Maybe a))
forall x. f x -> h (g x)
f f (Maybe a)
x
instance HTraversable1 MaybeT where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> MaybeT f a -> h (MaybeT g a)
htraverse1 forall x. f x -> h (g x)
f (MaybeT f (Maybe a)
x) = g (Maybe a) -> MaybeT g a
forall (m :: * -> *) a. m (Maybe a) -> MaybeT m a
MaybeT (g (Maybe a) -> MaybeT g a) -> h (g (Maybe a)) -> h (MaybeT g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f (Maybe a) -> h (g (Maybe a))
forall x. f x -> h (g x)
f f (Maybe a)
x
instance HTraversable FAF.Ap where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Ap f a -> h (Ap g a)
htraverse = (forall x. f x -> h (g x)) -> Ap f a -> h (Ap g a)
forall {k} (h :: * -> *) (t :: (k -> *) -> k -> *) (g :: k -> *)
       (f :: k -> *) (a :: k).
(Functor h, Interpret t (Comp h (t g))) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
itraverse
instance HTraversable FA.Ap where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Ap f a -> h (Ap g a)
htraverse = (forall x. f x -> h (g x)) -> Ap f a -> h (Ap g a)
forall {k} (h :: * -> *) (t :: (k -> *) -> k -> *) (g :: k -> *)
       (f :: k -> *) (a :: k).
(Functor h, Interpret t (Comp h (t g))) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
itraverse
instance HTraversable IdentityT where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> IdentityT f a -> h (IdentityT g a)
htraverse forall (x :: k1). f x -> h (g x)
f (IdentityT f a
x) = g a -> IdentityT g a
forall {k} (f :: k -> *) (a :: k). f a -> IdentityT f a
IdentityT (g a -> IdentityT g a) -> h (g a) -> h (IdentityT g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable1 IdentityT where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> IdentityT f a -> h (IdentityT g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (IdentityT f a
x) = g a -> IdentityT g a
forall {k} (f :: k -> *) (a :: k). f a -> IdentityT f a
IdentityT (g a -> IdentityT g a) -> h (g a) -> h (IdentityT g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable Lift where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Lift f a -> h (Lift g a)
htraverse forall x. f x -> h (g x)
f = \case
      Lift.Pure  a
x -> Lift g a -> h (Lift g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (a -> Lift g a
forall (f :: * -> *) a. a -> Lift f a
Lift.Pure a
x)
      Lift.Other f a
y -> g a -> Lift g a
forall (f :: * -> *) a. f a -> Lift f a
Lift.Other (g a -> Lift g a) -> h (g a) -> h (Lift g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall x. f x -> h (g x)
f f a
y
instance HTraversable MaybeApply where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> MaybeApply f a -> h (MaybeApply g a)
htraverse forall x. f x -> h (g x)
f (MaybeApply Either (f a) a
x) = Either (g a) a -> MaybeApply g a
forall (f :: * -> *) a. Either (f a) a -> MaybeApply f a
MaybeApply (Either (g a) a -> MaybeApply g a)
-> h (Either (g a) a) -> h (MaybeApply g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a))
-> (a -> h a) -> Either (f a) a -> h (Either (g a) a)
forall (f :: * -> *) a c b d.
Applicative f =>
(a -> f c) -> (b -> f d) -> Either a b -> f (Either c d)
forall (t :: * -> * -> *) (f :: * -> *) a c b d.
(Bitraversable t, Applicative f) =>
(a -> f c) -> (b -> f d) -> t a b -> f (t c d)
bitraverse f a -> h (g a)
forall x. f x -> h (g x)
f a -> h a
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Either (f a) a
x
instance HTraversable Backwards where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> Backwards f a -> h (Backwards g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Backwards f a
x) = g a -> Backwards g a
forall {k} (f :: k -> *) (a :: k). f a -> Backwards f a
Backwards (g a -> Backwards g a) -> h (g a) -> h (Backwards g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable WrappedApplicative where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x))
-> WrappedApplicative f a -> h (WrappedApplicative g a)
htraverse forall x. f x -> h (g x)
f (WrapApplicative f a
x) = g a -> WrappedApplicative g a
forall (f :: * -> *) a. f a -> WrappedApplicative f a
WrapApplicative (g a -> WrappedApplicative g a)
-> h (g a) -> h (WrappedApplicative g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall x. f x -> h (g x)
f f a
x
instance HTraversable Tagged where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) a.
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> Tagged f a -> h (Tagged g a)
htraverse forall (x :: k). f x -> h (g x)
_ = Tagged g a -> h (Tagged g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Tagged g a -> h (Tagged g a))
-> (Tagged f a -> Tagged g a) -> Tagged f a -> h (Tagged g a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tagged f a -> Tagged g a
forall a b. Coercible a b => a -> b
coerce
instance HTraversable Reverse where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> Reverse f a -> h (Reverse g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Reverse f a
x) = g a -> Reverse g a
forall {k} (f :: k -> *) (a :: k). f a -> Reverse f a
Reverse (g a -> Reverse g a) -> h (g a) -> h (Reverse g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable1 Reverse where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> Reverse f a -> h (Reverse g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (Reverse f a
x) = g a -> Reverse g a
forall {k} (f :: k -> *) (a :: k). f a -> Reverse f a
Reverse (g a -> Reverse g a) -> h (g a) -> h (Reverse g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance (HTraversable s, HTraversable t) => HTraversable (ComposeT s t) where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x))
-> ComposeT s t f a -> h (ComposeT s t g a)
htraverse forall x. f x -> h (g x)
f (ComposeT s (t f) a
x) = s (t g) a -> ComposeT s t g a
forall (f :: (* -> *) -> * -> *) (g :: (* -> *) -> * -> *)
       (m :: * -> *) a.
f (g m) a -> ComposeT f g m a
ComposeT (s (t g) a -> ComposeT s t g a)
-> h (s (t g) a) -> h (ComposeT s t g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall x. t f x -> h (t g x)) -> s (t f) a -> h (s (t g) a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> s f a -> h (s g a)
htraverse ((forall x. f x -> h (g x)) -> t f x -> h (t g x)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> t f a -> h (t g a)
htraverse f x -> h (g x)
forall x. f x -> h (g x)
f) s (t f) a
x
instance Traversable f => HTraversable ((:.:) f) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> (:.:) f f a -> h ((:.:) f g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Comp1 f (f a)
x) = f (g a) -> (:.:) f g a
forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1).
f (g p) -> (:.:) f g p
Comp1 (f (g a) -> (:.:) f g a) -> h (f (g a)) -> h ((:.:) f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> f (f a) -> h (f (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f (f a)
x
instance Traversable1 f => HTraversable1 ((:.:) f) where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> (:.:) f f a -> h ((:.:) f g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (Comp1 f (f a)
x) = f (g a) -> (:.:) f g a
forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1).
f (g p) -> (:.:) f g p
Comp1 (f (g a) -> (:.:) f g a) -> h (f (g a)) -> h ((:.:) f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (f a -> h (g a)) -> f (f a) -> h (f (g a))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable1 t, Apply f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b. Apply f => (a -> f b) -> f a -> f (f b)
traverse1 f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f (f a)
x
instance HTraversable (M1 i c) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> M1 i c f a -> h (M1 i c g a)
htraverse forall (x :: k1). f x -> h (g x)
f (M1 f a
x) = g a -> M1 i c g a
forall k i (c :: Meta) (f :: k -> *) (p :: k). f p -> M1 i c f p
M1 (g a -> M1 i c g a) -> h (g a) -> h (M1 i c g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable1 (M1 i c) where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x)) -> M1 i c f a -> h (M1 i c g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (M1 f a
x) = g a -> M1 i c g a
forall k i (c :: Meta) (f :: k -> *) (p :: k). f p -> M1 i c f p
M1 (g a -> M1 i c g a) -> h (g a) -> h (M1 i c g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
instance HTraversable Void2 where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> Void2 f a -> h (Void2 g a)
htraverse forall (x :: k). f x -> h (g x)
_ = \case {}
instance HTraversable1 Void2 where
    htraverse1 :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Apply h =>
(forall (x :: k). f x -> h (g x)) -> Void2 f a -> h (Void2 g a)
htraverse1 forall (x :: k). f x -> h (g x)
_ = \case {}
instance HTraversable (EnvT e) where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> EnvT e f a -> h (EnvT e g a)
htraverse forall x. f x -> h (g x)
f (EnvT e
e f a
x) = e -> g a -> EnvT e g a
forall e (w :: * -> *) a. e -> w a -> EnvT e w a
EnvT e
e (g a -> EnvT e g a) -> h (g a) -> h (EnvT e g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall x. f x -> h (g x)
f f a
x
instance HTraversable1 (EnvT e) where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> EnvT e f a -> h (EnvT e g a)
htraverse1 forall x. f x -> h (g x)
f (EnvT e
e f a
x) = e -> g a -> EnvT e g a
forall e (w :: * -> *) a. e -> w a -> EnvT e w a
EnvT e
e (g a -> EnvT e g a) -> h (g a) -> h (EnvT e g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall x. f x -> h (g x)
f f a
x
instance HTraversable Rec where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: [k]).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> Rec f a -> h (Rec g a)
htraverse = (forall (x :: k). f x -> h (g x)) -> Rec f a -> h (Rec g a)
forall k (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: [k]).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> Rec f a -> h (Rec g a)
rtraverse
instance HTraversable CoRec where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: [k]).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> CoRec f a -> h (CoRec g a)
htraverse forall (x :: k). f x -> h (g x)
f (CoRec f a1
x) = g a1 -> CoRec g a
forall {k} (a1 :: k) (b :: [k]) (a :: k -> *).
RElem a1 b (RIndex a1 b) =>
a a1 -> CoRec a b
CoRec (g a1 -> CoRec g a) -> h (g a1) -> h (CoRec g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a1 -> h (g a1)
forall (x :: k). f x -> h (g x)
f f a1
x
instance HTraversable SOP.NP where
    htraverse :: forall f g h a. Applicative h => (forall x. f x -> h (g x)) -> SOP.NP f a -> h (SOP.NP g a)
    htraverse :: forall {k} (f :: k -> *) (g :: k -> *) (h :: * -> *) (a :: [k]).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> NP f a -> h (NP g a)
htraverse forall (x :: k). f x -> h (g x)
f = NP f a -> h (NP g a)
forall (b :: [k]). NP f b -> h (NP g b)
go
      where
        go :: SOP.NP f b -> h (SOP.NP g b)
        go :: forall (b :: [k]). NP f b -> h (NP g b)
go = \case
          NP f b
SOP.Nil     -> NP g b -> h (NP g b)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure NP g b
NP g '[]
forall {k} (a :: k -> *). NP a '[]
SOP.Nil
          f x
x SOP.:* NP f xs
xs -> g x -> NP g xs -> NP g b
g x -> NP g xs -> NP g (x : xs)
forall {k} (a :: k -> *) (x :: k) (xs :: [k]).
a x -> NP a xs -> NP a (x : xs)
(SOP.:*) (g x -> NP g xs -> NP g b) -> h (g x) -> h (NP g xs -> NP g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f x -> h (g x)
forall (x :: k). f x -> h (g x)
f f x
x h (NP g xs -> NP g b) -> h (NP g xs) -> h (NP g b)
forall a b. h (a -> b) -> h a -> h b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> NP f xs -> h (NP g xs)
forall (b :: [k]). NP f b -> h (NP g b)
go NP f xs
xs
instance HTraversable SOP.NS where
    htraverse :: forall f g h a. Applicative h => (forall x. f x -> h (g x)) -> SOP.NS f a -> h (SOP.NS g a)
    htraverse :: forall {k} (f :: k -> *) (g :: k -> *) (h :: * -> *) (a :: [k]).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> NS f a -> h (NS g a)
htraverse forall (x :: k). f x -> h (g x)
f = NS f a -> h (NS g a)
forall (b :: [k]). NS f b -> h (NS g b)
go
      where
        go :: SOP.NS f b -> h (SOP.NS g b)
        go :: forall (b :: [k]). NS f b -> h (NS g b)
go = \case
          SOP.Z f x
x  -> g x -> NS g b
g x -> NS g (x : xs)
forall {k} (a :: k -> *) (x :: k) (xs :: [k]). a x -> NS a (x : xs)
SOP.Z (g x -> NS g b) -> h (g x) -> h (NS g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f x -> h (g x)
forall (x :: k). f x -> h (g x)
f f x
x
          SOP.S NS f xs
xs -> NS g xs -> NS g b
NS g xs -> NS g (x : xs)
forall {k} (a :: k -> *) (xs :: [k]) (x :: k).
NS a xs -> NS a (x : xs)
SOP.S (NS g xs -> NS g b) -> h (NS g xs) -> h (NS g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> NS f xs -> h (NS g xs)
forall (b :: [k]). NS f b -> h (NS g b)
go NS f xs
xs
instance HTraversable1 SOP.NS where
    htraverse1
        :: forall f g h a. Apply h
        => (forall x. f x -> h (g x))
        -> SOP.NS f a
        -> h (SOP.NS g a)
    htraverse1 :: forall {k} (f :: k -> *) (g :: k -> *) (h :: * -> *) (a :: [k]).
Apply h =>
(forall (x :: k). f x -> h (g x)) -> NS f a -> h (NS g a)
htraverse1 forall (x :: k). f x -> h (g x)
f = NS f a -> h (NS g a)
forall (b :: [k]). NS f b -> h (NS g b)
go
      where
        go :: SOP.NS f b -> h (SOP.NS g b)
        go :: forall (b :: [k]). NS f b -> h (NS g b)
go = \case
          SOP.Z f x
x  -> g x -> NS g b
g x -> NS g (x : xs)
forall {k} (a :: k -> *) (x :: k) (xs :: [k]). a x -> NS a (x : xs)
SOP.Z (g x -> NS g b) -> h (g x) -> h (NS g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f x -> h (g x)
forall (x :: k). f x -> h (g x)
f f x
x
          SOP.S NS f xs
xs -> NS g xs -> NS g b
NS g xs -> NS g (x : xs)
forall {k} (a :: k -> *) (xs :: [k]) (x :: k).
NS a xs -> NS a (x : xs)
SOP.S (NS g xs -> NS g b) -> h (NS g xs) -> h (NS g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> NS f xs -> h (NS g xs)
forall (b :: [k]). NS f b -> h (NS g b)
go NS f xs
xs
instance HTraversable (Day f) where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Day f f a -> h (Day f g a)
htraverse forall x. f x -> h (g x)
f (Day f b
x f c
y b -> c -> a
g) = (\g c
y' -> f b -> g c -> (b -> c -> a) -> Day f g a
forall (f :: * -> *) (g :: * -> *) a b c.
f b -> g c -> (b -> c -> a) -> Day f g a
Day f b
x g c
y' b -> c -> a
g) (g c -> Day f g a) -> h (g c) -> h (Day f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f c -> h (g c)
forall x. f x -> h (g x)
f f c
y
instance HTraversable1 (Day f) where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> Day f f a -> h (Day f g a)
htraverse1 forall x. f x -> h (g x)
f (Day f b
x f c
y b -> c -> a
g) = (\g c
y' -> f b -> g c -> (b -> c -> a) -> Day f g a
forall (f :: * -> *) (g :: * -> *) a b c.
f b -> g c -> (b -> c -> a) -> Day f g a
Day f b
x g c
y' b -> c -> a
g) (g c -> Day f g a) -> h (g c) -> h (Day f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f c -> h (g c)
forall x. f x -> h (g x)
f f c
y
instance HTraversable (ID.Day f) where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Day f f a -> h (Day f g a)
htraverse forall x. f x -> h (g x)
f (ID.Day f b
x f c
y b -> c -> a
g a -> (b, c)
h) = (\g c
y' -> f b -> g c -> (b -> c -> a) -> (a -> (b, c)) -> Day f g a
forall (f :: * -> *) (g :: * -> *) a b c.
f b -> g c -> (b -> c -> a) -> (a -> (b, c)) -> Day f g a
ID.Day f b
x g c
y' b -> c -> a
g a -> (b, c)
h) (g c -> Day f g a) -> h (g c) -> h (Day f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f c -> h (g c)
forall x. f x -> h (g x)
f f c
y
instance HTraversable1 (ID.Day f) where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> Day f f a -> h (Day f g a)
htraverse1 forall x. f x -> h (g x)
f (ID.Day f b
x f c
y b -> c -> a
g a -> (b, c)
h) = (\g c
y' -> f b -> g c -> (b -> c -> a) -> (a -> (b, c)) -> Day f g a
forall (f :: * -> *) (g :: * -> *) a b c.
f b -> g c -> (b -> c -> a) -> (a -> (b, c)) -> Day f g a
ID.Day f b
x g c
y' b -> c -> a
g a -> (b, c)
h) (g c -> Day f g a) -> h (g c) -> h (Day f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f c -> h (g c)
forall x. f x -> h (g x)
f f c
y
instance HTraversable (IN.Night f) where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> Night f f a -> h (Night f g a)
htraverse forall x. f x -> h (g x)
f (IN.Night f b1
x f c1
y b1 -> a
g c1 -> a
h a -> Either b1 c1
j) = (\g c1
y' -> f b1
-> g c1
-> (b1 -> a)
-> (c1 -> a)
-> (a -> Either b1 c1)
-> Night f g a
forall (a :: * -> *) b1 (b :: * -> *) c1 c.
a b1
-> b c1
-> (b1 -> c)
-> (c1 -> c)
-> (c -> Either b1 c1)
-> Night a b c
IN.Night f b1
x g c1
y' b1 -> a
g c1 -> a
h a -> Either b1 c1
j) (g c1 -> Night f g a) -> h (g c1) -> h (Night f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f c1 -> h (g c1)
forall x. f x -> h (g x)
f f c1
y
instance HTraversable1 (IN.Night f) where
    htraverse1 :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Apply h =>
(forall x. f x -> h (g x)) -> Night f f a -> h (Night f g a)
htraverse1 forall x. f x -> h (g x)
f (IN.Night f b1
x f c1
y b1 -> a
g c1 -> a
h a -> Either b1 c1
j) = (\g c1
y' -> f b1
-> g c1
-> (b1 -> a)
-> (c1 -> a)
-> (a -> Either b1 c1)
-> Night f g a
forall (a :: * -> *) b1 (b :: * -> *) c1 c.
a b1
-> b c1
-> (b1 -> c)
-> (c1 -> c)
-> (c -> Either b1 c1)
-> Night a b c
IN.Night f b1
x g c1
y' b1 -> a
g c1 -> a
h a -> Either b1 c1
j) (g c1 -> Night f g a) -> h (g c1) -> h (Night f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f c1 -> h (g c1)
forall x. f x -> h (g x)
f f c1
y
instance HTraversable ((:*:) f) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> (:*:) f f a -> h ((:*:) f g a)
htraverse forall (x :: k1). f x -> h (g x)
f (f a
x :*: f a
y) = (f a
x f a -> g a -> (:*:) f g a
forall k (f :: k -> *) (g :: k -> *) (p :: k).
f p -> g p -> (:*:) f g p
:*:) (g a -> (:*:) f g a) -> h (g a) -> h ((:*:) f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
y
instance HTraversable1 ((:*:) f) where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> (:*:) f f a -> h ((:*:) f g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (f a
x :*: f a
y) = (f a
x f a -> g a -> (:*:) f g a
forall k (f :: k -> *) (g :: k -> *) (p :: k).
f p -> g p -> (:*:) f g p
:*:) (g a -> (:*:) f g a) -> h (g a) -> h ((:*:) f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
y
instance HTraversable ((:+:) f) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> (:+:) f f a -> h ((:+:) f g a)
htraverse forall (x :: k1). f x -> h (g x)
f = \case
      L1 f a
x -> (:+:) f g a -> h ((:+:) f g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (f a -> (:+:) f g a
forall k (f :: k -> *) (g :: k -> *) (p :: k). f p -> (:+:) f g p
L1 f a
x)
      R1 f a
y -> g a -> (:+:) f g a
forall k (f :: k -> *) (g :: k -> *) (p :: k). g p -> (:+:) f g p
R1 (g a -> (:+:) f g a) -> h (g a) -> h ((:+:) f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
y
instance HTraversable (Product f) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> Product f f a -> h (Product f g a)
htraverse forall (x :: k1). f x -> h (g x)
f (Pair f a
x f a
y) = f a -> g a -> Product f g a
forall {k} (f :: k -> *) (g :: k -> *) (a :: k).
f a -> g a -> Product f g a
Pair f a
x (g a -> Product f g a) -> h (g a) -> h (Product f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
y
instance HTraversable1 (Product f) where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> Product f f a -> h (Product f g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f (Pair f a
x f a
y) = f a -> g a -> Product f g a
forall {k} (f :: k -> *) (g :: k -> *) (a :: k).
f a -> g a -> Product f g a
Pair f a
x (g a -> Product f g a) -> h (g a) -> h (Product f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
y
instance HTraversable (Sum f) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> Sum f f a -> h (Sum f g a)
htraverse forall (x :: k1). f x -> h (g x)
f = \case
      InL f a
x -> Sum f g a -> h (Sum f g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (f a -> Sum f g a
forall {k} (f :: k -> *) (g :: k -> *) (a :: k). f a -> Sum f g a
InL f a
x)
      InR f a
y -> g a -> Sum f g a
forall {k} (f :: k -> *) (g :: k -> *) (a :: k). g a -> Sum f g a
InR (g a -> Sum f g a) -> h (g a) -> h (Sum f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
y
instance HTraversable (Joker f) where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> Joker f f a -> h (Joker f g a)
htraverse forall (x :: k). f x -> h (g x)
_ = Joker f g a -> h (Joker f g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Joker f g a -> h (Joker f g a))
-> (Joker f f a -> Joker f g a) -> Joker f f a -> h (Joker f g a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Joker f f a -> Joker f g a
forall a b. Coercible a b => a -> b
coerce
instance HTraversable (These1 f) where
    htraverse :: forall (h :: * -> *) (f :: * -> *) (g :: * -> *) a.
Applicative h =>
(forall x. f x -> h (g x)) -> These1 f f a -> h (These1 f g a)
htraverse forall x. f x -> h (g x)
f = \case
      This1  f a
x   -> These1 f g a -> h (These1 f g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (These1 f g a -> h (These1 f g a))
-> These1 f g a -> h (These1 f g a)
forall a b. (a -> b) -> a -> b
$ f a -> These1 f g a
forall (f :: * -> *) (g :: * -> *) a. f a -> These1 f g a
This1 f a
x
      That1    f a
y -> g a -> These1 f g a
forall (f :: * -> *) (g :: * -> *) a. g a -> These1 f g a
That1 (g a -> These1 f g a) -> h (g a) -> h (These1 f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall x. f x -> h (g x)
f f a
y
      These1 f a
x f a
y -> f a -> g a -> These1 f g a
forall (f :: * -> *) (g :: * -> *) a. f a -> g a -> These1 f g a
These1 f a
x (g a -> These1 f g a) -> h (g a) -> h (These1 f g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall x. f x -> h (g x)
f f a
y
instance HTraversable (Void3 f) where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> Void3 f f a -> h (Void3 f g a)
htraverse forall (x :: k). f x -> h (g x)
_ = \case {}
instance HTraversable ProxyF where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x)) -> ProxyF f a -> h (ProxyF g a)
htraverse forall (x :: k). f x -> h (g x)
_ = ProxyF g a -> h (ProxyF g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ProxyF g a -> h (ProxyF g a))
-> (ProxyF f a -> ProxyF g a) -> ProxyF f a -> h (ProxyF g a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ProxyF f a -> ProxyF g a
forall a b. Coercible a b => a -> b
coerce
instance HTraversable (ConstF e) where
    htraverse :: forall (h :: * -> *) (f :: k -> *) (g :: k -> *) (a :: k1).
Applicative h =>
(forall (x :: k). f x -> h (g x))
-> ConstF e f a -> h (ConstF e g a)
htraverse forall (x :: k). f x -> h (g x)
_ = ConstF e g a -> h (ConstF e g a)
forall a. a -> h a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ConstF e g a -> h (ConstF e g a))
-> (ConstF e f a -> ConstF e g a)
-> ConstF e f a
-> h (ConstF e g a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConstF e f a -> ConstF e g a
forall a b. Coercible a b => a -> b
coerce
instance HTraversable t => HTraversable (HLift t) where
    htraverse :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> HLift t f a -> h (HLift t g a)
htraverse forall (x :: k1). f x -> h (g x)
f = \case
      HPure  f a
x -> g a -> HLift t g a
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
f a -> HLift t f a
HPure  (g a -> HLift t g a) -> h (g a) -> h (HLift t g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
      HOther t f a
x -> t g a -> HLift t g a
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
t f a -> HLift t f a
HOther (t g a -> HLift t g a) -> h (t g a) -> h (HLift t g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall (x :: k1). f x -> h (g x)) -> t f a -> h (t g a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> t f a -> h (t g a)
htraverse f x -> h (g x)
forall (x :: k1). f x -> h (g x)
f t f a
x
instance HTraversable1 t => HTraversable1 (HLift t) where
    htraverse1 :: forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> HLift t f a -> h (HLift t g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f = \case
      HPure  f a
x -> g a -> HLift t g a
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
f a -> HLift t f a
HPure  (g a -> HLift t g a) -> h (g a) -> h (HLift t g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f a -> h (g a)
forall (x :: k1). f x -> h (g x)
f f a
x
      HOther t f a
x -> t g a -> HLift t g a
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
t f a -> HLift t f a
HOther (t g a -> HLift t g a) -> h (t g a) -> h (HLift t g a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall (x :: k1). f x -> h (g x)) -> t f a -> h (t g a)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 f x -> h (g x)
forall (x :: k1). f x -> h (g x)
f t f a
x
instance HTraversable t => HTraversable (HFree t) where
    htraverse :: forall f g h a. Applicative h => (forall x. f x -> h (g x)) -> HFree t f a -> h (HFree t g a)
    htraverse :: forall (f :: k1 -> *) (g :: k1 -> *) (h :: * -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x))
-> HFree t f a -> h (HFree t g a)
htraverse forall (x :: k1). f x -> h (g x)
f = HFree t f a -> h (HFree t g a)
forall (b :: k1). HFree t f b -> h (HFree t g b)
go
      where
        go :: HFree t f b -> h (HFree t g b)
        go :: forall (b :: k1). HFree t f b -> h (HFree t g b)
go = \case
          HReturn f b
x -> g b -> HFree t g b
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
f a -> HFree t f a
HReturn (g b -> HFree t g b) -> h (g b) -> h (HFree t g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f b -> h (g b)
forall (x :: k1). f x -> h (g x)
f f b
x
          HJoin   t (HFree t f) b
x -> t (HFree t g) b -> HFree t g b
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
t (HFree t f) a -> HFree t f a
HJoin   (t (HFree t g) b -> HFree t g b)
-> h (t (HFree t g) b) -> h (HFree t g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall (b :: k1). HFree t f b -> h (HFree t g b))
-> t (HFree t f) b -> h (t (HFree t g) b)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Applicative h =>
(forall (x :: k1). f x -> h (g x)) -> t f a -> h (t g a)
htraverse HFree t f x -> h (HFree t g x)
forall (b :: k1). HFree t f b -> h (HFree t g b)
go t (HFree t f) b
x
instance HTraversable1 t => HTraversable1 (HFree t) where
    htraverse1 :: forall f g h a. Apply h => (forall x. f x -> h (g x)) -> HFree t f a -> h (HFree t g a)
    htraverse1 :: forall (f :: k1 -> *) (g :: k1 -> *) (h :: * -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x))
-> HFree t f a -> h (HFree t g a)
htraverse1 forall (x :: k1). f x -> h (g x)
f = HFree t f a -> h (HFree t g a)
forall (b :: k1). HFree t f b -> h (HFree t g b)
go
      where
        go :: HFree t f b -> h (HFree t g b)
        go :: forall (b :: k1). HFree t f b -> h (HFree t g b)
go = \case
          HReturn f b
x -> g b -> HFree t g b
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
f a -> HFree t f a
HReturn (g b -> HFree t g b) -> h (g b) -> h (HFree t g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f b -> h (g b)
forall (x :: k1). f x -> h (g x)
f f b
x
          HJoin   t (HFree t f) b
x -> t (HFree t g) b -> HFree t g b
forall {k} (t :: (k -> *) -> k -> *) (f :: k -> *) (a :: k).
t (HFree t f) a -> HFree t f a
HJoin   (t (HFree t g) b -> HFree t g b)
-> h (t (HFree t g) b) -> h (HFree t g b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall (b :: k1). HFree t f b -> h (HFree t g b))
-> t (HFree t f) b -> h (t (HFree t g) b)
forall {k} {k1} (t :: (k -> *) -> k1 -> *) (h :: * -> *)
       (f :: k -> *) (g :: k -> *) (a :: k1).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall (h :: * -> *) (f :: k1 -> *) (g :: k1 -> *) (a :: k1).
Apply h =>
(forall (x :: k1). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 HFree t f x -> h (HFree t g x)
forall (b :: k1). HFree t f b -> h (HFree t g b)
go t (HFree t f) b
x