{-# OPTIONS_GHC -fno-warn-orphans #-}

module Pandora.Paradigm.Primary (module Exports) where

import Pandora.Paradigm.Primary.Transformer as Exports
import Pandora.Paradigm.Primary.Functor as Exports
import Pandora.Paradigm.Primary.Object as Exports

import Pandora.Core.Functor (type (:=))
import Pandora.Pattern.Category (Category ((.), ($), identity))
import Pandora.Pattern.Functor.Covariant (Covariant ((<$>)))
import Pandora.Pattern.Functor.Contravariant (Contravariant ((>$<)))
import Pandora.Paradigm.Controlflow.Effect.Interpreted (run, (||=))
import Pandora.Paradigm.Schemes.TU (TU (TU), type (<:.>))
import Pandora.Paradigm.Schemes.T_U (type (<:.:>))
import Pandora.Paradigm.Structure.Ability.Morphable (Morphable (Morphing, morphing), Morph (Into), premorph)

instance Category (Flip (->)) where
	identity :: Flip (->) a a
identity = (a -> a) -> Flip (->) a a
forall (v :: * -> * -> *) a e. v e a -> Flip v a e
Flip a -> a
forall (m :: * -> * -> *) a. Category m => m a a
identity
	Flip c -> b
f . :: Flip (->) b c -> Flip (->) a b -> Flip (->) a c
. Flip b -> a
g = (c -> a) -> Flip (->) a c
forall (v :: * -> * -> *) a e. v e a -> Flip v a e
Flip ((c -> a) -> Flip (->) a c) -> (c -> a) -> Flip (->) a c
forall (m :: * -> * -> *). Category m => m ~~> m
$ \c
x -> b -> a
g (c -> b
f c
x)

instance Contravariant (Flip (->) r) where
	a -> b
f >$< :: (a -> b) -> Flip (->) r b -> Flip (->) r a
>$< Flip (->) r b
g = ((b -> r) -> (a -> b) -> a -> r
forall (t :: * -> *) a b. Covariant t => (a -> b) -> t a -> t b
<$> a -> b
f) (Primary (Flip (->) r) b -> Primary (Flip (->) r) a)
-> Flip (->) r b -> Flip (->) r a
forall (t :: * -> *) (u :: * -> *) a b.
(Interpreted t, Interpreted u) =>
(Primary t a -> Primary u b) -> t a -> u b
||= Flip (->) r b
g

instance Morphable (Into Maybe) (Conclusion e) where
	type Morphing (Into Maybe) (Conclusion e) = Maybe
	morphing :: (<:.>) (Tagged ('Into Maybe)) (Conclusion e) a
-> Morphing ('Into Maybe) (Conclusion e) a
morphing = (e -> Maybe a) -> (a -> Maybe a) -> Conclusion e a -> Maybe a
forall e r a. (e -> r) -> (a -> r) -> Conclusion e a -> r
conclusion (Maybe a
forall a. Maybe a
Nothing Maybe a -> e -> Maybe a
forall a b. a -> b -> a
!) a -> Maybe a
forall a. a -> Maybe a
Just (Conclusion e a -> Maybe a)
-> ((<:.>) (Tagged ('Into Maybe)) (Conclusion e) a
    -> Conclusion e a)
-> (<:.>) (Tagged ('Into Maybe)) (Conclusion e) a
-> Maybe a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into Maybe)) (Conclusion e) a -> Conclusion e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph

instance Morphable (Into (Conclusion e)) Maybe where
	type Morphing (Into (Conclusion e)) Maybe = (->) e <:.> Conclusion e
	morphing :: (<:.>) (Tagged ('Into (Conclusion e))) Maybe a
-> Morphing ('Into (Conclusion e)) Maybe a
morphing ((<:.>) (Tagged ('Into (Conclusion e))) Maybe a -> Maybe a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Just a
x) = (((->) e :. Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Conclusion e) a
forall k k k k (ct :: k) (cu :: k) (t :: k -> *) (u :: k -> k)
       (a :: k).
((t :. u) := a) -> TU ct cu t u a
TU ((((->) e :. Conclusion e) := a)
 -> TU Covariant Covariant ((->) e) (Conclusion e) a)
-> (((->) e :. Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Conclusion e) a
forall (m :: * -> * -> *). Category m => m ~~> m
$ \e
_ -> a -> Conclusion e a
forall e a. a -> Conclusion e a
Success a
x
	morphing ((<:.>) (Tagged ('Into (Conclusion e))) Maybe a -> Maybe a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Maybe a
Nothing) = (((->) e :. Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Conclusion e) a
forall k k k k (ct :: k) (cu :: k) (t :: k -> *) (u :: k -> k)
       (a :: k).
((t :. u) := a) -> TU ct cu t u a
TU ((((->) e :. Conclusion e) := a)
 -> TU Covariant Covariant ((->) e) (Conclusion e) a)
-> (((->) e :. Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Conclusion e) a
forall (m :: * -> * -> *). Category m => m ~~> m
$ \e
e -> ((->) e :. Conclusion e) := a
forall e a. e -> Conclusion e a
Failure e
e

instance Morphable (Into (Flip Conclusion e)) Maybe where
	type Morphing (Into (Flip Conclusion e)) Maybe = (->) e <:.> Flip Conclusion e
	morphing :: (<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a
-> Morphing ('Into (Flip Conclusion e)) Maybe a
morphing (Maybe a -> Maybe a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Maybe a -> Maybe a)
-> ((<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a -> Maybe a)
-> (<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a
-> Maybe a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a -> Maybe a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Just a
x) = (((->) e :. Flip Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Flip Conclusion e) a
forall k k k k (ct :: k) (cu :: k) (t :: k -> *) (u :: k -> k)
       (a :: k).
((t :. u) := a) -> TU ct cu t u a
TU ((((->) e :. Flip Conclusion e) := a)
 -> TU Covariant Covariant ((->) e) (Flip Conclusion e) a)
-> (((->) e :. Flip Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Flip Conclusion e) a
forall (m :: * -> * -> *). Category m => m ~~> m
$ \e
_ -> Conclusion a e -> Flip Conclusion e a
forall (v :: * -> * -> *) a e. v e a -> Flip v a e
Flip (Conclusion a e -> Flip Conclusion e a)
-> Conclusion a e -> Flip Conclusion e a
forall (m :: * -> * -> *). Category m => m ~~> m
$ a -> Conclusion a e
forall e a. e -> Conclusion e a
Failure a
x
	morphing (Maybe a -> Maybe a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Maybe a -> Maybe a)
-> ((<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a -> Maybe a)
-> (<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a
-> Maybe a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into (Flip Conclusion e))) Maybe a -> Maybe a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Maybe a
Nothing) = (((->) e :. Flip Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Flip Conclusion e) a
forall k k k k (ct :: k) (cu :: k) (t :: k -> *) (u :: k -> k)
       (a :: k).
((t :. u) := a) -> TU ct cu t u a
TU ((((->) e :. Flip Conclusion e) := a)
 -> TU Covariant Covariant ((->) e) (Flip Conclusion e) a)
-> (((->) e :. Flip Conclusion e) := a)
-> TU Covariant Covariant ((->) e) (Flip Conclusion e) a
forall (m :: * -> * -> *). Category m => m ~~> m
$ Conclusion a e -> Flip Conclusion e a
forall (v :: * -> * -> *) a e. v e a -> Flip v a e
Flip (Conclusion a e -> Flip Conclusion e a)
-> (e -> Conclusion a e) -> ((->) e :. Flip Conclusion e) := a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. e -> Conclusion a e
forall e a. a -> Conclusion e a
Success

instance Morphable (Into (Left Maybe)) Wye where
	type Morphing (Into (Left Maybe)) Wye = Maybe
	morphing :: (<:.>) (Tagged ('Into ('Left Maybe))) Wye a
-> Morphing ('Into ('Left Maybe)) Wye a
morphing ((<:.>) (Tagged ('Into ('Left Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Both a
ls a
_) = a -> Maybe a
forall a. a -> Maybe a
Just a
ls
	morphing ((<:.>) (Tagged ('Into ('Left Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Left a
ls) = a -> Maybe a
forall a. a -> Maybe a
Just a
ls
	morphing ((<:.>) (Tagged ('Into ('Left Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Right a
_) = Morphing ('Into ('Left Maybe)) Wye a
forall a. Maybe a
Nothing
	morphing ((<:.>) (Tagged ('Into ('Left Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Wye a
End) = Morphing ('Into ('Left Maybe)) Wye a
forall a. Maybe a
Nothing

instance Morphable (Into (Right Maybe)) Wye where
	type Morphing (Into (Right Maybe)) Wye = Maybe
	morphing :: (<:.>) (Tagged ('Into ('Right Maybe))) Wye a
-> Morphing ('Into ('Right Maybe)) Wye a
morphing ((<:.>) (Tagged ('Into ('Right Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Both a
_ a
rs) = a -> Maybe a
forall a. a -> Maybe a
Just a
rs
	morphing ((<:.>) (Tagged ('Into ('Right Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Left a
_) = Morphing ('Into ('Right Maybe)) Wye a
forall a. Maybe a
Nothing
	morphing ((<:.>) (Tagged ('Into ('Right Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Right a
rs) = a -> Maybe a
forall a. a -> Maybe a
Just a
rs
	morphing ((<:.>) (Tagged ('Into ('Right Maybe))) Wye a -> Wye a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Wye a
End) = Morphing ('Into ('Right Maybe)) Wye a
forall a. Maybe a
Nothing

instance Morphable (Into (This Maybe)) (These e) where
	type Morphing (Into (This Maybe)) (These e) = Maybe
	morphing :: (<:.>) (Tagged ('Into ('This Maybe))) (These e) a
-> Morphing ('Into ('This Maybe)) (These e) a
morphing ((<:.>) (Tagged ('Into ('This Maybe))) (These e) a -> These e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> This a
x) = a -> Maybe a
forall a. a -> Maybe a
Just a
x
	morphing ((<:.>) (Tagged ('Into ('This Maybe))) (These e) a -> These e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> That e
_) = Morphing ('Into ('This Maybe)) (These e) a
forall a. Maybe a
Nothing
	morphing ((<:.>) (Tagged ('Into ('This Maybe))) (These e) a -> These e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> These e
_ a
x) = a -> Maybe a
forall a. a -> Maybe a
Just a
x

instance Morphable (Into (That Maybe)) (Flip These a) where
	type Morphing (Into (That Maybe)) (Flip These a) = Maybe
	morphing :: (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> Morphing ('Into ('That Maybe)) (Flip These a) a
morphing (Flip These a a -> These a a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Flip These a a -> These a a)
-> ((<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
    -> Flip These a a)
-> (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> These a a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> Flip These a a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> This a
_) = Morphing ('Into ('That Maybe)) (Flip These a) a
forall a. Maybe a
Nothing
	morphing (Flip These a a -> These a a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Flip These a a -> These a a)
-> ((<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
    -> Flip These a a)
-> (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> These a a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> Flip These a a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> That a
x) = a -> Maybe a
forall a. a -> Maybe a
Just a
x
	morphing (Flip These a a -> These a a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Flip These a a -> These a a)
-> ((<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
    -> Flip These a a)
-> (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> These a a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into ('That Maybe))) (Flip These a) a
-> Flip These a a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> These a
y a
_) = a -> Maybe a
forall a. a -> Maybe a
Just a
y

instance Morphable (Into (Here Maybe)) (Flip Wedge a) where
	type Morphing (Into (Here Maybe)) (Flip Wedge a) = Maybe
	morphing :: (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Morphing ('Into ('Here Maybe)) (Flip Wedge a) a
morphing (Flip Wedge a a -> Wedge a a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Flip Wedge a a -> Wedge a a)
-> ((<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
    -> Flip Wedge a a)
-> (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Wedge a a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Flip Wedge a a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Wedge a a
Nowhere) = Morphing ('Into ('Here Maybe)) (Flip Wedge a) a
forall a. Maybe a
Nothing
	morphing (Flip Wedge a a -> Wedge a a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Flip Wedge a a -> Wedge a a)
-> ((<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
    -> Flip Wedge a a)
-> (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Wedge a a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Flip Wedge a a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Here a
x) = a -> Maybe a
forall a. a -> Maybe a
Just a
x
	morphing (Flip Wedge a a -> Wedge a a
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run (Flip Wedge a a -> Wedge a a)
-> ((<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
    -> Flip Wedge a a)
-> (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Wedge a a
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into ('Here Maybe))) (Flip Wedge a) a
-> Flip Wedge a a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> There a
_) = Morphing ('Into ('Here Maybe)) (Flip Wedge a) a
forall a. Maybe a
Nothing

instance Morphable (Into (There Maybe)) (Wedge e) where
	type Morphing (Into (There Maybe)) (Wedge e) = Maybe
	morphing :: (<:.>) (Tagged ('Into ('There Maybe))) (Wedge e) a
-> Morphing ('Into ('There Maybe)) (Wedge e) a
morphing ((<:.>) (Tagged ('Into ('There Maybe))) (Wedge e) a -> Wedge e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Wedge e a
Nowhere) = Morphing ('Into ('There Maybe)) (Wedge e) a
forall a. Maybe a
Nothing
	morphing ((<:.>) (Tagged ('Into ('There Maybe))) (Wedge e) a -> Wedge e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Here e
_) = Morphing ('Into ('There Maybe)) (Wedge e) a
forall a. Maybe a
Nothing
	morphing ((<:.>) (Tagged ('Into ('There Maybe))) (Wedge e) a -> Wedge e a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> There a
x) = a -> Maybe a
forall a. a -> Maybe a
Just a
x

instance Morphable (Into Wye) (Maybe <:.:> Maybe := (:*:)) where
	type Morphing (Into Wye) (Maybe <:.:> Maybe := (:*:)) = Wye
	morphing :: (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> Morphing ('Into Wye) ((Maybe <:.:> Maybe) := (:*:)) a
morphing ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a)
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a))
-> ((<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
    -> (:=) (Maybe <:.:> Maybe) (:*:) a)
-> (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> Product (Maybe a) (Maybe a)
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> (:=) (Maybe <:.:> Maybe) (:*:) a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Just a
x :*: Just a
y) = a -> a -> Wye a
forall a. a -> a -> Wye a
Both a
x a
y
	morphing ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a)
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a))
-> ((<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
    -> (:=) (Maybe <:.:> Maybe) (:*:) a)
-> (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> Product (Maybe a) (Maybe a)
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> (:=) (Maybe <:.:> Maybe) (:*:) a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Maybe a
Nothing :*: Just a
y) = a -> Wye a
forall a. a -> Wye a
Right a
y
	morphing ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a)
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a))
-> ((<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
    -> (:=) (Maybe <:.:> Maybe) (:*:) a)
-> (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> Product (Maybe a) (Maybe a)
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> (:=) (Maybe <:.:> Maybe) (:*:) a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Just a
x :*: Maybe a
Nothing) = a -> Wye a
forall a. a -> Wye a
Left a
x
	morphing ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a)
forall (t :: * -> *) a. Interpreted t => t a -> Primary t a
run ((:=) (Maybe <:.:> Maybe) (:*:) a -> Product (Maybe a) (Maybe a))
-> ((<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
    -> (:=) (Maybe <:.:> Maybe) (:*:) a)
-> (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> Product (Maybe a) (Maybe a)
forall (m :: * -> * -> *) b c a.
Category m =>
m b c -> m a b -> m a c
. (<:.>) (Tagged ('Into Wye)) ((Maybe <:.:> Maybe) := (:*:)) a
-> (:=) (Maybe <:.:> Maybe) (:*:) a
forall k (f :: k) (t :: * -> *).
Morphable f t =>
(Tagged f <:.> t) ~> t
premorph -> Maybe a
Nothing :*: Maybe a
Nothing) = Morphing ('Into Wye) ((Maybe <:.:> Maybe) := (:*:)) a
forall a. Wye a
End