module Data.HFunctor.HTraversable (
HTraversable(..)
, hsequence, hfoldMap, htoList, hmapDefault
, HTraversable1(..)
, hsequence1, hfoldMap1, htoNonEmpty
) 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 f :: 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 f :: 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)
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 f :: 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 f :: 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)
hmapDefault :: HTraversable t => (f ~> g) -> t f ~> t g
hmapDefault :: (f ~> g) -> t f ~> t g
hmapDefault f :: 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 f :: forall x. f x -> h (g x)
f (Coyoneda g :: b -> a
g x :: 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 f :: forall x. f x -> h (g x)
f (Coyoneda g :: b -> a
g x :: 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 f :: forall x. f x -> h (g x)
f (CCY.Coyoneda g :: a -> b
g x :: 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 f :: forall x. f x -> h (g x)
f (CCY.Coyoneda g :: a -> b
g x :: 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 f :: 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 x :: 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 x :: f a1
x xs :: 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 f :: forall (x :: k). f x -> h (g x)
f (ListF xs :: [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 f :: forall (x :: k). f x -> h (g x)
f (NonEmptyF xs :: 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 f :: forall (x :: k). f x -> h (g x)
f (NonEmptyF xs :: 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 f :: forall (x :: k). f x -> h (g x)
f (MaybeF xs :: 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 f :: forall (x :: k). f x -> h (g x)
f (MapF xs :: 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 f :: forall (x :: k). f x -> h (g x)
f (NEMapF xs :: 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 f :: forall (x :: k). f x -> h (g x)
f (NEMapF xs :: 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 f :: forall x. f x -> h (g x)
f (Alt.Alt xs :: [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 f :: forall x. f x -> h (g x)
f = \case
Alt.Ap x :: f a1
x xs :: 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 x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Step n :: Natural
n x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Step n :: Natural
n x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Steps x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Steps x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Flagged b :: Bool
b x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Flagged b :: Bool
b x :: 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 f :: forall x. f x -> h (g x)
f (MaybeT x :: 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 f :: forall x. f x -> h (g x)
f (MaybeT x :: 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 f :: forall (x :: k). f x -> h (g x)
f (IdentityT x :: 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 f :: forall (x :: k). f x -> h (g x)
f (IdentityT x :: 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 f :: forall x. f x -> h (g x)
f = \case
Lift.Pure x :: 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 y :: 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 f :: forall x. f x -> h (g x)
f (MaybeApply x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Backwards x :: 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 f :: forall x. f x -> h (g x)
f (WrapApplicative x :: 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 _ = 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
forall a b. Coercible a b => a -> b
coerce
instance HTraversable Reverse where
htraverse :: (forall (x :: k). f x -> h (g x)) -> Reverse f a -> h (Reverse g a)
htraverse f :: forall (x :: k). f x -> h (g x)
f (Reverse x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Reverse x :: 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 f :: forall x. f x -> h (g x)
f (ComposeT x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Comp1 x :: 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 f :: forall (x :: k). f x -> h (g x)
f (Comp1 x :: 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 f :: forall (x :: k). f x -> h (g x)
f (M1 x :: 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 f :: forall (x :: k). f x -> h (g x)
f (M1 x :: 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 _ = \case {}
instance HTraversable1 Void2 where
htraverse1 :: (forall (x :: k). f x -> h (g x)) -> Void2 f a -> h (Void2 g a)
htraverse1 _ = \case {}
instance HTraversable (EnvT e) where
htraverse :: (forall x. f x -> h (g x)) -> EnvT e f a -> h (EnvT e g a)
htraverse f :: forall x. f x -> h (g x)
f (EnvT e :: e
e x :: 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 f :: forall x. f x -> h (g x)
f (EnvT e :: e
e x :: 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 f :: forall (x :: k). f x -> h (g x)
f (CoRec x :: 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 f :: 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
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
x :: f x
x SOP.:* xs :: 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 f :: 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 x :: 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 xs :: 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 f :: 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 x :: 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 xs :: 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 f :: forall x. f x -> h (g x)
f (Day x :: f b
x y :: f c
y g :: b -> c -> a
g) = (\y' :: 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 f :: forall x. f x -> h (g x)
f (Day x :: f b
x y :: f c
y g :: b -> c -> a
g) = (\y' :: 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 f :: forall x. f x -> h (g x)
f (ID.Day x :: f b
x y :: f c
y g :: b -> c -> a
g h :: a -> (b, c)
h) = (\y' :: 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 f :: forall x. f x -> h (g x)
f (ID.Day x :: f b
x y :: f c
y g :: b -> c -> a
g h :: a -> (b, c)
h) = (\y' :: 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 f :: forall x. f x -> h (g x)
f (IN.Night x :: f b
x y :: f c
y g :: a -> Either b c
g h :: b -> a
h j :: c -> a
j) = (\y' :: g c
y' -> f b
-> g c -> (a -> Either b c) -> (b -> a) -> (c -> a) -> Night f g a
forall (f :: * -> *) b (g :: * -> *) c a.
f b
-> g c -> (a -> Either b c) -> (b -> a) -> (c -> a) -> Night f g a
IN.Night f b
x g c
y' a -> Either b c
g b -> a
h c -> a
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 f :: forall x. f x -> h (g x)
f (IN.Night x :: f b
x y :: f c
y g :: a -> Either b c
g h :: b -> a
h j :: c -> a
j) = (\y' :: g c
y' -> f b
-> g c -> (a -> Either b c) -> (b -> a) -> (c -> a) -> Night f g a
forall (f :: * -> *) b (g :: * -> *) c a.
f b
-> g c -> (a -> Either b c) -> (b -> a) -> (c -> a) -> Night f g a
IN.Night f b
x g c
y' a -> Either b c
g b -> a
h c -> a
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 f :: forall (x :: k). f x -> h (g x)
f (x :: f a
x :*: y :: 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 f :: forall (x :: k). f x -> h (g x)
f (x :: f a
x :*: y :: 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 f :: forall (x :: k). f x -> h (g x)
f = \case
L1 x :: 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 y :: 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 f :: forall (x :: k). f x -> h (g x)
f (Pair x :: f a
x y :: 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 f :: forall (x :: k). f x -> h (g x)
f (Pair x :: f a
x y :: 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 f :: forall (x :: k). f x -> h (g x)
f = \case
InL x :: 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 y :: 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 _ = 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
forall a b. Coercible a b => a -> b
coerce
instance HTraversable (These1 f) where
htraverse :: (forall x. f x -> h (g x)) -> These1 f f a -> h (These1 f g a)
htraverse f :: forall x. f x -> h (g x)
f = \case
This1 x :: 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 y :: 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 x :: f a
x y :: 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 _ = \case {}
instance HTraversable ProxyF where
htraverse :: (forall (x :: k). f x -> h (g x)) -> ProxyF f a -> h (ProxyF g a)
htraverse _ = 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
forall a b. Coercible a b => a -> b
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 _ = 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
forall a b. Coercible a b => a -> b
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 f :: forall (x :: k). f x -> h (g x)
f = \case
HPure x :: 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 x :: 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 f :: forall (x :: k). f x -> h (g x)
f = \case
HPure x :: 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 x :: 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 f :: 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 x :: 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 x :: 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 f :: 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 x :: 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 x :: 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