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 :: 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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 forall (x :: k). (:.:) h f x -> h (f x)
forall k2 (f :: k2 -> *) k1 (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 (x :: k). f x -> m) -> t f a -> m
hfoldMap1 forall (x :: k). f x -> m
f = Const m (t Any a) -> m
forall a k (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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable1 t, 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 (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 k (t :: (k -> *) -> k -> *) m (f :: k -> *) (a :: k).
(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 :: 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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 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 :: 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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse forall (x :: k). (:.:) h f x -> h (f x)
forall k2 (f :: k2 -> *) k1 (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 (x :: k). f x -> m) -> t f a -> m
hfoldMap forall (x :: k). f x -> m
f = Const m (t Any a) -> m
forall a k (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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, 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 (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 k (t :: (k -> *) -> k -> *) m (f :: k -> *) (a :: k).
(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 :: 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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse forall (x :: k). f x -> h (g x)
f t f a
x
hmapDefault :: HTraversable t => (f ~> g) -> t f ~> t g
hmapDefault :: (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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, 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 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 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 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 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 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 :: Ap f b -> h (Ap g b)
go = \case
Ap.Pure b
x -> Ap g b -> h (Ap g b)
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 (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 (x :: k). f x -> h (g x)) -> ListF f a -> h (ListF g a)
htraverse forall (x :: k). 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f [f a]
xs
instance HTraversable NonEmptyF where
htraverse :: (forall (x :: k). f x -> h (g x))
-> NonEmptyF f a -> h (NonEmptyF g a)
htraverse forall (x :: k). 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f NonEmpty (f a)
xs
instance HTraversable1 NonEmptyF where
htraverse1 :: (forall (x :: k). f x -> h (g x))
-> NonEmptyF f a -> h (NonEmptyF g a)
htraverse1 forall (x :: k). 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)
traverse1 f a -> h (g a)
forall (x :: k). f x -> h (g x)
f NonEmpty (f a)
xs
instance HTraversable MaybeF where
htraverse :: (forall (x :: k). f x -> h (g x)) -> MaybeF f a -> h (MaybeF g a)
htraverse forall (x :: k). 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f Maybe (f a)
xs
instance HTraversable (MapF k) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> MapF k f a -> h (MapF k g a)
htraverse forall (x :: k). f x -> h (g x)
f (MapF Map k (f a)
xs) = Map k (g a) -> MapF k g a
forall k k (f :: k -> *) (a :: k). Map k (f a) -> MapF k 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f Map k (f a)
xs
instance HTraversable (NEMapF k) where
htraverse :: (forall (x :: k). f x -> h (g x))
-> NEMapF k f a -> h (NEMapF k g a)
htraverse forall (x :: k). f x -> h (g x)
f (NEMapF NEMap k (f a)
xs) = NEMap k (g a) -> NEMapF k g a
forall k k (f :: k -> *) (a :: k). NEMap k (f a) -> NEMapF k 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f NEMap k (f a)
xs
instance HTraversable1 (NEMapF k) where
htraverse1 :: (forall (x :: k). f x -> h (g x))
-> NEMapF k f a -> h (NEMapF k g a)
htraverse1 forall (x :: k). f x -> h (g x)
f (NEMapF NEMap k (f a)
xs) = NEMap k (g a) -> NEMapF k g a
forall k k (f :: k -> *) (a :: k). NEMap k (f a) -> NEMapF k 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)
traverse1 f a -> h (g a)
forall (x :: k). f x -> h (g x)
f NEMap k (f a)
xs
instance HTraversable Alt.Alt where
htraverse :: (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)
traverse ((forall x. f x -> h (g x)) -> AltF f a -> h (AltF g a)
forall k k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse forall x. f x -> h (g x)
f) [AltF f a]
xs
instance HTraversable Alt.AltF where
htraverse :: (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 (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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse 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 (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 (x :: k). f x -> h (g x)) -> Step f a -> h (Step g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable1 Step where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> Step f a -> h (Step g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable Steps where
htraverse :: (forall (x :: k). f x -> h (g x)) -> Steps f a -> h (Steps g a)
htraverse forall (x :: k). 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f NEMap Natural (f a)
x
instance HTraversable1 Steps where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> Steps f a -> h (Steps g a)
htraverse1 forall (x :: k). 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)
traverse1 f a -> h (g a)
forall (x :: k). f x -> h (g x)
f NEMap Natural (f a)
x
instance HTraversable Flagged where
htraverse :: (forall (x :: k). f x -> h (g x)) -> Flagged f a -> h (Flagged g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable1 Flagged where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> Flagged f a -> h (Flagged g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable MaybeT where
htraverse :: (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 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 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 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 (x :: k). f x -> h (g x))
-> IdentityT f a -> h (IdentityT g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable1 IdentityT where
htraverse1 :: (forall (x :: k). f x -> h (g x))
-> IdentityT f a -> h (IdentityT g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable Lift where
htraverse :: (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 (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 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 (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 (f :: * -> *) a. Applicative f => a -> f a
pure Either (f a) a
x
instance HTraversable Backwards where
htraverse :: (forall (x :: k). f x -> h (g x))
-> Backwards f a -> h (Backwards g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable WrappedApplicative where
htraverse :: (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 (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 (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
coerce
instance HTraversable Reverse where
htraverse :: (forall (x :: k). f x -> h (g x)) -> Reverse f a -> h (Reverse g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable1 Reverse where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> Reverse f a -> h (Reverse g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance (HTraversable s, HTraversable t) => HTraversable (ComposeT s t) where
htraverse :: (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 k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse ((forall x. f x -> h (g x)) -> t f x -> h (t g x)
forall k k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse forall x. f x -> h (g x)
f) s (t f) a
x
instance Traversable f => HTraversable ((:.:) f) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> (:.:) f f a -> h ((:.:) f g a)
htraverse forall (x :: k). 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)
traverse f a -> h (g a)
forall (x :: k). f x -> h (g x)
f f (f a)
x
instance Traversable1 f => HTraversable1 ((:.:) f) where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> (:.:) f f a -> h ((:.:) f g a)
htraverse1 forall (x :: k). 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)
traverse1 f a -> h (g a)
forall (x :: k). f x -> h (g x)
f f (f a)
x
instance HTraversable (M1 i c) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> M1 i c f a -> h (M1 i c g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable1 (M1 i c) where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> M1 i c f a -> h (M1 i c g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
x
instance HTraversable Void2 where
htraverse :: (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 (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 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 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 (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 (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 (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 :: NP f b -> h (NP g b)
go = \case
NP f b
SOP.Nil -> NP g '[] -> h (NP g '[])
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 (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 (x : xs))
-> h (g x) -> h (NP g xs -> NP g (x : xs))
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 (x : xs)) -> h (NP g xs) -> h (NP g (x : xs))
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 (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 :: NS f b -> h (NS g b)
go = \case
SOP.Z f x
x -> 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 (x : xs)) -> h (g x) -> h (NS g (x : xs))
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 (x : xs)
forall k (a :: k -> *) (xs :: [k]) (x :: k).
NS a xs -> NS a (x : xs)
SOP.S (NS g xs -> NS g (x : xs)) -> h (NS g xs) -> h (NS g (x : xs))
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 (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 :: NS f b -> h (NS g b)
go = \case
SOP.Z f x
x -> 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 (x : xs)) -> h (g x) -> h (NS g (x : xs))
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 (x : xs)
forall k (a :: k -> *) (xs :: [k]) (x :: k).
NS a xs -> NS a (x : xs)
SOP.S (NS g xs -> NS g (x : xs)) -> h (NS g xs) -> h (NS g (x : xs))
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 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 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 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 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 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 b
x f c
y b -> a
g c -> a
h a -> Either b c
j) = (\g c
y' -> f b
-> g c -> (b -> a) -> (c -> a) -> (a -> Either b c) -> Night f g a
forall (f :: * -> *) b (g :: * -> *) c a.
f b
-> g c -> (b -> a) -> (c -> a) -> (a -> Either b c) -> Night f g a
IN.Night f b
x g c
y' b -> a
g c -> a
h a -> Either b c
j) (g c -> Night f g a) -> h (g c) -> h (Night 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 (IN.Night f) where
htraverse1 :: (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 b
x f c
y b -> a
g c -> a
h a -> Either b c
j) = (\g c
y' -> f b
-> g c -> (b -> a) -> (c -> a) -> (a -> Either b c) -> Night f g a
forall (f :: * -> *) b (g :: * -> *) c a.
f b
-> g c -> (b -> a) -> (c -> a) -> (a -> Either b c) -> Night f g a
IN.Night f b
x g c
y' b -> a
g c -> a
h a -> Either b c
j) (g c -> Night f g a) -> h (g c) -> h (Night 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 ((:*:) f) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> (:*:) f f a -> h ((:*:) f g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
y
instance HTraversable1 ((:*:) f) where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> (:*:) f f a -> h ((:*:) f g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
y
instance HTraversable ((:+:) f) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> (:+:) f f a -> h ((:+:) f g a)
htraverse forall (x :: k). f x -> h (g x)
f = \case
L1 f a
x -> (:+:) f g a -> h ((:+:) f g 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 :: k). f x -> h (g x)
f f a
y
instance HTraversable (Product f) where
htraverse :: (forall (x :: k). f x -> h (g x))
-> Product f f a -> h (Product f g a)
htraverse forall (x :: k). 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 :: k). f x -> h (g x)
f f a
y
instance HTraversable1 (Product f) where
htraverse1 :: (forall (x :: k). f x -> h (g x))
-> Product f f a -> h (Product f g a)
htraverse1 forall (x :: k). 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 :: k). f x -> h (g x)
f f a
y
instance HTraversable (Sum f) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> Sum f f a -> h (Sum f g a)
htraverse forall (x :: k). f x -> h (g x)
f = \case
InL f a
x -> Sum f g a -> h (Sum f g 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 :: k). f x -> h (g x)
f f a
y
instance HTraversable (Joker f) where
htraverse :: (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 (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
coerce
instance HTraversable (These1 f) where
htraverse :: (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 (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 (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 (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 (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
coerce
instance HTraversable (ConstF e) where
htraverse :: (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 (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
coerce
instance HTraversable t => HTraversable (HLift t) where
htraverse :: (forall (x :: k). f x -> h (g x)) -> HLift t f a -> h (HLift t g a)
htraverse forall (x :: k). 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 :: k). 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 :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall k k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse forall (x :: k). f x -> h (g x)
f t f a
x
instance HTraversable1 t => HTraversable1 (HLift t) where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> HLift t f a -> h (HLift t g a)
htraverse1 forall (x :: k). 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 :: k). 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 :: k). f x -> h (g x)) -> t f a -> h (t g a)
forall k k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 forall (x :: k). 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 (x :: k). f x -> h (g x)) -> HFree t f a -> h (HFree t g a)
htraverse forall (x :: k). f x -> h (g x)
f = HFree t f a -> h (HFree t g a)
forall (b :: k). HFree t f b -> h (HFree t g b)
go
where
go :: HFree t f b -> h (HFree t g b)
go :: 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 :: k). 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 :: k). HFree t f b -> h (HFree t g b))
-> t (HFree t f) b -> h (t (HFree t g) b)
forall k k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable t, Applicative h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse forall (b :: k). 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 (x :: k). f x -> h (g x)) -> HFree t f a -> h (HFree t g a)
htraverse1 forall (x :: k). f x -> h (g x)
f = HFree t f a -> h (HFree t g a)
forall (b :: k). HFree t f b -> h (HFree t g b)
go
where
go :: HFree t f b -> h (HFree t g b)
go :: 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 :: k). 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 :: k). HFree t f b -> h (HFree t g b))
-> t (HFree t f) b -> h (t (HFree t g) b)
forall k k (t :: (k -> *) -> k -> *) (h :: * -> *) (f :: k -> *)
(g :: k -> *) (a :: k).
(HTraversable1 t, Apply h) =>
(forall (x :: k). f x -> h (g x)) -> t f a -> h (t g a)
htraverse1 forall (b :: k). HFree t f b -> h (HFree t g b)
go t (HFree t f) b
x